我有一个关于Spatstat中的KEST函数的非常简单的问题。KEST graph output我正在使用Spatstat中的KEST函数来评估数据集中的空间随机性。我上传了分散在伦敦的经纬度和经度值,并将它们转换为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 unitsX轴上的最大r为0.1个单位,y轴上的K(r)为0.04。如何计算出这些距离的单位是多少?
发布于 2016-03-09 04:37:53
您的经纬度坐标对应于用作地球模型的球体(或椭球体等)上的点。本质上,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"这样的单元标签,请在ppp对象上使用函数unitname (假设该对象名为X):unitname(X) <- "m"
发布于 2016-03-09 02:59:03
如果该函数能够接受地理坐标,那么它就是使用一个大圆公式来计算距离。这通常会导致单位为公里。
对非预测数据执行PPA不是很好的做法。如果可能,应将数据投影到以距离单位表示的坐标系中。我认为spatstat中的大多数函数都使用欧几里德距离,这对于十进制度的投影单位来说是非常不合适的。由于Kest函数中没有latlong参数,因此我不相信您的结果是有效的。
发布于 2016-03-09 19:01:59
K函数本身(即理论上的K函数,而不仅仅是计算机代码)假设空间是平的而不是曲线的。
对于您的情况(分散在几十公里内的点),这可能是一个合理的近似值,但对于分散在大陆上的点模式则不是这样。也就是说,一般情况下,平面K函数不应用于球体上的点图案。
其他的帖子是正确的。Kest函数期望在等轴测坐标系中给定坐标。您只需在x和y坐标以相同的距离单位测量的坐标系中表示空间位置。经度和纬度不是用相同的距离单位测量的,因为一度(比方说)经度并不代表一度纬度的距离。Ege Rubak的例子使用spTransform可能是最好的方法。
https://stackoverflow.com/questions/35873254
复制相似问题