【问题标题】:How to convert rds format data into shp format in R?如何在 R 中将 rds 格式的数据转换为 shp 格式?
【发布时间】:2017-12-27 03:30:56
【问题描述】:

我有一个格式为rds 的地图数据。现在我想在另一个要求shp 格式的软件中使用这些数据。 R中如何将rds格式的数据转换为shp格式?

【问题讨论】:

    标签: r format geospatial shapefile format-conversion


    【解决方案1】:

    如果它是保存为R 特定二进制文件的“Serialization Interface for Single Objects”类型的空间对象(请参阅?readRDS),可能在某个时候由saveRDS() 创建,请使用

    library(rgdal)
    library(sp)
    
    x <- readRDS("path/to/the/rds_file.rds")
    

    然后写成:

    rgdal::writeOGR(x, "path/to/destination", "filename", driver = "ESRI Shapefile")
    

    确保不要将“.shp”放在输出文件名的末尾。

    还要确保不要/ 放在目标文件夹的末尾。否则你可能会遇到错误

    创建输出文件失败

    当错误时

    错误:inherits(obj, "Spatial") is not TRUE

    您可能忘记了 x 作为 writeOGR 函数中的第一个参数。

    【讨论】:

    • 我成功读取了 rds 文件,但是当我运行输出代码时,出现错误:inherits(obj, "Spatial") is not TRUE。为什么?
    • 您可能忘记将对象(在我的示例中为 x)放入 writeOGR 函数中。另请参阅我对所需库的编辑。
    • 我已经安装了两个包并将 x 放在我的代码中:'>library(rgdal) > library(sp) > a=readRDS('D:/data/chinamap/chinamap.rds') > rgdal::writeOGR(a, "D:/data/chinamap/", "china", driver = "ESRI Shapefile") ',但是我说的错误还是出现了。我很困惑。
    • 如果这也不起作用,您能否添加class(a)typeof(a)的输出?
    • 它不起作用。 “class(a)”的输出是“data.frame”,“typeof(a)”的输出是“list”。我应该将“a”转换为另一种格式吗?
    猜你喜欢
    • 2020-09-18
    • 2023-02-25
    • 2021-11-16
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    相关资源
    最近更新 更多