使用R package sf写入带坐标的CSV

时间:2017-08-04 20:39:26

标签: r csv spatial sf

我想知道是否有一种简单的方法来编写包含坐标的点sf对象(sf R包)的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"))

3 个答案:

答案 0 :(得分:7)

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

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

st_write(input, "output.csv", layer_options = "GEOMETRY=AS_XY")

答案 1 :(得分:3)

您希望对所有其他几何类型的POINT简单要素几何进行不同的处理,使其基本为as.data.frame;我认为这个特征是蠕变的。我想

cbind(as.data.frame(input), st_coordinates(input))
对于这种特殊情况,

很容易。

st_write是您所有GDAL驱动程序的门户网站,仅此而已,它不会对数据执行任何操作,也不会自行处理GDAL设置。

答案 2 :(得分:1)

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

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