sp包中的R,想知道全网格对象的索引的含义
R in sp package, want to know the meaning of index for a fullgrid object
所以我正在研究这个 package: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"]
毫不奇怪,它给了我属性的前 5 个值 "z1"
但如果我通过以下方式将其更改为完整的网格形式:
fullgrid(grd.attr) = TRUE
突然,这个命令:
grd.attr[1:2, "z1"]
给出错误:
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的确切含义是什么
所以我解决了这个问题:
全网格将根据您的坐标生成 matrix/array
x 从最低值开始,y 从最高值开始
所以它应该像:
(1,3) (2,3) (3,3)
(1,2) (2,2) (3,2)
(1,1) (2,1) (3,1)
我们从原始数据框知道坐标和属性应该在:
7 8 9
4 5 6
1 2 3
所以如果我们输入
grd.attr[2,1,"z1"]
它会给出属性的第二行(y)和第一列(x),即4!
如果我们输入
grd.attr[2,3,"z1"]
它会给我们第二行第三列的属性,也就是6
以上均已验证无误
所以我正在研究这个 package: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"]
毫不奇怪,它给了我属性的前 5 个值 "z1" 但如果我通过以下方式将其更改为完整的网格形式:
fullgrid(grd.attr) = TRUE
突然,这个命令:
grd.attr[1:2, "z1"]
给出错误:
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的确切含义是什么
所以我解决了这个问题: 全网格将根据您的坐标生成 matrix/array x 从最低值开始,y 从最高值开始 所以它应该像:
(1,3) (2,3) (3,3)
(1,2) (2,2) (3,2)
(1,1) (2,1) (3,1)
我们从原始数据框知道坐标和属性应该在:
7 8 9
4 5 6
1 2 3
所以如果我们输入
grd.attr[2,1,"z1"]
它会给出属性的第二行(y)和第一列(x),即4!
如果我们输入
grd.attr[2,3,"z1"]
它会给我们第二行第三列的属性,也就是6
以上均已验证无误