>我有一个 200km x 200km 的网格单元的形状文件,覆盖贝尔曼等积圆柱投影中的世界陆地区域。我的目标是将 shapefile 转换为 +proj=longlat WGS84 格式,以便我可以将其与常用投影(例如地图工具中的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(input[[i]], to_args = to_args, from_args = from_args, 中的错误: 多边形 1106 中的失败 多边形 1 点另外: 警告消息:在 .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" )