r - 在 R 中从 Behrmann CRS 映射转换为 +proj=longlat WGS84
问题描述
我有一个 200 公里 x 200 公里的网格单元形状文件,覆盖贝尔曼等面积圆柱投影中的世界陆地区域。我的目标是将 shapefile 转换为 +proj=longlat WGS84 格式,以便我可以将其与常用投影中的地图相匹配,例如 maptools 中的 wrld_simpl。但是,我没有成功,希望能得到一些帮助。
rm(list = ls())
library(RCurl)
library(raster)
library(maptools)
library(rgdal)
data("wrld_simpl")
tmp <- tempfile() download.file("https://github.com/darunabas/extras/blob/master/temp_shapefile.zip?raw=true", destfile = tmp)
unzip(tmp, exdir = ".")
s <- rgdal::readOGR("temp_shapefile")
proj4string(s) = CRS("+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +ellps=WGS84 +units=m +no_defs")
p <- spTransform(s, CRS("+proj=longlat +datum=WGS84"))
我收到以下错误:检测到非有限变换:[,1] [,2] [,3] [,4] .spTransform_Polygon 中的错误(输入 [[i]],to_args = to_args,from_args = from_args,:失败Polygons 1106 Polygon 1 points 另外:警告消息:在 .spTransform_Polygon(input[[i]], to_args = to_args, from_args = from_args, : 2 个投影点不是有限的
解决方案
我在地理世界上不是很有经验,但这可能会有所帮助:
library( sf )
sf <- read_sf( "./temp_shapefile.shp")
st_crs( sf ) <- "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +datum=WGS84 +ellps=WGS84 +units=m +no_defs"
sf2 <- st_transform( sf, crs = "+proj=longlat +datum=WGS84" )
推荐阅读
- scala - Spark shell 使用 combineByKey 和 Object?
- excel - 将图表导出到 PowerPoint 的代码运行时错误 91
- javascript - Vue.js 一起输入键和模糊事件
- android - Gradle missingDimensionStrategy 支持调试/发布版本
- c++ - 在 C++ 中使用没有合作伙伴 Class/Cpp 文件的头文件是否实用
- mongodb - 在 mongo 中选择用于索引的列值的类型
- r - 从 R 中的 DF 列动态提取 XML 属性
- http - dio : HttpException: 标头 set-cookie 的值不止一个
- angular - 如何使用 Angular Material matInput 阻止输入中的特殊字符
- scala - scala语法匹配多个案例类类型而不分解案例类