提取多边形质心的坐标
Extract coordinates of polygons centroids
我想将所有多边形质心的纬度和经度添加到 SpatialPolygonsDataFrame 的数据框中。但是,由于我不确定在使用 gCentroid 时如何提取多边形 ID,因此我不确定如何进行合并(请参阅下面的第 3 行代码)。有人能帮我吗?非常感谢!
library(tidyverse)
library(rgeos)
ETH <- getData("GADM", country = "ETH", level = 3) # example of SpatialPolygonsDataFrame
cent <- as.data.frame(gCentroid(ETH, byid=TRUE)) # extraction of the coordinates of the polygons' centroids
ETH@data <- ETH@data %>% left_join(cent, by=?) # Here, I am not sure how to add the coordinates of the polygons' centroids to the dataframe.
您可以使用gCentroid
中的id =
参数来为每个点选择ID标签。 Select 一个包含来自 ETH
的唯一条目的列来填充它。这些被添加为行名称,因此您可以使用 tibble::rownames_to_column
将它们转换为列。这允许左连接:
library(tidyverse)
library(rgeos)
ETH <- getData("GADM", country = "ETH", level = 3)
cent <- as.data.frame(gCentroid(ETH, byid = TRUE, id = ETH@data$GID_3))
cent <- tibble::rownames_to_column(cent, var = "GID_3")
ETH@data <- ETH@data %>% left_join(cent, by = "GID_3")
我们可以通过绘制结果来显示这一点,质心为红点:
plot(ETH)
points(ETH@data$x, ETH@data$y, col = "red")
我想将所有多边形质心的纬度和经度添加到 SpatialPolygonsDataFrame 的数据框中。但是,由于我不确定在使用 gCentroid 时如何提取多边形 ID,因此我不确定如何进行合并(请参阅下面的第 3 行代码)。有人能帮我吗?非常感谢!
library(tidyverse)
library(rgeos)
ETH <- getData("GADM", country = "ETH", level = 3) # example of SpatialPolygonsDataFrame
cent <- as.data.frame(gCentroid(ETH, byid=TRUE)) # extraction of the coordinates of the polygons' centroids
ETH@data <- ETH@data %>% left_join(cent, by=?) # Here, I am not sure how to add the coordinates of the polygons' centroids to the dataframe.
您可以使用gCentroid
中的id =
参数来为每个点选择ID标签。 Select 一个包含来自 ETH
的唯一条目的列来填充它。这些被添加为行名称,因此您可以使用 tibble::rownames_to_column
将它们转换为列。这允许左连接:
library(tidyverse)
library(rgeos)
ETH <- getData("GADM", country = "ETH", level = 3)
cent <- as.data.frame(gCentroid(ETH, byid = TRUE, id = ETH@data$GID_3))
cent <- tibble::rownames_to_column(cent, var = "GID_3")
ETH@data <- ETH@data %>% left_join(cent, by = "GID_3")
我们可以通过绘制结果来显示这一点,质心为红点:
plot(ETH)
points(ETH@data$x, ETH@data$y, col = "red")