R spTransform投影点不是有限的
R spTransform projected point(s) not finite
我从 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"))
并得到以下错误:
Error in .spTransform_Polygon(input[[i]], to_args = to_args, from_args = from_args, :
failure in Polygons 37 Polygon 1 points
In addition: Warning message:
In .spTransform_Polygon(input[[i]], to_args = to_args, from_args = from_args, :
361 projected point(s) not finite
有什么解决这个问题的建议吗?
使用 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)
我从 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"))
并得到以下错误:
Error in .spTransform_Polygon(input[[i]], to_args = to_args, from_args = from_args, : failure in Polygons 37 Polygon 1 points In addition: Warning message: In .spTransform_Polygon(input[[i]], to_args = to_args, from_args = from_args, : 361 projected point(s) not finite
有什么解决这个问题的建议吗?
使用 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)