Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:从光栅对象计算门槛、范围和熔核_R_Geospatial_R Raster_Covariogram - Fatal编程技术网

R:从光栅对象计算门槛、范围和熔核

R:从光栅对象计算门槛、范围和熔核,r,geospatial,r-raster,covariogram,R,Geospatial,R Raster,Covariogram,我需要计算的门槛,范围和熔核从光栅层。我已经探索了gstat、usdm软件包,其中可以创建变异函数,但是我找不到一个给定光栅层的函数来估计这些参数。在大多数函数中,这些参数必须定义,例如Kriging 我有不同高度的光栅数据层,看起来像 我想从拟合到这些数据层的半变异函数参数中获取门槛、块金和范围,以创建类似于以下内容的图: 原始数据层作为多波段tiff提供。这是一张纸上的图,它进一步说明了这个概念 这只是一个猜测。这就是我估计半方差的方法 其中n是其平均值小于总平均值的层数m是所有层的总平均值

我需要计算的门槛,范围和熔核从光栅层。我已经探索了gstat、usdm软件包,其中可以创建变异函数,但是我找不到一个给定光栅层的函数来估计这些参数。在大多数函数中,这些参数必须定义,例如Kriging

我有不同高度的光栅数据层,看起来像

我想从拟合到这些数据层的半变异函数参数中获取门槛、块金和范围,以创建类似于以下内容的图:

原始数据层作为多波段tiff提供。这是一张纸上的图,它进一步说明了这个概念


这只是一个猜测。这就是我估计半方差的方法

其中
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)

s使用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)
以验证绘图。

请提供示例。Gstat适用于空间点。如果要使用栅格,可以将其作为空间栅格数据帧读取,也可以在光栅包中使用插值函数。光栅包提供了几个例子。我已经编辑了我的问题以添加更多细节。我不认为这是一个空间统计问题。我认为您应该估计跨层的半方差,并根据每个层的平均值绘制。但不确定这是否有帮助。当我绘制此图时,高度范围为0-1,曲线的形状与此处显示的相反;显示高度为0.5时的最小半方差。这些图像用于说明。数据有99层,每层的高度为0.5米。与高度与半方差图相比,实际数据与高度图将显示相反的趋势。我不知道对于我放在这里的数据,高度与半方差会是什么样子,但我猜它看起来与上面的图像类似。有可能看到你的绘图吗?谢谢Edzer,出于某种原因,我得到了这个错误:拟合错误。变异函数(v,vgm(“Sph”):模型应该是在线的类变异函数模型(使用vgm)(f=拟合。变异函数(v,vgm(“Sph”))可能会更新你的gstat包?您运行哪个版本?谢谢您的帮助,但是当使用问题中所附的多波段tiff示例中我自己的光栅层时,我遇到了另一个错误。>r=s[[81]]>r类别:光栅波段:81(共99个波段)尺寸:49,50,2450(nrow,ncol,ncell)分辨率:5,5(x,y)范围:36428436453443055374305782(xmin,xmax,ymin,ymax)坐标。参考:+proj=tmerc+lat_0=0+lon_0=-75+k=0.99959932289124+x_0=500000+y_0=0+ellps=WGS84+units=m+no_defs数据源:名称:旧的_gap_81值:0.008213255,1.000001(最小值,最大值)>r=as(r,“空间像素数据帧”)>v=model.frame中的变异函数(dist~1,r)错误。默认(术语(公式),as(数据,“数据帧”),na.action=na.fail):对象不是矩阵在示例中使用的示例数据中,请将
dist
替换为
old\u gap
<代码>名称(r)
将告诉您使用哪个名称。