繁体   English   中英

使用R将一个栅格的像元值分配给另一个栅格的相邻像元

[英]Assigning cell values of one raster to the adjacent cells of another using R

我有两个不重叠的空间投影栅格对象。 一个栅格(rk)具有可靠的值,而另一个栅格(dnn)的值不可靠。

#reliable
plot(rk)
#unreliable
plot(dnn, add=TRUE, col='gray80')

在此图中 (显示了我的数据的一个子集),颜色表示可靠栅格的值,而我将所有不可靠的栅格像素绘制为灰色。 我想根据可靠值更改不可靠值。 解决该问题的一种更简单的方法可能是将周围可靠像素(均值)的最近邻居值的平均值分配给不可靠像素的平均值,然后将它们合并在一起。

我认为第一步可能是在每个灰色单元格周围找到一个缓冲区,然后在每个缓冲区内找到平均值。 但是,为了处理NA(不包括计算中的NA),我首先确定了非NA索引

library(raster)
#selecting those index that are non-NAs
idx<-is.na(getValues(dnn))
idx<-which(idx==FALSE)
> length(idx)
[1] 602
#proving that the determined idx is correct
> sum(!is.na(getValues(dnn)))
[1] 602

但是在执行缓冲时出现错误

#doing buffer for those idx only
for (i in idx[i]) {b(i)<-buffer(dnn[i], width=500)}
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘buffer’ for signature ‘"numeric"’

我不确定这是否是正确的方法,即使在获得缓冲区后,计算均值(我希望使用区域统计数据)并将其分配给相应的灰色单元,对我来说也不是一件容易的事。 有什么建议么??

使用点模式。 将每个不可靠的单元格视为x,y坐标,并将所有可靠的单元格视为x,y,Z值。 将x,y,Z放入空间插值算法中,例如简单的反距离权重或不太简单的Kriging,然后在不可靠的x,y位置进行预测。 将预测值放回正确位置的网格中。

automap gstat包可以在这里为您提供帮助(还有gstat和R Spatial Task View)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM