R在sp包中,想知道fullgrid对象的索引的含义吗

R在sp包中,想知道fullgrid对象的索引的含义吗,r,geo,sp,R,Geo,Sp,所以我在研究这个包中的不同对象:sp, 现在,关注拓扑点:空间像素及其完整网格形式:空间网格 attr = expand.grid(xc = 1:3, yc = 1:3) grd.attr = data.frame(attr, z1 = 1:9, z2 = 9:1) coordinates(grd.attr) = ~xc+yc gridded(grd.attr) gridded(grd.attr) = TRUE 在这个操作之后,我们得到一个坐标为xc,yc的空间像素;和属性z1,z2;我输入命

所以我在研究这个包中的不同对象:sp, 现在,关注拓扑点:空间像素及其完整网格形式:空间网格

attr = expand.grid(xc = 1:3, yc = 1:3)
grd.attr = data.frame(attr, z1 = 1:9, z2 = 9:1)
coordinates(grd.attr) = ~xc+yc
gridded(grd.attr)
gridded(grd.attr) = TRUE
在这个操作之后,我们得到一个坐标为xc,yc的空间像素;和属性z1,z2;我输入命令:

grd.attr[1:5, "z1"]
毫不奇怪,它给出了属性z1的前5个值 但如果我通过以下方式将其更改为完整网格形式:

fullgrid(grd.attr) = TRUE
突然,这个命令:

grd.attr[1:2, "z1"]
给erros:

Error in matrix(idx, grd@cells.dim[2], grd@cells.dim[1], byrow = TRUE)[rows,  : no 'dimnames' attribute for array
看来这个命令

grd.attr[1:2,-2, "z1"]
给我z1的前6个属性 但我不知道第一个输入x和第二个输入y的确切含义?我认为它应该是矩阵的索引,但这个矩阵是如何组织的呢?有什么特别的订单吗

grd.attr[x,y,"attr_name"]
换句话说,这里x,y的确切含义是什么,所以我解决了这个问题: fullgrid将根据您的坐标生成矩阵/数组 x以最小值开始,y以最大值开始 所以它应该是:

1,3 2,3,3

1,2,2,3,2

1,12,13,1

我们从原始数据框中知道,坐标和属性应位于:

7 8 9

4 5 6

1 2 3

所以如果我们输入

grd.attr[2,1,"z1"]
grd.attr[2,3,"z1"]
它将给出属性的第二行y和第一列x,即4

如果我们输入

grd.attr[2,1,"z1"]
grd.attr[2,3,"z1"]
它将给出属性的第二行和第三列,即6


以上所有内容均已验证正确

做得很好。我认为这是sp最糟糕的部分之一;当我重新设计这样的包装时,我再也不会那样做了。谢谢!我正在研究sp、光栅、rgeos,希望有一个新的软件包可以轻松处理GIS问题,例如找到从一个地方到另一个地方,或从一个地方到另一个直线/多边形的最近路径而不是距离;仅仅是基于谷歌地图,如果你已经知道一些软件包可以很容易地做到这一点,让我知道