如何将空间数据帧转换回普通数据帧?
Posted
技术标签:
【中文标题】如何将空间数据帧转换回普通数据帧?【英文标题】: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
反过来怎么可能,甚至有可能?
【问题讨论】:
【参考方案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 ***.com/questions/39499999/…) 查看更多关于我卡在什么地方的详细信息。以上是关于如何将空间数据帧转换回普通数据帧?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?
如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?