R:从栅格对象

时间:2016-03-16 11:06:27

标签: r geospatial r-raster covariogram

我需要从栅格图层计算窗台,范围和块金。我已经探索了gstat,usdm包,其中可以创建变异函数但是我找不到给定栅格图层估计这些参数的函数。在大多数函数中,这些参数必须被定义,例如。 krigging。

我有不同高度的栅格数据图​​层,看起来类似于enter image description here

我想从适合这些数据层的半变异函数参数得到窗台,金块和范围,以创建类似于此的图:enter image description here

原始数据层可用here作为多频段tiff。这是来自this论文的图,进一步说明了这个概念。

enter image description here

2 个答案:

答案 0 :(得分:3)

使用gstat,这是一个例子:

library(raster)
library(gstat)
demo(meuse, ask = FALSE, echo = FALSE)
set.seed(131) # make random numbers reproducible
# add some noise with .1 variance
meuse.grid$dist = meuse.grid$dist + rnorm(nrow(meuse.grid), sd=sqrt(.1))
r = raster(meuse.grid["dist"])
v = variogram(dist~1, as(r, "SpatialPixelsDataFrame"))

(f = fit.variogram(v, vgm("Sph")))
#   model      psill    range
# 1   Nug 0.09035948    0.000
# 2   Sph 0.06709838 1216.737

f$psill[2] # sill
# [1] 0.06709838

f$range[2] # range
# [1] 1216.737

f$psill[1] # nugget
# [1] 0.09035948

r插入自己的栅格,它应该可以使用。更改Sph以适应另一个变异函数模型,尝试plot(v,f)验证图。

答案 1 :(得分:1)

这只是猜测。这就是我估计半方差

的方法

其中n是它们的平均值小于总平均值的层数。 m是所有图层的总平均值。 r是每层的平均值低于总平均值。

s <- stack("old_gap_.tif")
m <- cellStats(mean(s), stat="mean", na.rm=T) # 0.5620522
r <- m[m < 0.5620522]
sem <- 1/53 * (0.5620522 - r)^2
plot(sem, r)