R spTransform投影点不是有限的

时间:2017-09-25 14:59:28

标签: r geospatial shape reprojection-error

我从http://www1.kew.org/gis/tdwg/index.html下载了TDWG level4形状。此形状具有WGS84投影。我需要将此图层重新投影到欧洲LAEA或CRS(" + init = epsg:3035")。

我使用了以下代码:

TDWG4 <- readOGR("D:/GIS/Administrative/world/TDWG/level4/level4.shp", layer="level4")
TDWG4.LAEA <- spTransform(TDWG4, CRS("+init=epsg:3035"))

并收到以下错误:

  

.spTransform_Polygon中的错误(输入[[i]],to_args = to_args,from_args = from_args,:     多边形失败37多边形1点   另外:警告信息:   在.spTransform_Polygon(输入[[i]],to_args = to_args,from_args = from_args,:     361个投影点不是有限的

有任何解决此问题的建议吗?

1 个答案:

答案 0 :(得分:0)

使用sf,因为它已基本取代rgdal/rgeos

# install.packages("sf")
library("sf")
tdwg4.laea = sf::read_sf("level4.shp")  # assumes in project root
tdwg4.laea = sf::st_transform(tdwg4.laea, 3035)

我们现在必须剪辑该区域,因为3035 EPSG仅与欧洲相关:

install.packages("rmapshaper")
library("rmapshaper")
tdwg4.laea = rmapshaper::ms_clip(
  tdwg4.laea,
  bbox = c(2426378.0132, 1528101.2618, 6293974.6215, 5446513.5222))

EPSG 3035的边界框来自:http://spatialreference.org/ref/epsg/etrs89-etrs-laea/

现在情节:

plot(tdwg4.laea)

Plot of Europe