¿Cómo puedo convertir las coordenadas geomagnéticas en coordenadas geográficas sin hacer los cálculos yo mismo?

10

Tengo algunos datos que están en coordenadas geomagnéticas; es decir, son latitud y longitud, pero en referencia al polo norte magnético en Canadá en lugar del polo norte geográfico. Como puede suponer, me gustaría relacionarlos con otros datos que están en otros sistemas de coordenadas.

(Los datos se originaron como un cálculo del óvalo auroral; es decir, se originaron como geomagnéticos y no hay una fuente geográfica que pueda consultar, incluso en principio).

Los datos se almacenarán en PostGIS.

La manera fácil de hacer esto es encontrar un código EPSG para el sistema de coordenadas geomagnéticas, etiquetar los datos con ese código y luego todo se vuelve a proyectar mágicamente a lo que necesite en ese momento. Sin embargo, no puedo encontrar ningún código EPSG en spatialreference.org que contenga geomagnética o magnética . Varias búsquedas en Google tampoco muestran nada.

Para el nivel de precisión que necesito, cualquier sistema de coordenadas de latitud / longitud (por ejemplo, WGS84) modificado para tener un polo norte diferente es lo suficientemente bueno. Entonces, si hay una manera fácil de definir dicho sistema de coordenadas y cargarlo en PostGIS, eso también estaría bien.

Aclaración

Por ejemplo, supongamos que en lugar de convertir de coordenadas geomagnéticas a geográficas, simplemente quería convertir de UTM 15N a WGS84. Podría guardar el objeto UTM en PostGIS sin modificar y etiquetarlo con el código EPSG 26915 . Luego, cuando más tarde hice una consulta, pude decirle a PostGIS, "devuelva los resultados en el código EPSG 4326 ", y PostGIS se convertiría a WGS84 automáticamente.

Del mismo modo, me gustaría etiquetar los datos geomagnéticos con algún sistema de coordenadas y dejar que PostGIS haga la reproyección detrás de escena, sin que tenga que llamar a una reproject()función manualmente.

Reid
fuente
1
¿Podría explicar cómo se obtuvieron sus coordenadas geomagnéticas en primer lugar? Creo que eso puede ser la clave para una solución precisa: parece probable que se calculan a partir de coordenadas geográficas. (De lo contrario, ¿cómo se mediría directamente una latitud geomagnética ?)
whuber
@whuber, pregunta editada. Gracias por la aclaración.
Reid

Respuestas:

7

No estoy seguro de que ninguna fuente abierta sea compatible con este geomagnético a geográfico.

Pero si tienes pocas coordenadas, por favor. prueba esto ..
http://wdc.kugi.kyoto-u.ac.jp/igrf/gggm/index.html

La NASA ha publicado el algoritmo, puedes probar http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mag2geo.pro

vadivelan
fuente
1
He abierto una entrada para el equipo proj4. ¿Podrían agregarle soporte en una versión posterior? trac.osgeo.org/proj/ticket/178
nickves
Alguien portó el código geo2mag.pro IDL a Python . Este código inverso es muy similar a mag2geo.pro. Aquí está el código portado por Python .
Serge Stroobandt
2

Los enlaces proporcionados por vadivelan dejan en claro que las coordenadas geomagnéticas son solo una rotación de la esfera, de modo que (a) el polo norte pasa a través del polo sur magnético actual y (b) el meridiano principal pasa a través de los polos físico y magnético.

Por ejemplo, IGRF-95 usa la posición del polo norte magnético en 1995, en la latitud 79.30 y longitud -71.41 grados.

Las rotaciones esféricas se pueden calcular de muchas maneras , generalmente mediante la conversión a coordenadas cartesianas geocéntricas 3D, aplicando una transformación lineal (a través de una multiplicación de matriz de 3 x 3 o una multiplicación de cuaterniones) y volviendo a convertir a coordenadas esféricas. Pero si no quieres programar esto, hay un truco:Un SIG que admita proyecciones oblicuas puede rotar mediante una reproyección. Simplemente proyecte las coordenadas geomagnéticas como si fueran coordenadas geográficas, por ejemplo, mediante un aspecto polar de la proyección esterográfica (con un meridiano central a 0 grados). Luego, desproyecte el resultado utilizando el aspecto oblicuo de la misma proyección con latitud de origen en 79.30 y meridiano central de -71.41. Finalmente, proyecte una vez más usando cualquier proyección deseada para obtener la "reproyección mágica".

whuber
fuente
Hmm ¿Hay alguna manera de definir un sistema de coordenadas GEOS o PROJ de este tipo, o algo más que PostGIS acepte, y dejar que una biblioteca haga la reprobación sin que tenga que hacerlo explícitamente?
Reid
Depende de lo que quieras decir con "explícitamente". En algún momento, preferiblemente lo más temprano posible en el proceso, debe convertir físicamente las coordenadas de geomagnético a geográfico. Puede hacer esto una vez usando un SIG adecuado (por ejemplo, QGIS parece que funcionaría) o una utilidad de reproyección. No necesita conocer las ecuaciones de reproyección para esto si usa el truco que describí.
whuber
Permítanme aclarar la pregunta para responder eso.
Reid