使用已格式化的几何列将数据帧转换为SF对象

时间:2019-07-02 14:42:30

标签: r dataframe geometry sf

我有一个这样的数据帧(dat),到目前为止geom_transect是一个因素。 我想通过指定geom_transect是一个几何列将我的数据框转换为一个sf对象,但没有成功。 这是我的桌子

rn   geom_transect
1   c(2.59301435154815, 51.0850974058788)
2   c(2.65908408179987, 51.120810848601)
3   c(3.33344625797791, 51.3620269560137)
4   c(4.36158333330571, 51.2919925240015)
5   c(4.11514955241717, 51.1308060725143)

我尝试过:

st_as_sf(as.numeric(as.character(dat$geom_transect)))

我收到以下错误消息:

Error in UseMethod("st_as_sf") : 
  no applicable method for 'st_as_sf' applied to an object of class "c('double', 'numeric')"
In addition: Warning message:
In st_as_sf(as.numeric(as.character(dat$geom_transect))) :
  NAs introduced by coercion

我也尝试过:

st_point(is.numeric(dat$geom_transect))

Error in st_point(is.numeric(dat$geom_transect)) : 
  is.numeric(x) is not TRUE

欢迎任何帮助,在此先感谢!

1 个答案:

答案 0 :(得分:0)

您确实使我走上了正轨,谢谢!我以为会有一种更简单的方法,并且我同意应该以其他方式存储几何表,但是数据提取很长,并且我不想重新运行该部分代码。

这是我最终检索lon / lat坐标的方法:

  <goupId>com.example.example</groupId>
  <artifactId>main</artifactId>
  <version>0.0.4-SNAPSHOT</version>
  <packaging>aar</packaging>
  <dependencies>
    <dependency>
      <groupId>com.example.example</groupId>
      <artifactId>submodule1</artifactId>
      <version>0.0.4-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.example.example</groupId>
      <artifactId>submodule2</artifactId>
      <version>0.0.4-SNAPSHOT</version>
    </dependency>