0

我假设(可能是错误的)在最简单的情况下,包中的输出和varioggeoRvariogram的输出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)

绘制 gstat

试图获得相同的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)

绘制 geoR

4

1 回答 1

1

几点。

  • gstat可以处理未投影的数据,并将计算大圆距离
  • 将“投影”设置为"+proj=longlat +datum=WGS84"不会将数据转换为基于笛卡尔网格的系统(例如 UTM)

您在输出中看到的variogram是(明智地)使用大圆距离的事实。如果您查看距离轴的比例,您会发现范围完全不同,因为geoR不知道(也无法解释)您没有使用基于网格的投影这一事实。

如果您想将苹果与苹果进行比较,请使用rgdal并将spTransform坐标系转换为适当的投影,然后创建具有相似规格的变异函数。(请注意, gstat 定义了一个截止值(跨越数据的框的对角线长度除以三。))。

经验变异函数高度依赖于距离的定义和分箱的选择。(参见Diggle 和 Ribeiro 出色的基于模型的地质统计学,尤其是第 5 章,其中详细讨论了这个问题。

于 2014-02-23T22:19:49.503 回答