0

我正在尝试创建一个充满半变异函数输出的栅格,例如描述空间自相关的区域的窗台和范围。我想尝试使用 R 中的焦点函数作为扫描区域的一种方式,并尝试使用 gstat 包中的变异函数来计算窗台和范围。

我尝试了以下代码,但该功能存在问题。

library(raster)
library(gstat)

r <- raster()
r[] <- 1:ncell(r)
ra <- aggregate(r, 5)
plot(ra)

v<-variogram(layer~1,as(ra,"SpatialPixelsDataFrame"))
plot(v)
f = fit.variogram(v, vgm("Sph"))
f$psill[2]
f$range

var.sill<-function(x){
  names(x)<-c("layer")
  v<-variogram(layer~1,as(x,"SpatialPixelsDataFrame"))
  f = fit.variogram(v, vgm("Sph"))
  f$psill[2]
}
var.sill(ra) 
# 374758092

## in a window surrounding each focal cell 
rpsill <- focal(ra, w=matrix(1/225, ncol=15, nrow=15), fun=var.sill)
plot(rpsill)

错误状态,“ as(x, "SpatialPixelsDataFrame") 中的错误:没有将“数字”强制转换为“SpatialPixelsDataFrame”的方法或默认值“

如果有其他方法可以创建这些新栅格,我将不胜感激,也请告诉我。

谢谢你。

4

0 回答 0