r - 将纬度和经度点转换为 UTM

标签 r coordinates rgdal

我找到了一个相当简单的例子来说明如何做到这一点,但我无法让它为我工作。我对 R 很陌生

library(rgdal) 
xy <- cbind(c(118, 119), c(10, 50)) 
project(xy, "+proj=utm +zone=51 ellps=WGS84") 
          [,1]    [,2] 
[1,] -48636.65 1109577 
[2,] 213372.05 5546301

但这是示例数字。我有数千个坐标必须转换,但我不知道如何将它们从我的表中获取到这个脚本中

我的数据集有 3 列,ID、X 和 Y。如何使用此等式转换它们?我已经坚持了几个星期

最佳答案

为了确保在与坐标相关的每一步都有适当的投影元数据,我建议将点转换为 SpatialPointsDataFrame尽快提出反对意见。

?"SpatialPointsDataFrame-class"有关如何将简单的 data.frames 或矩阵转换为 的更多信息空间点数据帧 对象。

library(sp)
library(rgdal)

xy <- data.frame(ID = 1:2, X = c(118, 119), Y = c(10, 50))
coordinates(xy) <- c("X", "Y")
proj4string(xy) <- CRS("+proj=longlat +datum=WGS84")  ## for example

res <- spTransform(xy, CRS("+proj=utm +zone=51 ellps=WGS84"))
res
#            coordinates ID
# 1 (-48636.65, 1109577)  1
# 2    (213372, 5546301)  2

## For a SpatialPoints object rather than a SpatialPointsDataFrame, just do: 
as(res, "SpatialPoints")
# SpatialPoints:
#              x       y
# [1,] -48636.65 1109577
# [2,] 213372.05 5546301
# Coordinate Reference System (CRS) arguments: +proj=utm +zone=51
# +ellps=WGS84 

关于r - 将纬度和经度点转换为 UTM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639967/

相关文章:

r - 无法在 ubuntu 14.04 中安装 rgdal(未定义为引用 'pj_ctx_fclose')

r - R是否有任何正式的命名约定?

r - R 中的捷克语编码

java - 旋转后模型的顶点选择和状态

opengl - 眼空间坐标到底是什么?

objective-c - 将 NSNumber 转换为 CLCoordinate

R 传单。将点数据分组到单元格中以汇总许多数据点

r - 如何在R中从GIS服务器获取数据?

r - 向ggplot箱图添加简单的lm趋势线

java - 如何调用抽象类的方法?