使用R中MOD13Q1 EVI光栅的匹配像素填充MYD13Q1 EVI中的像素间隙

92dk7w1h  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(68)

我正在处理一个地区的月MODIS EVI数据,这些数据来自一个有很多云层覆盖的地区。在进行质量保证分析之后,没有多少像素被保留下来。
为了提高像素的数量,我想把MYD13Q1.061 Aqua Vegetation Indices 16-Day Global 250m的像素和MOD13Q1.061 Terra Vegetation Indices 16-Day Global 250m的像素结合起来。所有的图像都经过了Google Earth Engine中相同的处理,并导入到R中。示例文件可以得到here(文件不大)

2013年第1季度车型EVI

#Set working directory
setwd("C:/...sample/mod")

##load EVI tiffs
pathtif_evi='C:/...sample/mod/'
tiflist_evi=list.files(path = pathtif_evi,'*.tif')

##read in EVI tifs
all_tiffs_evi <- lapply(tiflist_evi, raster)

2013年第1季度EVI

#Set working directory
setwd("C:/...sample/myd")

##load EVI tiffs
pathtif_myd='C:/...sample/myd/'
tiflist_myd=list.files(path = pathtif_myd,'*.tif')

我试过@Forrest R. Stevens的solution,使用下面的代码,它对像素不起作用。它似乎适合数值。

为在B中为NA而在A中不为NA的像素创建索引

A <- all_tiffs_evi
B <- all_tiffs_myd
    
indices <- is.na(B)[] & !is.na(A)[]

B[indices] <- A[indices]

请,我需要一个方法的帮助,从另一个图像像素替换NA像素(有效的像素存在)。我有22年的每月数据。谢谢

zsbz8rwp

zsbz8rwp1#

可以像这样使用terra::cover

library(terra)
fmod <- list.files(path="mod", pattern='tif$', full=TRUE)
mod <- rast(fmod)
fmyd <- list.files(path="myd", pattern='tif$', full=TRUE)
myd <- rast(fmyd)

x <- cover(mod, myd)

如果没有理由认为mod优于myd,那么在它们都有值的情况下取平均值可能更有意义。

m <- mean(mod, myd, na.rm=TRUE)

相关问题