【问题标题】:R spTransform projected point(s) not finiteR spTransform 投影点不是有限的
【发布时间】:2017-09-25 14:59:28
【问题描述】:

我从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(input[[i]], to_args = to_args, from_args = from_args, : 361 个投影点不是有限的

有解决这个问题的建议吗?

【问题讨论】:

    标签: r geospatial shape reprojection-error


    【解决方案1】:

    使用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(TDWG4.LAEA['Level4_cod'], xlim=c(943611, 8500000), ylim=c(600000, 7800000)) 但出现以下错误:多路径错误(p_bind(L), border = border[i], lty = lty[i], lwd = lwd[i], : Invalid graphics path 有什么建议吗?
    • @NielsRaes 你试过 ggplot 而不是基本图吗? devtools::install_github("tidyverse/ggplot2"), library("ggplot2") # need dev version of ggplot2, ggplot(data = TDWG4.LAEA) + geom_sf()?
    • 打开使用 devtools 安装的 ggplot2 时出现此错误:错误:get(Info[i, 1], envir = env) 中的 'ggplot2' 的包或命名空间加载失败:惰性-load 数据库 'D:/R/library/ggplot2/R/ggplot2.rdb' 已损坏。使用常规 ggplot2 库和 ggplot2::ggplot(data = TDWG4) + geom_sf() 时,我收到错误:geom_sf() 中的错误:找不到函数“geom_sf”。还有什么建议吗?
    • @NielsRaes 对不起,我的错:我错过了你只是想绘制欧洲(错误是因为转换已应用于欧洲以外的地区,所以没有意义)。见编辑
    • 感谢 Phil,完成了这项工作。只有 dat --> tdwg.laea。有趣的库,以前从未使用过。
    猜你喜欢
    • 2012-04-16
    • 1970-01-01
    • 2021-08-29
    • 2013-01-30
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2021-08-16
    相关资源
    最近更新 更多