Пакет Tidycensus: Можете ли вы получить широты и долготы с блоками переписи? - PullRequest
0 голосов
/ 24 января 2019

У меня есть скрипт, который извлекает GeoID с использованием пакета tidycensus. Эти данные очень ценны, но я также хотел бы указать широту и долготу (даже если они приблизительные). Проблема в том, что я не могу понять, как или если это вообще возможно. Или, если есть какой-либо способ присоединиться к таким данным, используя другой пространственный пакет. Ниже приведен пример кода.

library(tidycensus)
census_api_key("yourkeyhere", install = TRUE)
dfBlocks <- get_decennial(geography = "block", state = "SC", variables = c(tract = "TRACT", state = "STATE"), output = "wide", county = c(c("York County", "Richland County")))

Спасибо! * * 1004

1 Ответ

0 голосов
/ 16 июня 2019

Если вы укажете geometry = TRUE в своем вызове get_decennial(), tidycensus вернет геометрию многоугольника вместе с оценками переписи.Затем вы можете использовать sf::st_centroid(), чтобы получить центроид (середину) каждого многоугольника.

Вот пример, где я получаю данные и геометрию переписи, а затем создаю вторую sfобъект с центроидами каждого многоугольника округа.Наконец, быстрая карта, чтобы вы могли видеть полигоны с их центроидами.

library(tidyverse)
library(tidycensus)
library(sf)
#> Linking to GEOS 3.6.1, GDAL 2.1.3, PROJ 4.9.3

county <- get_decennial(
  geography = "county",
  state = "SC",
  variables = c(county = "COUNTY", state = "STATE"),
  output = "wide",
  geometry = TRUE
  )
#> Getting data from the 2010 decennial Census

count_centroid <- county %>% 
  st_transform(2273) %>% # convert to projected coord system for better centroid
  st_centroid()
#> Warning in st_centroid.sf(.): st_centroid assumes attributes are constant
#> over geometries of x

head(count_centroid)
#> Simple feature collection with 6 features and 4 fields
#> geometry type:  POINT
#> dimension:      XY
#> bbox:           xmin: 1506653 ymin: 420377.9 xmax: 1983425 ymax: 1170306
#> epsg (SRID):    2273
#> proj4string:    +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs
#> # A tibble: 6 x 5
#>   GEOID NAME                             county state           geometry
#>   <chr> <chr>                             <dbl> <dbl>       <POINT [ft]>
#> 1 45009 Bamberg County, South Carolina        9    45 (1983425 502618.9)
#> 2 45001 Abbeville County, South Carolina      1    45 (1559068 872366.5)
#> 3 45005 Allendale County, South Carolina      5    45 (1890285 420377.9)
#> 4 45007 Anderson County, South Carolina       7    45 (1506653 981064.2)
#> 5 45021 Cherokee County, South Carolina      21    45  (1814307 1170306)
#> 6 45011 Barnwell County, South Carolina      11    45 (1866998 521545.1)

ggplot(county) +
  geom_sf() +
  geom_sf(data = count_centroid) +
  theme_void()

Создано в 2019-06-16 с помощью пакета представ (v0.3.0)

...