我认为(可能是错误的)在最简单的情况下,variog在geoR包中的输出和variogram在sp包中的输出应该是相同的。
我有这个数据集:
head(final)
lat lon elev seadist tradist samples rssi
1 60.1577 24.9111 2.392 125 15.21606 200 -58
2 60.1557 24.9214 3.195 116 15.81549 200 -55
3 60.1653 24.9221 4.604 387 15.72119 200 -70
4 60.1667 24.9165 7.355 205 15.39796 200 -62
5 60.1637 24.9166 3.648 252 15.43457 200 -73
6 60.1530 24.9258 2.733 65 16.10631 200 -57它是由(我猜)非投影数据构成的,所以我将它们投影出来。
#data projection
#convert to sp object:
coordinates(final) <- ~ lon + lat #longitude first
library(rgdal)
proj4string(final) = "+proj=longlat +datum=WGS84"
UTM <- spTransform(final, CRS=CRS("+proj=utm +zone=35V+north+ellps=WGS84+datum=WGS84"))并根据gstat库生成无趋势变异函数。
var.notrend.sp<-variogram(rssi~1, UTM)
plot(var.notrend.sp)

尝试在geoR中获得与之相同的输出
UTM1<-as.data.frame(UTM)
UTM1<-cbind(UTM1[,6:7], UTM1[,1:5])
UTM1
coords<-UTM1[,1:2]
coords
var.notrend.geoR <- variog(coords=coords, data=rssi,estimator.type='classical')
plot(var.notrend.geoR)

发布于 2014-02-23 22:19:49
几点。
gstat可以处理非投影数据,并计算大圆距离。"+proj=longlat +datum=WGS84"不会将数据转换为基于笛卡儿网格的系统(如UTM)。您在variogram的输出中看到的是这样一个事实,即(明智地)使用很大的圆距离。如果您查看距离轴的比例,您将看到范围是非常不同的,因为geoR不知道(也不能解释)您没有使用基于网格的投影。
如果要将苹果与苹果进行比较,请使用rgdal和spTransform将坐标系转换为适当的投影,然后创建具有类似规格的变异函数。(请注意,gstat定义了一个截止线(跨越数据的框的对角线长度除以三。)。
经验方差函数在很大程度上依赖于距离的定义和组合的选择。(请参阅辉煌的迪格尔和里贝罗的基于模型的地质统计学,特别是详细讨论此问题的第5章。
https://stackoverflow.com/questions/21970992
复制相似问题