使用坐标 R 查找网格块编号
Finding mesh block number using coordinates R
我正在尝试查找所提供坐标的网格块编号 (MeshblockN)。所以我有两个数据集。 1. 具有唯一 ID 和坐标的数据集 A。 2. 具有网格块编号和其他详细信息的形状文件 - 数据集 B.
到目前为止,我所做的是使用 readOGR()
函数将形状文件 - 数据集 B 加载到 R 中。并加载了具有纬度和经度的数据集 A。然后将 coordinates() 函数应用于数据集 A。现在我有了 pts.poly <- point.in.poly(A,B)
的两个必需输入。但是我收到了这个错误 -
Error in data.frame(z@data, stats::na.omit(sp::over(pts, polys))) :
arguments imply differing number of rows: 1, 0
> head(A@data)
row_names unique_id
1 1 2837061
> head(A@coords)
longitude latitude
1 170.5065 -45.86696
> head(B@data, n = 1)
Meshblock MeshblockN AreaUnitCo AreaUnitNa
0 MB 0352700 0352700 510402 Chelsea
> head(B@polygons, n = 1)
[[1]]
An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] 174.72094 -36.82045
Slot "area":
[1] 2.858646e-05
Slot "hole":
[1] FALSE
Slot "ringDir":
[1] 1
Slot "coords":
[,1] [,2]
[1,] 174.7181 -36.81820
[2,] 174.7184 -36.81831
[3,] 174.7188 -36.81824
.
.
[500,] 174.7241 -36.82205
[ reached getOption("max.print") -- omitted 363 rows ]
Slot "plotOrder":
[1] 1
Slot "labpt":
[1] 174.72094 -36.82045
Slot "ID":
[1] "0"
Slot "area":
[1] 2.858646e-05
任何人都可以帮助我继续吗?不确定这有什么问题。
由于到目前为止没有人回答这个问题,我正在更新自己的版本,我使用 sp 包中的 over 函数解决了它。 over(A,B)
我正在尝试查找所提供坐标的网格块编号 (MeshblockN)。所以我有两个数据集。 1. 具有唯一 ID 和坐标的数据集 A。 2. 具有网格块编号和其他详细信息的形状文件 - 数据集 B.
到目前为止,我所做的是使用 readOGR()
函数将形状文件 - 数据集 B 加载到 R 中。并加载了具有纬度和经度的数据集 A。然后将 coordinates() 函数应用于数据集 A。现在我有了 pts.poly <- point.in.poly(A,B)
的两个必需输入。但是我收到了这个错误 -
Error in data.frame(z@data, stats::na.omit(sp::over(pts, polys))) :
arguments imply differing number of rows: 1, 0
> head(A@data)
row_names unique_id
1 1 2837061
> head(A@coords)
longitude latitude
1 170.5065 -45.86696
> head(B@data, n = 1)
Meshblock MeshblockN AreaUnitCo AreaUnitNa
0 MB 0352700 0352700 510402 Chelsea
> head(B@polygons, n = 1)
[[1]]
An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] 174.72094 -36.82045
Slot "area":
[1] 2.858646e-05
Slot "hole":
[1] FALSE
Slot "ringDir":
[1] 1
Slot "coords":
[,1] [,2]
[1,] 174.7181 -36.81820
[2,] 174.7184 -36.81831
[3,] 174.7188 -36.81824
.
.
[500,] 174.7241 -36.82205
[ reached getOption("max.print") -- omitted 363 rows ]
Slot "plotOrder":
[1] 1
Slot "labpt":
[1] 174.72094 -36.82045
Slot "ID":
[1] "0"
Slot "area":
[1] 2.858646e-05
任何人都可以帮助我继续吗?不确定这有什么问题。
由于到目前为止没有人回答这个问题,我正在更新自己的版本,我使用 sp 包中的 over 函数解决了它。 over(A,B)