我认为(可能是错误的)在最简单的情况下,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)
答案 0 :(得分:1)
有几点。
gstat
可以使用未投影的数据,并计算大圆距离"+proj=longlat +datum=WGS84"
不会将数据转换为基于笛卡尔网格的系统(例如UTM)你在variogram
的输出中看到的是(合理地)使用大圆距离的事实。如果你查看距离轴的比例,你会发现范围是完全不同的,因为geoR
不知道(并且不能解释)你没有使用基于网格的投影的事实
如果您想将苹果与苹果进行比较,请使用rgdal
和spTransform
将坐标系转换为适当的投影,然后创建具有相似规格的变异图。 (注意,gstat定义了一个截止值(跨越数据的框的对角线长度除以3)。)。
经验变异函数高度依赖于距离的定义和分级的选择。 (参见精彩的model-based geostatistics by Diggle and Ribeiro,尤其是第5章,详细讨论了这个问题。