【问题标题】:Proj4 reprojection using R使用 R 的 Proj4 重投影
【发布时间】:2011-04-28 09:59:31
【问题描述】:

我正在尝试将坐标从 WGS84 重新投影到 MGA 53 区,这是基于 GDA94 基准的 UTM 投影。我的结果是无穷大,这绝对是不正确的。我正在使用 R 的 proj4 包,如下所示:

> library(proj4)
> df <- data.frame("x" = c(131.1, 131.102, 131.1106, 133.34), "y" = c(-13.23, -13.243, -13.22, -22.66))
> df
         x       y
1 131.1000 -13.230
2 131.1020 -13.243
3 131.1106 -13.220
4 133.3400 -22.660
> ptransform(data = df, src.proj = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs", dst.proj = "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs")
$x
[1] Inf Inf Inf Inf

$y
[1] Inf Inf Inf Inf

$z
[1] 0 0 0 0

> 

这里出了什么问题?

【问题讨论】:

  • 你试过silent=F,看看有没有警告?
  • 我有,它只警告Z值,我在这里不关心。

标签: r geospatial map-projections proj


【解决方案1】:

问题是 ptransform 需要弧度,而不是度数。 proj4:::project 函数默认为度数。如果转换为弧度,结果与 ptransform 相同。

【讨论】:

  • 如果您查看帮助页面,您会想到它,这是一个在情况危急时的好计划;)
【解决方案2】:

proj4 包是从哪里获得的?

如果可以安装,试试 rgdal:

df

图书馆(rgdal)

## 项目需要一个矩阵,假设源是 longlat/WGS84

project(as.matrix(df), "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" )

     [,1]    [,2]

[1,] 77177.18 8534132

[2,] 77416.79 8532695

[3,] 78310.75 8535258

[4,] 329440.68 7493165

【讨论】:

  • 啊,我在 CRAN 上看到 proj4 抱歉,这里出了点问题 - 我会检查一下
  • proj4 在 Windows 中不适用于 64 位,这就是我最初认为它不在 CRAN 上的原因。
猜你喜欢
  • 1970-01-01
  • 2013-01-15
  • 2015-03-29
  • 1970-01-01
  • 2021-08-29
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多