[PYTHON] Konvertierung des Koordinatensystems in ECEF und Geodätik

Bei der Durchführung von Satellitenpositionsberechnungen wie GPS zur Darstellung der Position auf der Erde

--XYZ orthogonales Koordinatensystem definiert durch ECEF (erdzentriert erdfeste)

Zwei werden verwendet. Die Höhe, die in vertikaler Richtung von der sphärischen Oberfläche berechnet wird, wenn die Erde als Ellipse modelliert wird, wird als "elliptische Höhe" bezeichnet, und die Höhe vom Geoid (entsprechend dem durchschnittlichen Meeresspiegel) wird als Höhe bezeichnet.

Es gibt viele Referenzmaterialien,

Und so weiter.

Mein Onkel benutzte früher die Bibliothek, die er selbst implementiert hatte, aber als ich sie heute sah, fand ich eine Python-Bibliothek, also werde ich sie mir notieren.

Funktionsprüfung der Koordinatenkonvertierung mit pymap3d

pymap3d

Die gewünschte Koordinatentransformationsfunktion finden Sie in `` `pymap3d.ecef.ecef2gedetic```. Wie der Name schon sagt.

Funktionsprüfung

Der Koordinatenwert von Tsukuba 1 des elektronischen Referenzpunkts wird verwendet.

from math import isclose
from pytest import approx
from pymap3d.ecef import ecef2geodetic

def test_ecef2geodetic():
    x_ecef = [-3957162.4119, 3310203.4927, 3737752.2980]
    x_geod = [36.106112803, 140.08720184, 70.336]
    x_geod_from_ecef = ecef2geodetic(x_ecef[0], x_ecef[1], x_ecef[2])
    print( "x_geod_from_ecef=", x_geod_from_ecef)
    print( "x_geod=", x_geod)
    assert x_geod[0] == approx( x_geod_from_ecef[0] )
    assert x_geod[1] == approx( x_geod_from_ecef[1] )
    assert isclose(x_geod[2], x_geod_from_ecef[2], rel_tol=0.01)

Wenn ich `` `pytest --capture = no -v``` mache, erscheint aus irgendeinem Grund eine Warnung, die aber in Ordnung war.

x_geod_from_ecef= (36.10611280179599, 140.08720184317684, 70.33612007893962)
x_geod= [36.106112803, 140.08720184, 70.336]
PASSED

Ich werde dies von nun an empfehlen.

Recommended Posts

Konvertierung des Koordinatensystems in ECEF und Geodätik
Begriffe, die eng mit dem X-Fenstersystem verwandt sind
Lassen Sie uns experimentieren und Beweise hinterlassen, um die Spezifikationen zu bestimmen.
So identifizieren Sie die Systemrufnummer ausyscall
Versuchen Sie, die Bewegung des Sonnensystems zu simulieren
[Mac] Eine supereinfache Möglichkeit, Systembefehle in Python auszuführen und die Ergebnisse auszugeben
Ich habe versucht, Linux Systemaufrufe und Scheduler hinzuzufügen
Verwendung des Befehls grep und häufiger Samples
Wickeln Sie das Validierungsziel ein und kapseln Sie es ein, um Komplikationen zu vermeiden
[Python] Konvertierung von WGS84 in ein ebenes orthogonales Koordinatensystem
Wie man Argparse benutzt und den Unterschied zwischen Optparse
Ändern Sie die Größe des Bildes auf die angegebene Größe und schwärzen Sie die Ränder
Scraping Gehen Sie zu EAT-Mitgliedsgeschäften in der Präfektur Osaka und konvertieren Sie zu CSV