reproyección Proj4 usando R
-
09-10-2019 - |
Pregunta
Estoy intentando volver a proyectar las coordenadas de WGS84 a MGA Zona 53, una proyección UTM basado en el dato GDA94. Consigo el infinito como mi resultado, que es definitivamente incorrecto. Estoy utilizando el paquete de R proj4
este modo:
> 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
>
¿Qué va mal aquí?
Solución
El problema es que espere PTransform radianes, no grados. La función por defecto proj4 ::: proyecto a grados. Los resultados son los mismos con PTransform si convierte a radianes.
Otros consejos
¿Dónde está el paquete proj4 obtiene a partir de?
Trate rgdal si se puede instalar:
df <- data.frame ( "x" = c (131,1, 131,102, 131,1106, 133,34), "y" = c (-13,23, -13,243, -13,22, -22,66))
biblioteca (rgdal)
## proyecto espera una matriz, asume fuente es longlat / WGS84
proyecto (as.matrix (df), "+ proj = UTM + zona = 53 + sur + ellps = GRS80 + towgs84 = 0,0,0,0,0,0,0 + unidades = m + no_defs" )
[,1] [,2]
[1,] 77.177,18 8534132
[2,] 77.416,79 8532695
[3,] 78.310,75 8535258
[4,] 329.440,68 7493165