6

我想知道是否有一种简单的方法可以编写包含坐标的点sf对象(sfR 包)的 CSV。

你可以使用st_write(input, "output.csv")它,它会写一个没有坐标的 CSV。我用坐标编写文件的技巧是:

coords <- st_coordinates(input)
input_dat <- input %>% st_set_geometry(., NULL)
input_dat <- cbind(input_dat, coords)

但似乎必须有一个更简单的方法。

根据要求,这里是上面代码的设置:

input <- data.frame(ID = 1:10, longitude = rnorm(10), latitude = rnorm(10))
input <- st_as_sf(input, coords = c("longitude", "latitude"))
4

3 回答 3

9

我被Jakub Nowosad发送到解决方案。他向我指出了这个由Etienne B. Racine解决的github 问题

显然 GDAL 有一个标志,允许您包含坐标。所以:

st_write(input, "output.csv", layer_options = "GEOMETRY=AS_XY")
于 2017-08-08T12:53:26.727 回答
4

您希望对 POINT 简单特征几何进行与所有其他几何类型不同的处理,例如as.data.frame; 我认为该功能蠕变。我认为

cbind(as.data.frame(input), st_coordinates(input))

对于这种特殊情况,这很容易。

st_write旨在成为所有 GDAL 驱动程序的门户,仅此而已,它首先不会对数据做任何事情,或者自己操纵 GDAL 设置。

于 2017-08-17T21:44:25.000 回答
2

我同意,应该有一个更简单的方法。对象的as.data.frame()方法sp附加了坐标,我觉得sf对象也应该有一个。但是现在,怎么样:

input %>% cbind(., st_coordinates(.)) %>% st_set_geometry(NULL)

于 2017-08-07T21:39:24.140 回答