R:可以从x,y空间坐标绘制网格吗?

时间:2016-10-05 02:52:20

标签: r plot spatial gridlines

我一直在使用一个空间模型,其中包含21,000个不等大小的网格单元(i乘以j,其中i为[1:175],j为[1:120])。我在i和j维度的两个单独数组(lat_arraylon_array)中有纬度和经度值。

绘制坐标:

> plot(lon_array, lat_array, main='Grid Coordinates')

结果: enter image description here 我的问题:是否可以将这些空间坐标绘制为网格而不是点?有没有人知道可能能够做到这一点的包或功能?我还没有能够在网上找到这种性质的东西。

感谢。

1 个答案:

答案 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 ...