从Behrmann CRS映射转换为R中的+ proj = longlat WGS84

时间:2019-01-19 03:32:04

标签: r wgs84

我有一个200 km x 200 km的网格单元的形状文件,覆盖Behrmann等面积圆柱投影中的世界陆地。我的目标是将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(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个投影点不确定

1 个答案:

答案 0 :(得分:0)

我对地理世界的经验不是很丰富,但这可能会有所帮助:

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" )