[PYTHON] [GPS] Berechnen Sie Entfernung, Azimutwinkel und Höhenwinkel aus GPS-Breiten- und Längengrad mit pyproj

Überblick

Es kann verwendet werden, wenn ein Raketen- oder Funkhubschrauber mit angeschlossenem GPS geflogen wird oder wenn Daten aus GPS-Informationen eines Flugobjekts erstellt werden. So berechnen Sie ** Entfernung, Azimutwinkel, Höhenwinkel ** aus GPS ** Informationen zu Breite / Länge, Höhe **. Es ist praktisch, die pyproj-Bibliothek von Python zu verwenden.

Vorbereitungen

Installieren Sie pyproj pip install pyproj

Oder

  1. Laden Sie die Quelle von [pyproj Seite] herunter (https://pypi.python.org/pypi/pyproj?)
  2. Führen Sie python setup.py build aus
  3. Führen Sie python setup.py install aus

Zweck

Sei p1 der Bezugspunkt und obj das fliegende Ziel. Verwenden Sie die inv () -Methode der Geod-Klasse des pyproj-Pakets, um die Entfernung und den Azimut von der Breite und Länge von p1 und obj zu ermitteln. Die Entfernung ist die Entfernung auf der Karte und die lineare Entfernung vom Referenzpunkt zum Objekt. Darüber hinaus wird der Höhenwinkel (Winkel beim Aufblicken) mit math.atan2 () einschließlich der Höhe von obj berechnet. 2d.jpg

3d.jpg

Quelle

geod_sample.py


#!/usr/bin/env python
#-*- coding: utf-8 -*-
import math
from pyproj import Geod

#Anhaltspunkt(p1)Breite(p1_latitude),Längengrad(p1_longitude) 
#Die Einheit ist Grad
p1_latitude = 35.3524
p1_longitude = 135.0302

#Flugobjekte sind Breitengrad(obj_latitude),Längengrad(obj_longitude)Höhe(obj_altitude)Ist bei
obj_latitude = 35.3532
obj_longitude = 135.0305
obj_altitude = 1000 #Einheiten(m)

#Ellps ist der äquatoriale Radius. GPS verwendet WGS84. Die Entfernung beträgt 6,378,137m
g = Geod(ellps='WGS84')

# inv() method
#Argument ist inv(Längengrad von p1,Breitengrad von p1,Ziellänge,Zielbreite, radians=False)
#Die Ausgabe ändert sich mit dem Bogenmaß. Nein, oder wenn Sie Grad und Wahr in Falsch eingeben, wird dies in Radian ausgegeben
#Der Rückgabewert ist der Azimutwinkel(azimuth)Antidirektionaler Winkel(back_azimuth),Entfernung(distance_2d)Auftrag
azimuth, back_azimuth, distance_2d = g.inv(p1_longitude, p1_latitude, obj_longitude, obj_latitude)

#Wenn Sie nur das wollen, was Sie brauchen, können Sie Folgendes tun
result = g.inv(p1_longitude, p1_latitude, obj_longitude, obj_latitude)
azimuth = result[0]
back_azimuth = result[1]
distance_2d = result[2]

# inv()Wenn Sie die zurückgelegte Entfernung kennen, wird der Höhenwinkel mit der GPS-Höhe kombiniert.(elevation)Verstehen
# math.degrees()Ist Mathe.atan2()Der Rückgabewert von ist Radian, also Grad(°)Wird konvertiert zu.
elevation = math.degrees(math.atan2(obj_altitude, distance_2d)

#Gerade Entfernung zu einem Flugobjekt(distance_3d)Verwendet Mathematik nach dem Pitagolas-Theorem
# math.Erforderlich von pypot.
distance_3d = math.hypot(distance_2d, obj_altitude)

print 'Die Entfernung auf der Karte von der Referenzposition zum Flugobjekt beträgt' + str(distance_2d) + "m"
print 'Der lineare Abstand von der Referenzposition zum Flugobjekt beträgt' + str(distance_3d) + "m"
print 'Der Azimutwinkel von der Referenzposition zum Flugobjekt beträgt' + str(azimuth) + "°"
print 'Der Richtungswinkel von der Referenzposition zum Flugobjekt beträgt' + str(back_azimuth) +"°"
print 'Der Elevationswinkel von der Referenzposition zum Flugobjekt beträgt' + str(elevation) + "°"

Recommended Posts

[GPS] Berechnen Sie Entfernung, Azimutwinkel und Höhenwinkel aus GPS-Breiten- und Längengrad mit pyproj
Finden Sie die Entfernung von Breite und Länge (unter Berücksichtigung der Rundheit der Erde).
Holen Sie sich die Adresse von Längen- und Breitengrad
Laden Sie die Kacheln des Geographical Institute von Längen- und Breitengrad herunter
Geben Sie Breiten- und Längengradpunktsequenzdaten an und versuchen Sie, die Straße anhand von OpenStreetMap-Daten zu identifizieren
Konvertieren Sie Breite, Länge und GPS-Höhe in dreidimensionale orthogonale Koordinaten
So erhalten Sie den Pixelwert des Punkts aus dem Satellitenbild, indem Sie den Breiten- und Längengrad angeben
Finden Sie den Wegpunkt aus dem Breiten- und Längengrad (unter Berücksichtigung der Rundheit der Erde).