Ich habe einige Daten, die in geomagnetischen Koordinaten angegeben sind. Das heißt, sie sind Breiten- und Längengrade, jedoch in Bezug auf den magnetischen Nordpol in Kanada und nicht auf den geografischen Nordpol. Wie Sie vielleicht erraten haben, möchte ich sie mit anderen Daten abgleichen, die sich in anderen Koordinatensystemen befinden.
(Die Daten stammten als Berechnung des Auroralovals; dh sie stammten als geomagnetisch und es gibt keine geografische Quelle, die ich auch im Prinzip heranziehen könnte.)
Die Daten werden in PostGIS gespeichert.
Der einfache Weg, dies zu tun, besteht darin, einen EPSG-Code für das geomagnetische Koordinatensystem zu finden, die Daten mit diesem Code zu kennzeichnen und dann alles auf magische Weise auf das zu projizieren, was ich gerade benötige. Auf Spatialreference.org kann ich jedoch keine EPSG-Codes finden, die entweder geomagnetisch oder magnetisch sind . Verschiedene Google-Suchanfragen ergeben ebenfalls nichts.
Für die Genauigkeit, die ich benötige, ist jedes Breiten- / Längenkoordinatensystem (z. B. WGS84), das so modifiziert wurde, dass es einen anderen Nordpol hat, gut genug. Wenn es also eine einfache Möglichkeit gibt, ein solches Koordinatensystem zu definieren und in PostGIS zu laden, wäre dies ebenfalls in Ordnung.
Klärung
Angenommen, anstatt von geomagnetischen Koordinaten in geografische zu konvertieren, wollte ich einfach von UTM 15N nach WGS84 konvertieren. Ich könnte das UTM-Objekt unverändert in PostGIS speichern und es mit dem EPSG-Code 26915 versehen . Wenn ich später eine Abfrage machte, konnte ich PostGIS sagen: "Bitte geben Sie die Ergebnisse im EPSG-Code 4326 zurück ", und PostGIS würde automatisch in WGS84 konvertieren.
Ebenso möchte ich die geomagnetischen Daten mit einem Koordinatensystem versehen und PostGIS die Neuprojektion hinter den Kulissen durchführen lassen, ohne dass ich eine reproject()
Funktion manuell aufrufen muss.
Antworten:
Ich bin nicht sicher, ob Open Source diese geomagnetische bis geografische Unterstützung unterstützt.
Aber wenn Sie wenige Koordinaten haben, pls. Versuchen Sie dies ..
http://wdc.kugi.kyoto-u.ac.jp/igrf/gggm/index.html
Die NASA hat den Algorithmus veröffentlicht. Sie können http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mag2geo.pro ausprobieren
quelle
geo2mag.pro
IDL- Code nach Python portiert . Dieser inverse Code ist sehr ähnlich zumag2geo.pro
. Hier ist der Python-portierte Code .Die Links , die von vadivelan macht deutlich, dass geomagnetischen Koordinaten nur eine Drehung der Kugel ist , so dass (a) der Nordpol des magnetischen Strom gelangt durch Süd - Pol und (b) der Hauptmeridian der physikalischen und magnetische Pole durchläuft.
Beispielsweise verwendet IGRF-95 1995 die Position des magnetischen Nordpols bei 79,30 Breitengrad und -71,41 Längengrad.
Sphärische Rotationen können auf viele Arten berechnet werden , typischerweise durch Konvertieren in geozentrische kartesische 3D-Koordinaten, Anwenden einer linearen Transformation (durch eine 3 × 3-Matrixmultiplikation oder eine Quaternionsmultiplikation) und Zurückkonvertieren in sphärische Koordinaten. Aber wenn Sie dies nicht programmieren möchten, gibt es einen Trick:Ein GIS, das schräge Projektionen unterstützt, kann durch eine Neuprojektion gedreht werden. Projizieren Sie die geomagnetischen Koordinaten einfach so, als wären sie geografische Koordinaten, beispielsweise anhand eines polaren Aspekts der sterografischen Projektion (mit einem Mittelmeridian bei 0 Grad). Projizieren Sie dann das Ergebnis unter Verwendung des schrägen Aspekts derselben Projektion mit einem Ursprungsspielraum von 79,30 und einem Mittelmeridian von -71,41. Zum Schluss projizieren Sie noch einmal mit einer beliebigen Projektion, um die "magische Reprojektion" zu erhalten.
quelle