Jak przekonwertować współrzędne geomagnetyczne na współrzędne geograficzne bez samodzielnej matematyki?

10

Mam pewne dane, które są we współrzędnych geomagnetycznych; oznacza to, że są to szerokość i długość geograficzna, ale w odniesieniu do magnetycznego bieguna północnego w Kanadzie, a nie geograficznego bieguna północnego. Jak można się domyślić, chciałbym dopasować je do innych danych znajdujących się w innych układach współrzędnych.

(Dane pochodzą z obliczeń owalu zorzy; tzn. Pochodzą z geomagnetycznych i nie ma źródła geograficznego, z którego mógłbym się zapoznać, nawet w zasadzie).

Dane będą przechowywane w PostGIS.

Najłatwiejszym sposobem na to jest znalezienie kodu EPSG dla układu współrzędnych geomagnetycznych, oznaczenie danych tym kodem, a następnie wszystko zostanie magicznie przekierowane na wszystko, czego potrzebuję w danym momencie. Nie mogę jednak znaleźć żadnych kodów EPSG na spatialreference.org zawierających ani geomagnetyczne, ani magnetyczne . Różne wyszukiwania Google również nic nie pokazują.

Dla potrzebnego poziomu precyzji wystarczy dowolny układ współrzędnych szerokość / długość geograficzna (np. WGS84) zmodyfikowany tak, aby miał inny biegun północny. Więc jeśli istnieje prosty sposób zdefiniowania takiego układu współrzędnych i załadowania go do PostGIS, to też byłoby OK.

Wyjaśnienie

Załóżmy na przykład, że zamiast przekształcić współrzędne geomagnetyczne na geograficzne, po prostu chciałem przekonwertować z UTM 15N na WGS84. Mógłbym zapisać obiekt UTM w PostGIS niezmodyfikowany i oznaczyć go kodem EPSG 26915 . Następnie, kiedy później zadałem pytanie, mogłem powiedzieć PostGIS: „proszę zwrócić wyniki w kodzie EPSG 4326 ”, a PostGIS automatycznie przekonwertuje się na WGS84.

Podobnie, chciałbym oznaczyć dane geomagnetyczne jakimś układem współrzędnych i pozwolić PostGIS na wykonanie ponownej projekcji za kulisami, bez konieczności reproject()ręcznego wywoływania funkcji.

Reid
źródło
1
Czy mógłbyś w pierwszej kolejności wyjaśnić, w jaki sposób uzyskano współrzędne geomagnetyczne? Myślę, że może to stanowić klucz do dokładnego rozwiązania: wydaje się prawdopodobne, że są one obliczane ze współrzędnych geograficznych. (W przeciwnym razie, jak można bezpośrednio zmierzyć szerokość geomagnetyczną ?)
whuber
@ whuber, pytanie zredagowane. Dziękuję za wyjaśnienie.
Reid

Odpowiedzi:

7

Nie jestem pewien, czy jakikolwiek open source obsługuje tę geomagnetyczną na geograficzną.

Ale jeśli masz mało współrzędnych, proszę. spróbuj tego ..
http://wdc.kugi.kyoto-u.ac.jp/igrf/gggm/index.html

NASA opublikował algorytm, możesz wypróbować http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mag2geo.pro

vadivelan
źródło
1
Otworzyłem bilet dla zespołu proj4. Mogą dodać obsługę tego w późniejszej wersji? trac.osgeo.org/proj/ticket/178
nickves
Ktoś przeniósł kod geo2mag.pro IDL do Pythona . Ten kod odwrotny jest bardzo podobny do mag2geo.pro. Oto kod przeniesiony do Pythona .
Serge Stroobandt
2

Połączenia dostarczone przez vadivelan wyjaśniają, że współrzędne geomagnetyczne są po prostu obrotem kuli, dzięki czemu (a) biegun północny przechodzi przez obecny magnetyczny biegun południowy i (b) główny południk przechodzi przez bieguny fizyczne i magnetyczne.

Na przykład IGRF-95 wykorzystuje pozycję magnetycznego bieguna północnego w 1995 r. Na szerokości 79,30 i długości geograficznej -71,41 stopnia.

Obroty sferyczne można obliczyć na wiele sposobów , zazwyczaj przez konwersję do geocentrycznych współrzędnych kartezjańskich 3D, zastosowanie transformacji liniowej (poprzez mnożenie macierzy 3 x 3 lub mnożenie czwartorzędu) i przekształcanie z powrotem na współrzędne sferyczne. Ale jeśli nie chcesz tego programować, istnieje sztuczka:GIS, który obsługuje ukośne projekcje, może się obracać za pomocą ponownej projekcji. Po prostu rzutuj współrzędne geomagnetyczne tak, jakby były współrzędnymi geograficznymi, powiedzmy za pomocą polarnego aspektu rzutu sterograficznego (z centralnym południkiem na 0 stopniach). Następnie odrzuć wynik, używając skośnego aspektu tej samej projekcji z szerokością geograficzną na 79,30 i środkowym południkiem na -71,41. Na koniec, projektuj jeszcze raz, używając dowolnej pożądanej projekcji, aby uzyskać „magiczną zmianę”.

Whuber
źródło
Hmm Czy istnieje sposób, aby zdefiniować taki układ współrzędnych GEOS lub PROJ, czy coś innego, co zaakceptuje PostGIS, i pozwolić bibliotece dokonać ponownej projekcji bez mojej wyraźnej zgody?
Reid,
To zależy od tego, co rozumiesz przez „jawnie”. W pewnym momencie - najlepiej na jak najwcześniejszym etapie procesu - powinieneś fizycznie przekształcić współrzędne z geomagnetycznego na geograficzne. Możesz to zrobić raz, używając odpowiedniego GIS (np. QGIS wygląda na to, że zadziałałoby) lub narzędzia reprojection. Nie musisz znać równań reprojection, jeśli użyjesz sztuczki, którą nakreśliłem.
whuber
Pozwól, że wyjaśnię pytanie, aby na nie odpowiedzieć.
Reid,