r - 将 sf 表中的不同点投影到不同的 UTM 投影中(使用 R)?

标签 r r-sp r-sf

我在 R 的 sf 对象中有多个点,称为 pixel.zones,我在下面提供了一个示例。实际文件有超过 100,000 个点,但我将在此处包含 2 个点以节省空间:) 表中的每个项目都有一列指定点的所需投影(我在一个大区域中工作,因此不同的点位于不同的位置) UTM 区域)。我想将每个点的坐标重新投影到相应的 UTM 区域中。

我知道 sfst_transform(),但我不知道如何使其在 sf 对象中的不同点具有不同的投影。任何帮助都会很棒,最好使用 sf,但如果需要,我可以将任何内容更改为 sp

pixel.zones=structure(list(id = c("1", "1"), system.index = c(1L, 3534L), 
    b2_allPix = c(6206L, 1524L), b2_cloudfilt_strong = c(6206L, 
    1524L), b2_cloudfilt_weak = c(6206L, 1524L), system.time_start = c(954547200000, 
    954547200000), .geo = c(NA, NA), zone.num = c(7, 6), zone.espg = c(26907, 
    26906), geometry = structure(list(`1` = structure(c(-142.326683967925, 
    67.144791660576), class = c("XY", "POINT", "sfg")), `2` = structure(c(-147.528084912676, 
    66.2989583273184), class = c("XY", "POINT", "sfg"))), .Names = c("1", 
    "2"), class = c("sfc_POINT", "sfc"), precision = 0, bbox = structure(c(-147.528084912676, 
    66.2989583273184, -142.326683967925, 67.144791660576), .Names = c("xmin", 
    "ymin", "xmax", "ymax"), class = "bbox"), crs = structure(list(
        epsg = 4326L, proj4string = "+proj=longlat +datum=WGS84 +no_defs"), .Names = c("epsg", 
    "proj4string"), class = "crs"), n_empty = 0L)), .Names = c("id", 
"system.index", "b2_allPix", "b2_cloudfilt_strong", "b2_cloudfilt_weak", 
"system.time_start", ".geo", "zone.num", "zone.espg", "geometry"
), row.names = c(NA, -2L), class = c("sf", "tbl_df", "tbl", "data.frame"
), sf_column = "geometry", agr = structure(c(NA_integer_, NA_integer_, 
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_, 
NA_integer_, NA_integer_), .Names = c("id", "system.index", "b2_allPix", 
"b2_cloudfilt_strong", "b2_cloudfilt_weak", "system.time_start", 
".geo", "zone.num", "zone.espg"), .Label = c("constant", "aggregate", 
"identity"), class = "factor"))

最佳答案

或许可以将数据帧进行分割,然后根据不同的EPSG代码进行相应的转换。

library(tidyverse)
library(sf)

pixel.zones_list <- pixel.zones %>%
  split(f = .$zone.espg) %>%
  map(~st_transform(., crs = unique(.$zone.espg)))

关于r - 将 sf 表中的不同点投影到不同的 UTM 投影中(使用 R)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49700411/

相关文章:

python - 解析Excel公式

r - 大小为 K 的整数分区

r - ggplot : percentile lines by group automation

r - 有什么方法可以将调色板添加到尺寸美学中吗?

r - 在 shapefile 中保存 ggplot2 coord_map() 图表

r - 在 pmap() 或 pwalk() 中为 .l 提供列表参数

R:子集化和绘制 SpatialPoints 对象

删除 SpatialPointsDataFrame 中的第三个维度

r - 将地理点分配给由 R tidyverse-method 中的多边形定义的组

r - 在R中查找两组点(纬度和经度)点之间的最短距离