在R中使用SF-向大点数据集添加几何的最佳方法是什么?

迈克尔·亨利

免责声明:我只是开始使用SF,所以(希望!)这里可能缺少明显的东西。

我有AusGeoid2020数据,数据由15,454,800点和一些在椭球高度(即GPS高度)和AHD之间转换的属性组成

尽管文件很大(914Mb),但很容易读取:

library(plyr)
library(magrittr)
library(dplyr)
library(readr)
library(sf)

AusGeoid2020 <- read_fwf(
  file = "AUSGeoid2020_20170908_win.dat",
  col_positions = fwf_widths(
    widths = c(3L,9L,2L,2L,3L,7L,2L,3L,3L,7L,10L,10L),
    col_names = c(
      "ID",
      "ellipsoid to AHD separation (m)",
      "Latitude (hem)",
      "Latitude (deg)",
      "Latitude (min)",
      "Latitude (sec)",
      "Longitude (hem)",
      "Longitude (deg)",
      "Longitude (min)",
      "Longitude (sec)",
      "deflection of the vertical (seconds, xi)",
      "deflection of the vertical (seconds, eta)"
    )
  ),
  col_types = cols(
    ID = col_character(),
    `ellipsoid to AHD separation (m)` = col_double(),
    `Latitude (hem)` = col_character(),
    `Latitude (deg)` = col_double(),
    `Latitude (min)` = col_double(),
    `Latitude (sec)` = col_double(),
    `Longitude (hem)` = col_character(),
    `Longitude (deg)` = col_double(),
    `Longitude (min)` = col_double(),
    `Longitude (sec)` = col_double(),
    `deflection of the vertical (seconds, xi)` = col_double(),
    `deflection of the vertical (seconds, eta)` = col_double()
  ),
  skip = 1L
)

AusGeoid2020 <- AusGeoid2020 %>% 
  mutate(
    Latitude = `Latitude (deg)` + (`Latitude (min)`/60) + (`Latitude (sec)`/3600),
    Latitude = case_when(
      `Latitude (hem)` == "S" ~ -1 * Latitude,
      TRUE ~ Latitude
    ),
    Longitude = `Longitude (deg)` + (`Longitude (min)`/60) + (`Longitude (sec)`/3600),
    Longitude = case_when(
      `Longitude (hem)` == "W" ~ -1 * Longitude,
      TRUE ~ Longitude
    )
  ) %>% 
  select(
    ID,
    `ellipsoid to AHD separation (m)`,
    Latitude,
    Longitude,
    `deflection of the vertical (seconds, xi)`,
    `deflection of the vertical (seconds, eta)`
  )

我的问题是:向此大型数据框添加几何的最佳方法是什么?我相信我想要的函数st_point()没有被向量化,因此我不得不使用alply(){plyr}中的来创建geometry列,但这非常耗费资源,这使我认为必须有更好的方法。

st_geometry(AusGeoid2020) <- st_sfc(
  alply(AusGeoid2020, 1, function(row) {
    st_point(x = c(row$Longitude, row$Latitude), dim = "XY")
  }),
  crs = 7844L
)

这需要很长时间。任何建议表示赞赏!

万维网

我们可以使用st_as_sf如下。默认设置将删除带有坐标信息的列(在本例中为LongitudeLatitude)。如果要保留这些列,请设置remove = FALSE

AusGeoid2020_sf <- AusGeoid2020 %>% 
  st_as_sf(coords = c("Longitude", "Latitude"), crs = 7844L, remove = FALSE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在Linux中使用'ln -sf'?

来自分类Dev

AngularJS中使用Ajax获取数据的最佳方法是什么

来自分类Dev

在JavaScript中使用带小数点的浮点数的最佳方法是什么?

来自分类Dev

在JavaScript中使用带小数点的浮点数的最佳方法是什么?

来自分类Dev

使用单独的数据集设置单独的FreeNAS jails /插件的最佳方法是什么?

来自分类Dev

使用dplyr来忽略R中sf对象的几何

来自分类Dev

在python中使用networkx在无向图中计算大小k的集团的最佳方法是什么?

来自分类Dev

使用GParted live向Ubuntu 12.04分区添加之前未分配的空间的最佳方法是什么?

来自分类Dev

使用 Google Earth Engine 使用栅格和矢量数据在像素 ID 级别构建表格数据集的最佳方法是什么?

来自分类Dev

使用angular添加元素的最佳方法是什么?

来自分类Dev

在PySpark中使用Apache Spark数据帧消除重音的最佳方法是什么?

来自分类Dev

在rails中使用插入查询遍历大数据的最佳方法是什么

来自分类Dev

在角度材料 2/4 中使用数据表的最佳解决方法是什么?

来自分类Dev

在 C# 中使用键/值存储排序数据的最佳方法是什么

来自分类Dev

在 DynamoDB 中使用 HTML 标签保存数据的最佳方法是什么?

来自分类Dev

变异使用useQuery提取的远程数据的最佳方法是什么

来自分类Dev

使用sqlalchemy从mysql获取大量数据的最佳方法是什么?

来自分类Dev

使用 Django ORM 查询这些数据的最佳方法是什么?

来自分类Dev

在TCP连接中使用绑定方法的最佳方法是什么?

来自分类Dev

在休眠中使用连接的最佳方法是什么

来自分类Dev

Scrapy:在Postgres管道中使用itemloader的最佳方法是什么?

来自分类Dev

在react js中使用试剂组件的最佳方法是什么?

来自分类Dev

在Node.js中使用Akka的最佳方法是什么

来自分类Dev

在iOS应用中使用JSON的最佳方法是什么?

来自分类Dev

在QlikView中使用查找表的最佳方法是什么?

来自分类Dev

在Parsec中使用WriterT的最佳方法是什么?

来自分类Dev

在python中使用“不等于”的最佳方法是什么?

来自分类Dev

在Webpack中使用样式表的最佳方法是什么?

来自分类Dev

在 Swift 中使用 map 和排序的最佳方法是什么

Related 相关文章

  1. 1

    为什么在Linux中使用'ln -sf'?

  2. 2

    AngularJS中使用Ajax获取数据的最佳方法是什么

  3. 3

    在JavaScript中使用带小数点的浮点数的最佳方法是什么?

  4. 4

    在JavaScript中使用带小数点的浮点数的最佳方法是什么?

  5. 5

    使用单独的数据集设置单独的FreeNAS jails /插件的最佳方法是什么?

  6. 6

    使用dplyr来忽略R中sf对象的几何

  7. 7

    在python中使用networkx在无向图中计算大小k的集团的最佳方法是什么?

  8. 8

    使用GParted live向Ubuntu 12.04分区添加之前未分配的空间的最佳方法是什么?

  9. 9

    使用 Google Earth Engine 使用栅格和矢量数据在像素 ID 级别构建表格数据集的最佳方法是什么?

  10. 10

    使用angular添加元素的最佳方法是什么?

  11. 11

    在PySpark中使用Apache Spark数据帧消除重音的最佳方法是什么?

  12. 12

    在rails中使用插入查询遍历大数据的最佳方法是什么

  13. 13

    在角度材料 2/4 中使用数据表的最佳解决方法是什么?

  14. 14

    在 C# 中使用键/值存储排序数据的最佳方法是什么

  15. 15

    在 DynamoDB 中使用 HTML 标签保存数据的最佳方法是什么?

  16. 16

    变异使用useQuery提取的远程数据的最佳方法是什么

  17. 17

    使用sqlalchemy从mysql获取大量数据的最佳方法是什么?

  18. 18

    使用 Django ORM 查询这些数据的最佳方法是什么?

  19. 19

    在TCP连接中使用绑定方法的最佳方法是什么?

  20. 20

    在休眠中使用连接的最佳方法是什么

  21. 21

    Scrapy:在Postgres管道中使用itemloader的最佳方法是什么?

  22. 22

    在react js中使用试剂组件的最佳方法是什么?

  23. 23

    在Node.js中使用Akka的最佳方法是什么

  24. 24

    在iOS应用中使用JSON的最佳方法是什么?

  25. 25

    在QlikView中使用查找表的最佳方法是什么?

  26. 26

    在Parsec中使用WriterT的最佳方法是什么?

  27. 27

    在python中使用“不等于”的最佳方法是什么?

  28. 28

    在Webpack中使用样式表的最佳方法是什么?

  29. 29

    在 Swift 中使用 map 和排序的最佳方法是什么

热门标签

归档