Come posso convertire le coordinate geomagnetiche in coordinate geografiche senza fare la matematica da solo?


10

Ho alcuni dati che si trovano in coordinate geomagnetiche; cioè, sono latitudine e longitudine, ma in riferimento al polo nord magnetico in Canada piuttosto che al polo nord geografico. Come puoi immaginare, mi piacerebbe abbinarli ad altri dati che si trovano in altri sistemi di coordinate.

(I dati sono nati come un calcolo dell'ovale aurorale; cioè, hanno avuto origine come geomagnetico e non esiste una fonte geografica che potrei consultare, anche in linea di principio.)

I dati verranno archiviati in PostGIS.

Il modo più semplice per farlo è trovare un codice EPSG per il sistema di coordinate geomagnetiche, contrassegnare i dati con quel codice e quindi tutto viene magicamente riproiettato su tutto ciò di cui ho bisogno in quel momento. Tuttavia, non riesco a trovare alcun codice EPSG su spatialreference.org contenente geomagnetico o magnetico . Anche varie ricerche su Google non rivelano nulla.

Per il livello di precisione di cui ho bisogno, qualsiasi sistema di coordinate di latitudine / longitudine (ad esempio, WGS84) modificato per avere un polo nord diverso è abbastanza buono. Quindi, se esiste un modo semplice per definire un tale sistema di coordinate e caricarlo in PostGIS, anche quello sarebbe OK.

Una precisazione

Ad esempio, supponiamo che invece di convertire da coordinate geomagnetiche a geografiche, volessi semplicemente convertire da UTM 15N a WGS84. Potrei salvare l'oggetto UTM in PostGIS non modificato e contrassegnarlo con il codice EPSG 26915 . Quindi, quando in seguito ho fatto una query, ho potuto dire a PostGIS, "restituire i risultati nel codice EPSG 4326 ", e PostGIS si converte automaticamente in WGS84.

Allo stesso modo, vorrei taggare i dati geomagnetici con un sistema di coordinate e lasciare che PostGIS esegua la riproiezione dietro le quinte, senza che io debba chiamare una reproject()funzione manualmente.


1
Potresti spiegare come sono state ottenute le tue coordinate geomagnetiche in primo luogo? Penso che potrebbe essere la chiave per una soluzione accurata: sembra probabile che siano calcolati da coordinate geografiche. (Altrimenti, come si misurerebbe direttamente una latitudine geomagnetica ?)
whuber

@whuber, domanda modificata. Grazie per il chiarimento.
Reid,

Risposte:


7

Non sono sicuro che qualsiasi open source supporti questo geomagnetico a quello geografico.

Ma se hai poche coordinate, per favore. prova questo ..
http://wdc.kugi.kyoto-u.ac.jp/igrf/gggm/index.html

La NASA ha pubblicato l'algoritmo, puoi provare http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mag2geo.pro


1
Ho aperto un biglietto per il team di proj4. Potrebbero aggiungere il supporto per esso in una versione successiva? trac.osgeo.org/proj/ticket/178
nickves

Qualcuno ha portato il codice geo2mag.pro IDL su Python . Questo codice inverso è molto simile a mag2geo.pro. Ecco il codice con porting di Python .
Serge Stroobandt,

2

I collegamenti forniti da Vadivelan chiariscono che le coordinate geomagnetiche sono solo una rotazione della sfera in modo che (a) il polo nord passi attraverso l'attuale polo magnetico sud e (b) il primo meridiano passi attraverso i poli fisici e magnetici.

Ad esempio, IGRF-95 usa la posizione del polo nord magnetico nel 1995, a latitudine 79,30 e longitudine -71,41 gradi.

Le rotazioni sferiche possono essere calcolate in molti modi , in genere convertendole in coordinate cartesiane geocentriche 3D, applicando una trasformazione lineare (attraverso una moltiplicazione di matrice 3 x 3 o una moltiplicazione di quaternione) e riconvertendo in coordinate sferiche. Ma se non vuoi programmarlo, c'è un trucco:un GIS che supporta le proiezioni oblique può ruotare mediante una riproiezione. Proiettate le coordinate geomagnetiche come se fossero coordinate geografiche, diciamo per mezzo di un aspetto polare della proiezione sterografica (con un meridiano centrale a 0 gradi). Quindi non proiettare il risultato usando l'aspetto obliquo della stessa proiezione con latitudine di origine a 79,30 e meridiano centrale di -71,41. Infine, proietta ancora una volta usando qualsiasi proiezione desiderata per ottenere la "riproiezione magica".


Hmm. Esiste un modo per definire un tale sistema di coordinate GEOS o PROJ o qualcos'altro che PostGIS accetterà e lasciare che una libreria esegua la riproiezione senza che io debba farlo esplicitamente?
Reid,

Dipende da cosa intendi con "esplicitamente". Ad un certo punto - preferibilmente il più presto possibile - dovresti convertire fisicamente le coordinate da geomagnetico a geografico. Puoi farlo una volta usando un GIS adatto (ad esempio, QGIS sembra funzionare) o un'utilità di riproiezione. Non è necessario conoscere le equazioni di riproiezione per questo se si utilizza il trucco che ho descritto.
whuber

Vorrei chiarire la domanda per rispondere a questa domanda.
Reid,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.