【发布时间】:2018-08-17 07:32:34
【问题描述】:
我有一个表格,其中包含给定坐标参考系统中的位置参考和 x 和 y 坐标。我想把它变成一个简单的特征数据框。我怎样才能创建它?
我认为它可能是:
data_frame(place = "London",
lat = 51.5074, lon = 0.1278,
epsg = 4326) %>%
group_by(place) %>%
mutate(feature = st_point(c(lon, lat)))
但这会导致错误:
mutate_impl(.data, dots) 中的错误:列
feature的长度必须为 1(组大小),而不是 2
这可能很简单,我只是在文档中没有看到它很容易讨论。大多数空间分析师似乎默认需要更好的数据:)。
我也想试试:
data_frame(place = "London",
lat = 51.5074, lon = 0.1278,
epsg = 4326) %>%
group_by(place) %>%
do(with(., {
p <- st_point(c(lon, lat))
pcol <- st_as_sfc(p)
st_as_sf(data_frame(place = place,
point = pcol),
crs = epsg)
}))
在管道的最后,我想要一个简单的特征数据框,我可以像其他任何东西一样绘制和操作。
我想要做的另一个问题是我有一个带有 EPSG 列的数据框。我需要为每个地方创建这个简单的特征数据框,并将它们组合成一个更大的简单特征数据框。
【问题讨论】:
-
那么这里想要的输出是什么?您正在尝试在 data.frame 中存储
st_point对象? -
检查
st_as_sf。 How to Convert data frame to spatial coordinates -
@MrFlick 我想在文档中创建一个简单的特征数据框,例如 nc。我有成千上万的这些坐标存储在数据库中,并参考了他们的 espg。但默认情况下,它不会以任何 GIS 友好的方式存储。
-
谢谢,@Henrik。我想这就是我想知道的。不知何故,我错过了坐标参数。
-
如果它是重复的,那么根据我之前的评论,这个问题有一个更广泛的部分。我已将其添加到问题中。