6 votos

Básica proj4 conversión cuadrícula UTM -> longlat y la espalda

Soy un SIG novato, y estoy luchando para entender cómo conducir proj4 para lograr lo que parece una cosa simple. He buscado en google durante un par de días, pero todo lo que encuentro parece presuponer bastante avanzado el conocimiento, y deja muchas cosas sin decir. Stack Overflow no podía claro que hasta para mí, ya sea..

Tengo una conversión entre la coordenada UTM/coordenada y y la lat/long para hacer en ambas direcciones. Una vez que tengo este trabajo, voy a añadir algunos de los diferentes proyecciones/datums.

Estoy trabajando en mi recién adquirido conocimiento/supuestos:

  1. Esta conversión requiere un dato de la traducción, porque WGS84 (estándar de referencia para UTM) tiene su primer meridiano unos 100 metros al este de Greenwich (donde la longitud es cero).
  2. Yo no necesita preocuparse acerca de elipsoides, porque la lat/long son geográfico de coordenadas, en lugar de lo previsto.
  3. Puedo iniciar las conversiones mediante una cadena (como se usa en la línea de comandos de creación de instancias), o puede pre-ensamblar una fuente y objeto de destino, y llame a pj_fwd(data, ref) directamente.

Otro problema es que si me llama el código directamente, mientras que los he encontrado a la projUV de tipo de datos - no puedo encontrar la UTM versión.

Podría alguien por favor me hagan empezar con el formato de la cadena(s) de cualquiera de los métodos que se requiere?

Decir la conversión de la zona 56 499451mE 6960921mS de lat/long como un ejemplo?

Muchas, muchas gracias.

5voto

Swinders Puntos 1042

Personalmente yo uso los enlaces Python para la Proj4 de la biblioteca - http://pypi.python.org/pypi/pyproj/1.8.6

Más detalles http://pyproj.googlecode.com/svn/trunk/README.html

Usted puede pasar su proyección parámetros directamente a la proyección de objetos de la siguiente manera:

PROJ_32756 = """
+proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs
"""
p1 = pyproj.Proj(PROJ_32756)

Una lista completa de estas cadenas pueden ser encontrados en la http://spatialreference.org/ Para la zona 56 ver http://spatialreference.org/ref/epsg/32756/proj4/

Muchas de estas proyecciones ya están incorporados en la biblioteca, de manera que sólo se puede pasar en el código. A continuación es un ejemplo de volviendo a proyectar algunos geojson de una proyección a otra. Usted debe ser capaz de adaptarse a sus necesidades.

import pyproj
import simplejson

p1 = pyproj.Proj(init='epsg:3857')
p2 =pyproj.Proj(init='epsg:29902')

json='{"type":"Polygon","coordinates":[[[-972279.15280781,6907135.0149664],[-995516.00940234,6867999.2564914],[-946596.31130859,6844762.3998969],[-964941.19809375,6892459.1055383],[-972279.15280781,6907135.0149664]]]}'

pydata = simplejson.loads(json)
print str(pydata)
new_coords = []
for p in pydata['coordinates'][0]:
    x2, y2 = pyproj.transform(p1,p2,p[0],p[1])
    new_coords.append([x2, y2])

new_json = simplejson.dumps(dict(type="Polygon", coordinates=[new_coords], srid="29902"))
print str(new_json)

3voto

Robert Höglund Puntos 5572

Puede que desee echar un vistazo a la ruta-me proyecto, que parecen tener algunos ejemplos de trabajo de envolver Proj.4 en la plataforma iOS en Objective-C. La transformación se ve a suceder en Mapview/Mapa/RMProjection.m.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X