convertir la latitude et la longitude pour x et y de système de grille à l'aide de python
J'ai un fichier avec les valeurs de latitude et longitude, que je veux convertir le x et le y en km
Je veux mesurer la distance entre chaque point.
par exemple, je fais les premiers points de la latitude et de la longitude(qui sont 51.58, -124.6 respectueusement)
à (0,0) dans mon x et y du système de sorte que, fondamentalement, je veux savoir ce que les autres points sont et leur emplacement à partir de l'origine, si je veux trouver ce que 51.56(lat) -123.64(long) est en (x,y) en km et ainsi de suite pour le reste du fichier.
Je veux faire tout cela en python, est-il une sorte de code ?
J'ai trouvé les sites en ligne , par exemple
http://www.whoi.edu/marine/ndsf/cgi-bin/NDSFutility.cgi?form=0&de=LatLon&to=XY
fait exactement ce que je veux faire, je ne sais pas comment ils font.
Si vous voulez essayer de résoudre le problème vous-même, vous devriez commencer à coder, et de revenir quand vous avez une, étroite question. Si vous voulez juste un ready-made de réponse, ce n'est probablement pas le site à la recherche sur.
techniquement un sphéroïde oblate, mais votre point de stands 🙂
Le site lié est faite dans
HTML
et js
vous pourriez traduire à python?dans ce cas, je suis en supposant que cet emplacement qui correspond à mes données est plat, juste pour cette conversion de la lat, long de x et de y
OriginalL'auteur learner | 2014-07-07
Vous devez vous connecter pour publier un commentaire.
Suivantes vous obtient assez proche (réponse en km). Si vous avez besoin d'être mieux que cela, vous devez travailler plus dur en mathématiques, par exemple en suivant les liens donnés.
Les noms de variables doivent être assez évident. Cela vous donne
Une fois que vous prenez des coordonnées (par exemple,
lon1, lat1
) comme origine, il devrait être facile de voir comment calculer toutes les autres coordonnées XY.Note - le facteur de 40 000 est la circonférence de la terre en km (mesurée à travers les pôles). Ce qui vous rapproche. Si vous regardez la source du lien que vous avez fourni (vous avez à creuser un peu pour trouver le le javascript qui est dans un fichier séparé) vous trouvez qu'ils utilisent de plus en plus complexes l'équation:
Il me semble qu'ils sont en fait en tenant compte du fait que la terre n'est pas exactement une sphère... mais même alors, quand vous faites l'hypothèse que vous pouvez traiter un peu de la terre comme un avion, vous allez avoir quelques erreurs. Je suis sûr qu'avec leurs formules, les erreurs sont plus petits...
probablement parce que la terre est la circonférence est 40075.017 km (équatorial) et 40007.86 km (méridienne)
en effet - je réellement le dire dans ma réponse. Je me souviens qu'à un moment de la définition du mètre a été 1/40000000 de la circonférence de la terre, mesurée à travers les pôles.
J'ai dû changer
lon2-lon1
àlon1-lon2
pour obtenir un résultat correct. Faire les Américains omettre le négatif de leurs longitudes?regarde comme une faute de frappe par moi... de toute évidence, l'ordre doit être la même pour
dx
etdy
!OriginalL'auteur Floris
UTM projections sont en mètres. Vous pouvez utiliser quelque chose comme de l'utm lib sur ce lien:
https://pypi.python.org/pypi/utm
Googler python lat lon UTM sera point à plusieurs options.
UTM zones sont 6 degrés de longitude de large et de partir de 0 au méridien d'origine. L'origine de chaque zone UTM est sur l'équateur (axe des x) avec l'axe des y à le plus à l'ouest degré de longitude est. Cela rend la grille positive pour le nord et l'est. Vous pouvez calculer votre distance à partir de ces résultats. Les valeurs sont plus précis dans le milieu de la zone UTM.
Vous devriez également savoir quel système de référence géodésique de l'original de votre lat lon valeurs sont basées sur et utiliser le même système de référence dans votre conversion.
OriginalL'auteur ScottO
Vous pouvez obtenir la distance entre les points GPS à l'aide de la Grand Cercle formule de la Distance de. La Latitude et la longitude sont dans un geodectic système de coordonnées, de sorte que vous ne pouvez pas convertir un plat de la grille 2D et utiliser des distances euclidiennes. Vous peut convertir suffisamment de points près à une évaluation approximative de la grille en prenant un point arbitraire comme la votre (X,Y), la valeur à l'origine (comme vous l'avez fait) et ensuite à l'aide d'un grand cercle de la distance avec roulement pour tracer les points les uns par rapport aux autres sur le plan, mais c'est une approximation.
OriginalL'auteur dabhaid