J'ai quelques données qui sont en coordonnées géomagnétiques; c'est-à-dire qu'ils sont la latitude et la longitude, mais en référence au pôle nord magnétique au Canada plutôt qu'au pôle nord géographique. Comme vous pouvez le deviner, j'aimerais les faire correspondre à d'autres données qui se trouvent dans d'autres systèmes de coordonnées.
(Les données proviennent d'un calcul de l'ovale auroral; c'est-à-dire qu'elles sont d'origine géomagnétique et il n'y a aucune source géographique que je puisse consulter, même en principe.)
Les données seront stockées dans PostGIS.
Le moyen le plus simple consiste à trouver un code EPSG pour le système de coordonnées géomagnétiques, à étiqueter les données avec ce code, puis tout est magiquement reprojeté à tout ce dont j'ai besoin à l'époque. Cependant, je ne trouve aucun code EPSG sur spatialreference.org contenant soit géomagnétique, soit magnétique . Diverses recherches Google ne révèlent également rien.
Pour le niveau de précision dont j'ai besoin, tout système de coordonnées latitude / longitude (par exemple, WGS84) modifié pour avoir un pôle nord différent est assez bon. Donc, s'il existe un moyen facile de définir un tel système de coordonnées et de le charger dans PostGIS, ce serait bien aussi.
Clarification
Par exemple, supposons qu'au lieu de convertir des coordonnées géomagnétiques en coordonnées géographiques, je voulais simplement convertir UTM 15N en WGS84. Je pouvais enregistrer l'objet UTM dans PostGIS non modifié et le marquer avec le code EPSG 26915 . Ensuite, lorsque j'ai fait une requête plus tard, je pourrais dire à PostGIS, "veuillez renvoyer les résultats dans le code EPSG 4326 ", et PostGIS se convertirait automatiquement en WGS84.
De même, je voudrais étiqueter les données géomagnétiques avec un système de coordonnées et laisser PostGIS faire la reprojection en arrière-plan, sans que j'aie à appeler une reproject()
fonction manuellement.
Réponses:
Je ne suis pas sûr que l'open source supporte cette géomagnétique à géographique.
Mais si vous avez peu de coordonnées, pls. essayez ceci ..
http://wdc.kugi.kyoto-u.ac.jp/igrf/gggm/index.html
La NASA a publié l'algorithme, vous pouvez essayer http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mag2geo.pro
la source
geo2mag.pro
IDL sur Python . Ce code inverse est très similaire àmag2geo.pro
. Voici le code porté par Python .Les liens fournis par le vadivelan indiquent clairement que les coordonnées géomagnétiques ne sont qu'une rotation de la sphère de sorte que (a) le pôle nord passe par le pôle sud magnétique actuel et (b) le méridien principal passe par les pôles physiques et magnétiques.
Par exemple, IGRF-95 utilise la position du pôle nord magnétique en 1995, à 79,30 degrés de latitude et -71,41 degrés de longitude.
Les rotations sphériques peuvent être calculées de plusieurs façons , généralement en convertissant en coordonnées cartésiennes géocentriques 3D, en appliquant une transformation linéaire (via une multiplication matricielle 3 x 3 ou une multiplication quaternion) et en reconvertissant en coordonnées sphériques. Mais si vous ne voulez pas programmer cela, il y a une astuce:un SIG qui prend en charge les projections obliques peut tourner au moyen d'une reprojection. Il suffit de projeter les coordonnées géomagnétiques comme s'il s'agissait de coordonnées géographiques, par exemple au moyen d'un aspect polaire de la projection stérographique (avec un méridien central à 0 degré). Dézoomez ensuite le résultat en utilisant l'aspect oblique de la même projection avec une latitude d'origine à 79,30 et un méridien central de -71,41. Enfin, projetez à nouveau en utilisant la projection souhaitée pour obtenir la «reprojection magique».
la source