【问题标题】:How to convert a spatial dataframe back to normal dataframe?如何将空间数据帧转换回普通数据帧?
【发布时间】:2012-03-09 04:16:54
【问题描述】:

这是一个基本问题,但遗憾的是我在其他地方找不到相关命令。

有没有办法可以将空间点数据帧转换为 R 中的普通数据帧。

例如如果普通数据框是df,以 Lat、Lon 作为位置坐标,我可以获得空间 df:

coordinates (df)= ~Lat + Lon

反过来怎么可能,甚至有可能?

【问题讨论】:

    标签: r type-conversion dataframe spatial


    【解决方案1】:

    as.data.frame() 可以满足您的需求:

    library(sp)
    # Construct a SpatialPointsDataFrame
    data(meuse)
    xy <- meuse[1:2]
    df <- meuse[-1:-2]
    SPDF <- SpatialPointsDataFrame(coords=xy, data=df)
    
    # And then convert it (back) to a data.frame
    DF <- as.data.frame(SPDF)
    

    【讨论】:

    • 感谢您的回答。你知道如何将空间坐标中的 xy 转换为以度为单位的标准值吗?
    • 这当然取决于 x-y 坐标的coordinate reference system。不过,一般来说,您可以使用sp:spTransform()。这里是one example;虽然它恰好朝相反的方向发展(即从 long-lat 转变),但想法是一样的。
    • 我怎样才能让它反转?我尝试在 CRS("+proj=longlat +datum=WGS84") 中切换值,它不起作用。
    • 如果您有一个带有适当 CRS 的 SpatialPoints 对象(例如),那应该可以工作。 (您可以通过运行我在上面链接的答案中给出的示例,然后执行spTransform(res, CRS("+proj=longlat +datum=WGS84")) 以成功反转转换来看到它确实有效。由于这不适用于您的数据,因此您的@ 一定有问题987654329@ 对象而不是 spTransform() 命令。干杯。
    • 我可以从示例开始并来回转换。问题是当我想从 NAD83 国家平面坐标开始时,它不起作用。我试过这个: xy stackoverflow.com/questions/39499999/…) 查看更多关于我卡在什么地方的详细信息。
    猜你喜欢
    • 2021-04-04
    • 1970-01-01
    • 2014-08-31
    • 2020-07-28
    • 2021-12-21
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多