[英]How to convert a long lat data dataframe to a xyz dataframe using R?
[英]Convert lat and long dataframe to multiple spatial polygons in R
我有两个问题要解决,第一个问题是主要问题。 希望我已经很好地解释了第二个。
1)我最初的问题是尝试从小标题创建空间多边形数据框。 例如,我有一个来自urbnmapr
库的概述美国各州的urbnmapr
,我希望能够绘制所有 50 个州的空间多边形。 (注意:我已经在 ggplot 中根据这些数据制作了一张地图,但我特别希望空间多边形在传单中绘制和动画):
> states <- urbnmapr::states
> states
# A tibble: 83,933 x 10
long lat order hole piece group state_fips state_abbv state_name fips
<dbl> <dbl> <int> <lgl> <fct> <fct> <chr> <chr> <chr> <chr>
1 -88.5 31.9 1 FALSE 1 01.1 01 AL Alabama 01
2 -88.5 31.9 2 FALSE 1 01.1 01 AL Alabama 01
3 -88.5 31.9 3 FALSE 1 01.1 01 AL Alabama 01
...
2)一旦我这样做了,我会想通过状态名称将额外数据从一个单独的小标题连接到空间多边形。 如果我每年的数据不同,那么最好的方法是什么? 即对于 50 个州,我有三年的数据,所以我会为这些年创建 150 个不同的多边形,还是有 50 个州多边形,但每个州的所有信息都能够为不同的州制作 3 个不同的图年?
我可以向您提出以下建议(未选中,因为我的 R 版本无法访问urbnmapr
包)。
如果您特别想要多边形,我认为最好的方法是将数据框连接到来自 shapefile 的对象。
如果你还想自己做,你需要做两件事:
tibble
转换为具有点几何形状的空间对象 sf
包可以两者兼而有之。 对于第一步(最简单的一步),使用sf_as_sf
函数。
library(sf)
states
states_spat <- states %>% st_as_sf(., coords = c("lon","lat"))
第二步,您需要聚合几何图形。 我可以为您推荐一些可以为您提供MULTIPOINT
几何图形的东西,而不是多边形。 要转换为多边形,您可以找到此线程来帮助
states_spat <- states_spat %>% group_by(state_name) %>%
dplyr::summarise(x = n())
这是基于数据和空间对象(例如状态代码)之间的公共属性的标准连接。 merge
或*_join
从功能dplyr
与工作sf
的数据,因为他们会做tibbles
。 你那里有元素
顺便说一句,我认为这样做比从一系列点创建自己的多边形更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.