如何解决使用“st_transform()”将坐标转换为另一个投影 - 创建制图时
我有一个关于尼日利亚不同行政级别的人口估计的 shapefile,我想从中创建一个制图。
library(cartogram)
admin_lvl2_cartogram <- cartogram(admin_level2_shape,"mean",itermax=5)
然而,这给了我一个错误,指出“错误:使用未投影的地图。此功能没有为经度/纬度数据提供正确的质心和距离: 使用“st_transform()”将坐标转换为另一个投影。”我不知道如何解决这个问题
重新创建初始数据
使用 wopr
包下载数据
library(wopr)
catalogue <- getCatalogue()
# Select files from the catalogue by subsetting the data frame
selection <- subset(catalogue,country == 'NGA' &
category == 'Population' &
version == 'v1.2')
# Download selected files
downloadData(selection)
手动解压下载的zip文件(NGA_population_v1_2_admin.zip)并读入数据
library(rgdal)
library(here)
admin_level2_shape <- readOGR(here::here("wopr/NGA/population/v1.2/NGA_population_v1_2_admin/NGA_population_v1_2_admin_level2_boundaries.shp"))
解决方法
spTransform
包中的函数 sp
可能是最简单的,因为 readOGR
调用返回该包中定义的空间多边形。
这是一个完整的例子,它转换为适合尼日利亚的投影,"+init=epsg:26331"
。您可能需要通过 Google 才能找到最符合您需求的产品。
#devtools::install_github('wpgp/wopr')
library(wopr)
library(cartogram)
library(rgdal)
library(sp)
library(here)
catalogue <- getCatalogue()
# Select files from the catalogue by subsetting the data frame
selection <- subset(catalogue,country == 'NGA' & category == 'Population' & version == 'v1.2')
# Download selected files
downloadData(selection)
unzip(here::here("wopr/NGA/population/v1.2/NGA_population_v1_2_admin.zip"),overwrite = T,exdir = here::here("wopr/NGA/population/v1.2"))
admin_level2_shape <- readOGR(here::here("wopr/NGA/population/v1.2/NGA_population_v1_2_admin/NGA_population_v1_2_admin_level2_boundaries.shp"))
transformed <- spTransform(admin_level2_shape,CRS("+init=epsg:26331"))
admin_lvl2_cartogram <- cartogram(transformed,"mean",itermax=5)
我承认我对具体的包一无所知,所以我不知道生成的内容是否正确,但至少它会变形。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。