Репроекция Proj4 с использованием R - PullRequest
4 голосов
/ 21 октября 2010

Я пытаюсь перепроецировать координаты из WGS84 в MGA Zone 53, проекцию UTM на основе данных GDA94. В качестве результата я получаю бесконечность, что, безусловно, неверно. Я использую пакет R's 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

> 

Что здесь не так?

Ответы [ 2 ]

4 голосов
/ 21 октября 2010

Проблема в том, что ptransform ожидает радианы, а не градусы. Функция proj4 ::: проект по умолчанию принимает градусы. Результаты аналогичны ptransform, если вы конвертируете в радианы.

3 голосов
/ 21 октября 2010

Где взять пакет proj4?

Попробуйте rgdal, если вы можете установить его:

df <- data.frame ("x" = c (131.1, 131.102, 131.1106, 133.34), "y" = c (-13.23, -13.243, -13.22, -22.66)) </p>

library (rgdal)

## проект ожидает матрицу, предполагает, что источник - это longlat / WGS84

проект (как.матрица (df), "+ proj = utm + зона = 53 + юг + ellps = GRS80 + towgs84 = 0,0,0,0,0,0,0 + единицы = m + no_defs")

     [,1]    [,2]

[1,] 77177,18 8534132

[2,] 77416,79 8532695

[3,] 78310,75 8535258

[4,] 329440,68 7493165

...