0

我对 Spatstat 中的 KEST 函数有一个非常简单的问题。KEST 图形输出我正在使用 Spatstat 中的 KEST 函数来评估数据集中的空间随机性。我已经上传了分布在伦敦的 lat 和 long 值,并将它们转换为 PPP 对象,使用 ripras 函数来指定空间域。当我在我的 ppp 上运行我的 KEST 分析并绘制图表时,我最终在 x 上得到了一个 r 值,但是虽然我知道这是一个距离测量,但我不知道它使用的是什么单位。我得到这个摘要输出:

Planar point pattern:  113 points
Average intensity 407.9378 points per square unit
Coordinates are given to 9 decimal places
Window: polygonal boundary
single connected closed polygon with 14 vertices
enclosing rectangle: [-0.5532963, 0.3519148] x [51.2901, 51.7022] units
Window area = 0.277003 square units

x 轴上的最大 r 为 0.1 个单位,y 轴上的 K(r) 为 0.04。我如何弄清楚这些等于什么距离单位?

4

3 回答 3

4

您的纬度,经度坐标对应于用作地球模型的球体(或椭圆体或其他)上的点。本质上,spatstat 假定您使用的是投影在平面地图上的坐标。这种转换可以通过例如sp包来完成(以白金汉宫为例):

library(sp)
lat = c(51.501476)
lon = c(-0.140634)
xy = data.frame(lon, lat)
coordinates(xy) <- c("lon", "lat")
proj4string(xy) <- CRS("+proj=longlat +datum=WGS84")
NE <- spTransform(xy, CRS("+proj=utm +zone=30 ellps=WGS84"))
NE <- as.data.frame(NE)

结果是data.frame投影坐标以东、北以米为单位。然后你可以从那里继续你的分析。要"m"为图形中更漂亮的标签分配单位标签,请使用对象unitname上的函数ppp(假设对象被调用X):unitname(X) <- "m"

于 2016-03-08T20:37:53.400 回答
1

K 函数本身(即理论上的 K 函数,而不仅仅是计算机代码)假设空间是平坦的而不是弯曲的。

在您的情况下,这可能是一个合理的近似值(点分散在几十公里内),但不适用于分散在大陆上的点模式。也就是说,一般来说,平面 K 函数不应该用于球体上的点图案。

其他帖子是正确的。该Kest函数期望在等轴测坐标系中给出坐标。您只需要在 x 和 y 坐标以相同距离单位测量的坐标系中表达空间位置。经度和纬度不是以相同的距离单位测量的,因为(例如)一度经度并不代表与一度纬度相同的距离。Ege Rubak 的示例 usingspTransform可能是最好的方法。

于 2016-03-09T11:01:58.730 回答
1

如果该函数能够接受地理坐标,则它使用大圆方程来计算距离。这通常会产生以千米为单位的单位。

对非投影数据执行 PPA 不是很好的做法。如果可能,您应该将数据投影到以距离单位表示的坐标系中。我相信 spatstat 中的大多数函数都使用欧几里得距离,这对于十进制度的投影单位是非常不合适的。由于 Kest 函数中没有 latlong 参数,我不相信你的结果是有效的。

于 2016-03-08T18:59:02.950 回答