我正在使用基于遥感的光栅文件,请参阅她的压缩示例文件: ftp: //ftp.glcf.umd.edu/glcf/GLOPEM/10_Day/011_020/1992_011_020_npp_latlon/1992_011_020_npp_latlon.tif.gz。
为了进一步分析,我想将值为-999(即水)的单元格更改为NA。我试过了:
for (i in 1:length(nlist)){
r=raster(nlist[i])
calc( r , function(x) { x[ x == -999 ] <- NA; return(x) } ,overwrite=T, filename=paste(names(r),"NA_edited"), format="GTiff")
}
f2 <- function(x) {
v <- getValues(x)
v[v<0]<-NA
x <- setValues(x, v)
return(x)
}
和
for (i in 1:length(nlist)){
r=raster(nlist[i])
r=f2(r)
writeRaster(r,filename=paste(names(r),"NA_edited"), format="GTiff",overwrite=T)
}
其中 nlist 是文件位置的向量(即 list.files())。
它们确实摆脱了 -999 并创建了 NA 值,但它们也出于某种原因改变了其他值。似乎所有值都变得略高,例如一层的最大值从 160 变为 177。
是否正在进行一些插值,或者是否有一些我错过的魔力?我无法在示例栅格上重现这一点,例如raster(system.file("external/test.grd", package="raster"))
. 这让我觉得它可能与文件格式有关?
干杯!