如何替换栅格对象中的NA

时间:2012-08-15 08:55:51

标签: r spatial raster

我需要从下面的例子中替换栅格对象(NA)中的r

library(raster)
filename <- system.file("external/test.grd", package="raster")
r <- raster(filename)

我也尝试删除这些(并将结果放在data.frame中),但无济于事。

dfr <- as.data.frame(r, na.rm=T)
summary(dfr)
# test       
# Min.   : 128.4  
# 1st Qu.: 293.2  
# Median : 371.4  
# Mean   : 423.2  
# 3rd Qu.: 499.8  
# Max.   :1805.8  
# NA's   :6097

2 个答案:

答案 0 :(得分:24)

更安全的内存方法(对于大文件)将使用重新分类:

library(raster)
filename <- system.file("external/test.grd", package="raster")
r <- raster(filename)
rna <- reclassify(r, cbind(NA, 250))

答案 1 :(得分:16)

我不确定从NA对象中删除raster值是否有意义,但您可以轻松替换它。

例如:

oldpar <- par(mfrow=c(1, 2))
plot(r)
r[is.na(r)] <- 250
plot(r)
par(oldpar)

enter image description here


如果您真的想要,可以将栅格值提取到矢量中,然后删除NA值。 (虽然,由于你丢失了空间信息,我无法看到它如何有用。)

r <- raster(filename)

r <- values(r)
head(r)
[1] NA NA NA NA NA NA

head(na.omit(r))
[1] 633.686 712.545 654.162 604.442 857.256 755.506