我想用内布拉斯加州的县级作物产量数据对STAT类进行一些空间统计分析。为此,我需要每个县的地理质心的经度和纬度。任何人都知道如何在R中做到这一点?我知道它可以在ArcGIS中完成,但我现在无法访问它。
答案 0 :(得分:3)
您没有提供任何有关shapefile的详细信息,但我从here获得了一个,您可以gCentroid
使用rgeos
:
library(rgdal)
library(sp)
library(rgeos)
nebraska <- readOGR("CountyBoundsUTM/", "CountyUTM")
gCentroid(nebraska, byid=TRUE)
## SpatialPoints:
## x y
## 0 721768.5 4636738
## 1 430938.8 4524651
## 2 698036.4 4566570
## 3 370970.6 4641340
## ...
## 89 623301.6 4603228
## 90 618883.0 4486931
## 91 439295.3 4582756
## 92 493680.8 4522680
## Coordinate Reference System (CRS) arguments: +proj=utm +zone=14 +datum=NAD83
## +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0
答案 1 :(得分:0)
您还可以使用SpatialPolygons*
提取coordinates
个对象的质心,但质心不会像SpatialPoints
一样返回rgeos::gCentroid
。
例如:
library(rgdal)
download.file('http://dds.cr.usgs.gov/pub/data/nationalatlas/countyp020_nt00009.tar.gz',
f <- tempfile()) # ~ 4.5 Mb
untar(f, exdir=tempdir())
counties <- readOGR(tempdir(), 'countyp020')
xy <- coordinates(counties)
head(xy)
# [,1] [,2]
# 0 -153.3905 69.30193
# 1 -156.0582 71.33094
# 2 -155.6695 71.24763
# 3 -155.5164 71.23148
# 4 -155.1846 71.18189
# 5 -155.6126 71.00725
请注意,正如@Spacedman在评论中指出的那样,首先应将多边形投影到平面坐标系。
答案 2 :(得分:-2)
您可以使用get_map()
包中的ggplot2
函数将美国县地图数据从maps
包提取到数据框。然后,您可以按县(或您想用于定义地理中心的任何方法)计算纬度/经度列范围的中点。