问题陈述
我有两组多边形,我想将其中一组多边形的数量特征合并到另一组多边形中。
例如,考虑Yolo县的多边形,yolo
。我想将所有符合城市多边形davis
内字段estimate
的收缩级别数据聚合起来。
结果应该是一个新的多边形davis
,具有一个新的字段estimate
,它是yolo
中所有落在davis
范围内的要素的表面积加权estimate
。 我如何在sp
或sf
中实现这个功能?
可重复的示例
从此网站下载的城市多边形davis
,文件:CityLimits.zip
。
# packages
library(tidycensus)
library(tidyverse)
library(raster)
# get tract level data for yolo county
yolo <- get_acs(state = "CA", county = "Yolo", geography = "tract",
variables = "B19013_001", geometry = TRUE)
# city of davis shapefile
davis <- raster::shapefile("Davis_DBO_CityLimits.shp")
davis <- davis %>% spTransform(., st_crs(yolo)$`proj4string` %>% crs())
davis <- st_as_sf(davis)
yolo <- yolo %>% st_transform(st_crs(davis)$`proj4string`)
# plot
ggplot() +
geom_sf(data = yolo, aes(fill = estimate)) +
geom_sf(data = davis, alpha = 0.3, color = "red") +
coord_sf(xlim=c(-121.6, -121.9), ylim = c(38.5, 38.6))
注意: 我看到了这篇SO帖子,但是由于链接失效所以无法重现。
sf::st_interpolate_aw(yolo, davies)
应该可以实现你想要的功能。 - TimSalabim?st_interpolate_aw
中的示例非常有用,比我的更具可重复性。 - Rich Pauloo