La reproyección con pyproj es muy fácil y directa. En este caso hay que usar el contructor de la clase 'Proj' y el método 'transform' para la reproyección. El constructor admite varias sintaxis pero, en el ejemplo a continuación, se va a utilizar aquella que hace referencia al código EPSG (European Petroleum Survey Group). Otro aspecto importante a mencionar es que si el datum de origen viene expresado en unidades diferentes a metros, es imprescindible emplear el modificador 'preserve_units = True' en el método 'Proj' para evitar resultados erróneos.
El código siguiente permite trasformar un punto arbitrario de la ciudad de Milwaukee (USA), cuyo datum de origen viene expresado en pies, a long/lat (grados).
1 2 3 4 5 6 7 8 | from pyproj import Proj, transform # Wisconsin EPSG:32054: units in feet inProj = Proj(init = 'epsg:32054', preserve_units=True) outProj = Proj(init = 'epsg:4326') x1,y1 = 2560131.496875003, 406816.434375003 x2,y2 = transform(inProj, outProj,x1,y1) print "({:.6f}, {:.6f})".format(x2, y2) |
El resultado del cálculo corresponde a:
1 | (-87.902857, 43.096913) |
el cual es esencialmente correcto.
No hay comentarios:
Publicar un comentario