Преобразование из карты Бермана CRS в + proj = longlat WGS84 в R - PullRequest
0 голосов
/ 19 января 2019

У меня есть шейп-файл ячеек сетки размером 200 км x 200 км, покрывающий сухопутные области мира в цилиндрической проекции равных площадей Бермана. Моя цель - преобразовать шейп-файл в формат + proj = longlat WGS84, чтобы я мог сопоставить его с картами в часто используемых проекциях, таких как wrld_simpl в maptools. Однако я не добился успеха и был бы признателен за помощь.

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 голосов
/ 19 января 2019

Я не очень опытный в гео-червях, но это может помочь:

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