【发布时间】:2021-12-25 14:24:12
【问题描述】:
如何将 sfc_LINESTRING 几何图形转换为 sfc_MULTIPOLYGON?目的是拥有一个数据框,其记录数量等于我需要以图形方式表示将数据与它们关联的领土单位。聚合元素将是一个省级代码,我可以从数据框的一列 ($ NATIONALCO) 中提取它。
shapefile原始文件来自国家地理研究所下载中心(https://centrodedescargas.cnig.es),参考地理信息,市、省、自治区界限。
> str(geoprovincias)
Classes ‘sf’ and 'data.frame': 5312 obs. of 12 variables:
$ INSPIREID : chr "ES.IGN.BDDAE.M34121500000M97999900000T0225826" "ES.IGN.BDDAE.M34121500000M97999900000T0225560" "ES.IGN.BDDAE.M34121500000M97999900000T0225833" "ES.IGN.BDDAE.M34121500000M97999900000T0226291" ...
$ NATIONALCO : chr "M34121500000M97999900000T0225826" "M34121500000M97999900000T0225560" "M34121500000M97999900000T0225833" "M34121500000M97999900000T0226291" ...
$ COUNTRY : chr "ES" "ES" "ES" "ES" ...
$ NATLEV : chr "https://inspire.ec.europa.eu/codelist/AdministrativeHierarchyLevel/3rdOrder" "https://inspire.ec.europa.eu/codelist/AdministrativeHierarchyLevel/3rdOrder" "https://inspire.ec.europa.eu/codelist/AdministrativeHierarchyLevel/3rdOrder" "https://inspire.ec.europa.eu/codelist/AdministrativeHierarchyLevel/3rdOrder" ...
$ NATLEVNAME : chr "Provincia" "Provincia" "Provincia" "Provincia" ...
$ LEGSTATUS : chr NA NA NA NA ...
$ ACCURACY : chr NA NA NA NA ...
$ NAME_BOUND : chr "A Coruña#Océano Atlántico" "A Coruña#Océano Atlántico" "A Coruña#Océano Atlántico" "A Coruña#Océano Atlántico" ...
$ DATE_BOUND : Date, format: "2009-07-06" "2009-07-06" ...
$ URL_RESOUR : chr "https://www.idee.es/csw-inspire-idee/srv/spa/catalog.search#/home" "https://www.idee.es/csw-inspire-idee/srv/spa/catalog.search#/home" "https://www.idee.es/csw-inspire-idee/srv/spa/catalog.search#/home" "https://www.idee.es/csw-inspire-idee/srv/spa/catalog.search#/home" ...
$ geometry :sfc_LINESTRING of length 5312; first list element: 'XY' num [1:13, 1:2] -9.28 -9.28 -9.28 -9.28 -9.28 ...
$ CódigoProvincia: chr "15" "15" "15" "15" ...
- attr(*, "sf_column")= chr "geometry"
- attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA NA NA NA ...
..- attr(*, "names")= chr [1:11] "INSPIREID" "NATIONALCO" "COUNTRY" "NATLEV" ...
>
更新
geoprovinces生成r代码。
geopropenínsula <- st_read("ruta/ll_provinciales_inspire_peninbal_etrs89.shp")
geoprocanarias <- st_read("ruta/ll_provinciales_inspire_canarias_wgs84.shp")
crs <- st_crs(geopropenínsula)
geoprocanariasco <-
geoprocanarias %>%
st_transform(crs) %>%
st_geometry()
geoprocanariasco <- geoprocanariasco + c(5, 7)
geoprocanarias <-
geoprocanarias %>%
st_set_geometry(geoprocanariasco) %>%
st_set_crs(crs)
geoprovincias <- rbind(geopropenínsula, geoprocanarias)
geoprovincias$CódigoProvincia <- substring(geoprovincias$NATIONALCO, 6, 7)
geoprovincias %>%
ggplot() +
geom_sf() +
theme_void()
【问题讨论】: