我一直在使用一个空间模型,其中包含21,000个不等大小的网格单元(i乘以j,其中i为[1:175],j为[1:120])。我在i和j维度的两个单独数组(lat_array
,lon_array
)中有纬度和经度值。
绘制坐标:
> plot(lon_array, lat_array, main='Grid Coordinates')
结果: 我的问题:是否可以将这些空间坐标绘制为网格而不是点?有没有人知道可能能够做到这一点的包或功能?我还没有能够在网上找到这种性质的东西。
感谢。
答案 0 :(得分:2)
首先,直接在平面上绘制固有球面坐标(纬度,长度)总是有点危险。通常你应该以某种方式投影它们,但我会留给你探索sp
包和函数spTransform
或类似的东西。
我想原则上你可以简单地使用deldir
包计算你的点的Dirichlet曲面细分,它会给你一个漂亮的网格。但是,您需要一个边界区域,以避免大区域从您所在区域的边界向外辐射。我个人使用spatstat
来致电deldir
,因此我无法在deldir
中为您提供直接命令,但在spatstat
中,我会执行以下操作:
library(spatstat)
plot(lon_array, lat_array, main='Grid Coordinates')
W <- clickpoly(add = TRUE) # Now click the region that contains your grid
i_na <- is.na(lon_array) | is.na(lat_array) # Index of NAs
X <- ppp(lon_array[!i_na], lat_array[!i_na], window = W)
grid <- dirichlet(X)
plot(grid)
我还没有对此进行测试,一旦我有机会用一些人工数据测试它,我会更新这个答案。一个主要问题是数据集的大小,可能需要很长时间来计算Dirichlet曲面细分。我只试图在大小高达3000点的数据集上调用dirichlet
...