NaviUser - Das GPS Forum für Einsteiger und Experten

Zurück   NaviUser > Technik > Höhendaten: Ellipsoid-, Geoid- und DEM-Modelle, SRTM-Daten

Hinweise

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.11.2010, 12:49
Karl99 ist offline Karl99
NaviUser
 
Registriert seit: 25.10.2010
Beiträge: 6
EGM96 Geoid und GPS-Devices

Als stolzer Eigentümer und Nutzer eines MTK-basierten Loggers (QStarz BT-Q1000X) habe ich das Problem, die im Speicher abgelegten Höhen über dem WGS84 Referenzellipsoid in Höhen über N.N., in diesem Fall also über dem EGM96 Geoid, umzurechnen.

Dazu verwende ich das auf [1] angegebene 15 Minuten Grid und eine Reimplementierung des FORTRAN-Programms INTPT.F als Java-Klasse. Soweit funktioniert das prächtig.

Nun bin ich auch noch stolzer Besitzer eines Garmin etrex Vista HCx. Dieses spuckt Höhen ausschließlich über N.N. aus -- jedenfalls habe ich bisher keine Möglichkeit gefunden, die Höhenangabe auf Höhen über dem WGS84 Referenzellipsiod umzustellen. Wie auch immer, das Garmin Gerät muß ein Modell des Geoid verwenden.

Frage: Welches? Genauer, wie genau ist es? I.e. wie stark weichen die Höhenwerte vom EGM96, ermittelt über das 15 Minuten Gitter, ab?

Wie ich hier gelesen habe, gibt es auch 10 Grad und 1 Grad Gitter, die zwangsweise ungenauer als das 15 Minuten Gitter sind. Da ich die anderen Gitter nicht habe, kann ich keinen direkten Vergleich anstellen. Falls mir jemand (einen Verweis auf) die Gitterdaten liefert, könnte ich das vielleicht selbst mal tun.

Ein Hintergrund der Frage: Obwohl heutige Rechner schon recht leistungsfähig sind, könnte das 15 Minuten Gitter noch "zu groß" für ein Garmin sein. Der Speicherbadarf des Gitters (binär abgelegt) ist knapp 4 MB. Auf meinem x86_64 Rechner (Linux / Java 1.6) brauche ich für eine Interpolation (bilinear) nur etwa 4-6 Nanosekunden. (Das vorherige Laden der Gitterdaten von der Festplatte in den flüchtigen Speicher kostet allerdings etwa 20 Millisekunden.) Wie das auf CPUs von Garmin-Geräten aussieht, weiß ich allerdings nicht.

Nachtrag: Eine Spline-Interpolation mit einem 4 x 4 Fenster kostet auf meinem Rechner 8 - 11 Nanosekunden, auf einem 8 x 8 Fenster 17 - 22 Nanosekunden.

[1] http://earth-info.nga.mil/GandG/wgs8...m96/egm96.html

Geändert von Karl99 (13.11.2010 um 13:53 Uhr)
Mit Zitat antworten
  #2  
Alt 13.11.2010, 13:58
blackwilli ist offline blackwilli
Moderator
 
Registriert seit: 20.11.2008
Ort: Salzgitter, Germany
Beiträge: 3.733
Die Garmins haben das recht einfache 10°x10° Gitter zur Korrektor der Bezugshöhen vom Referenzellipsoiden WGS84 auf den Geoid WGS84 implementiert. Diese Höhenangaben entsprechen prinzipiell schon über MSL.

Genauer sind natürlich die Höhen bezogen auf das EGM2008, welches in einer Auflösung von 1x1 Minuten vorliegt.
Die sich ergebenden Höhenunterschiede vom EGM2008 zum Geoid WGS84 belaufen sich z.B. im Gebiet des Harzes zwischen +0.40 bis +3.00 m.

Die Gitterdaten und auch Programme zur Korrektur mit diesen, findest Du auf dem Server der NGA:

http://earth-info.nga.mil/GandG/wgs8...m08_wgs84.html


.
Mit Zitat antworten
  #3  
Alt 13.11.2010, 14:54
Karl99 ist offline Karl99
NaviUser
 
Registriert seit: 25.10.2010
Beiträge: 6
Vielen Dank für die Antwort!

Leider kann ich daraus die Genauigkeit noch nicht wirklich abschätzen. Vielleicht kann da noch jemand weiterhelfen...

EGM96 berücksichtigt zur Berechning des Geoid Wellenlängen von bis zu (etwa) 111 km in Richtung des Längengrades und (etwa) 55 km in Richtung des Breitengrades. Bleiben wir bei der Länge. Um den Effekt einer Wellenlänge im Gitter zu erfassen. benötigt man mindestens vier Gitterabstände pro Wellenlänge. Das macht also 111 km / 4 = 27,75 km Gitterabstand, wenn man im EGM96 den Effekt aller Wellenlängen im Gitter erfassen will. Das entspricht, oh Wunder, ziemlich genau 15 Minuten... (Wen wunderts...?)

Im Umkehrschluß kann man die berücksichtigten Wellenlängen eines 10 Grad Gitters abschätzen:

10 Grad entsprechen am Äquator etwa 1112 km. Da man mindestens vier Gitterabstände für die Wellenlänge braucht, kann ein 10 Grad Gitter also maximal den Effekt von Wellenlängen bis zu etwa 4500 km erfassen. D.h. in der Entwicklung des Gravitationspotentials werden Terme bis zum Grad 4 oder höchstens 5 berücksichtigt!

Das EGM96 berücksichtigt Terme bis zum Grad 360.

Wenn man also weiß, wieviel Meter die Terme 6 bis 360 im EGM96 etwa ausmachen, hat man die Ungenauigkeit des 10 Grad Gitters gegenüber dem 15 Minuten Gitter -- etwa. Bei dieser Abschätzung sind nämlich Ändernungen anderer Modellparameter nicht berücksichtigt -- sofern es diese gibt... Dazu kenne ich diese Modelle aber zu wenig.
Mit Zitat antworten
  #4  
Alt 13.11.2010, 18:53
blackwilli ist offline blackwilli
Moderator
 
Registriert seit: 20.11.2008
Ort: Salzgitter, Germany
Beiträge: 3.733
Die dem Geoid WGS84 und dem EGM2008 zugrunde liegenden Gitter stellen nur Höhenpunkte dar, die nicht als Stützstellen für Splines zu interpretieren sind.

Zwischenwerte werden jeweils in der von vier Punkten gebildeten, quadratischen, schiefen Ebene linear interpoliert.
Mit Zitat antworten
  #5  
Alt 13.11.2010, 20:54
Karl99 ist offline Karl99
NaviUser
 
Registriert seit: 25.10.2010
Beiträge: 6
Sorry, daß ich mich unklar ausgedrückt habe. Es gibt natürlich zwei Aspekte:

(1) Die Höhenwerte sind an den Gitterpunkten gegeben. Dazwischen muß man interpolieren, klar. Dazu gibt es verschiedene mathematische Verfahren. Das Programm, welches die Referenz [1] (s.o.) angibt, kann bilineare Interpolation und eine etwas seltsame Interpolation unter Verwendung von kubischen Splines. -> Zur Not einfach das Programm lesen, ist nur Fortran... ... und es würde sogar reichen, nur die Kommentare zu lesen...

(2) Der zweite Aspekt hängt mit den Wellenlängen zusammen.

Das Gravitationspotential wird nach Potenzen des Abstandes und Kugelflächenfunktionen entwickelt. Wie das aussieht, ist z.B. in [2] dargestellt. Ich meine die Formel für das Potential V im Kapitel Spherical Harmonics Representation. V ist also eine Funktion von r, Phi und Lambda. Die trigonomischen Funktionen haben eine Wellenlänge. Beispiel: cos(m * Lambda). Die Periode ist m * Lambda_W = 2 * PI. Dabei entspricht Lambda_W einer Wellenlänge. In diesem Falle also Lambda_W = 2 * PI / m, wobei m im Modell EGM96 bis 360 läuft. Dabei werden also Wellenlängen bis 2 * PI / 360 erfaßt, also bis 0,01745 Radiant. Auf dem Äquator entspricht dies 111,26 km, wenn ich den Erdradius mit 6375 km annehme. M.a.W. die Entwicklung des Potentials berücksichtigt Schwankungen bis hinunter zu Entfernungen von 111 km in Lambda beim Radius 6375 km.

Alle Änderungen auf größeren Distanzen werden erfaßt, jedoch werden keine Änderungen auf kleineren Entfernungen berücksichtigt.

Bei der Breite ist das ähnlich. Wenn man sich die Legendre Polynome anschaut, enthalten diese in der Ordnung n die Potenz sin^n (Phi) ~ sin( n * Phi). Da die Breite nur zwischen -PI/2 und PI/2 variiert, hat man hier Wellenlängen bis 55 km berücksichtigt.

Der Geoid ist nun eine Lösung von V(r, Phi, Lambda) = V_0 = konstant. Dies liefert eine Funktion r = r (Phi, Lambda). Diese enthält, wie das Potential, Beiträge von verschiedenen Wellenlängen. Soweit, so gut.

Wenn man sich eine Sinusfunktion mit Wellenlänge L ansieht, ist die bei 0, L/2 und L null, bei L/4 und 3 L / 4 hat sie ihr Maximum bzw. Minimum. Wenn ich diese Funktion auf einem Gitter abbilde, das die Werte null, Maximum und Minimum erfassen soll, muß der Gitterabstand L / 4 sein. Wäre er z.B. L, würde ich immer nur einen Wert sehen, entweder null, oder das Maximum oder, ...

EGM96 berücksichtigt -- wie gesehen -- Wellenlängen bis 111 km. Also muß der Gitterabstand 111 / 4 km = 27,25 km sein, damit man auch die Effekte aller berücksichtigten Wellenlängen in den Gitterpunkten sieht. Das entspricht auf dem Äquator einem Gitterabstand von 15 Minuten -- genau dem Gitterabstand, den die Daten von [1] haben. Zu diesem Ergebnis kann man auch schneller kommen: 2 PI / 360 Radiant als "Skala" ist 1 Grad. Vier Gitterpunkte pro Grad machen 60 / 4 = 15 Minuten.

Wenn ich also 10 Grad Gitterabstand habe, werden von der Lösung r = r(Phi, Lambda) nur Wellenlängen bis 4500 km berücksichtigt. Änderungen in der Geoid-Undulation, die sich auf kleineren Längen abspielen, fallen dabei unter den Tisch. Eine Interpolation zwischen den 10 Grad entfernten Gitterpunkten (egal ob linear oder mit Splines oder wie auch immer) kann niemals die Effekte kleinerer Wellenlängen liefern, die durch die grobe Rasterung weggeschmissen wurden.

Um den Fehler des 10 Grad Gitters gegenüber dem 15 Minuten Gitter abschätzen zu können, müßte man also nur noch wissen, welche Amplituten die Beiträge der vernachlässigten Wellenlängen haben. Das fehlt mir noch.

[2] http://en.wikipedia.org/wiki/Geoid
Mit Zitat antworten
  #6  
Alt 15.11.2010, 18:56
blackwilli ist offline blackwilli
Moderator
 
Registriert seit: 20.11.2008
Ort: Salzgitter, Germany
Beiträge: 3.733
Ok, nun ist mir klarer, was Du vor hast.
Bleibt für mich nur die Frage, was Du damit vor hast.

Ist das für Dich rein aus Interesse an der Sache, oder geht es Dir um die Genauigkeit Deiner Auswertungen?
Mit Zitat antworten
  #7  
Alt 15.11.2010, 22:48
Karl99 ist offline Karl99
NaviUser
 
Registriert seit: 25.10.2010
Beiträge: 6
Spaß an der Freude Naja, im Wesentlichen jedenfalls.

Ich bin gerade dabei, mich etwas mehr in die Theorie (Geoid, Quasi-Geoid, Telluroid, ...) einzulesen. Ich denke, daß ich im Prinzip in der Lage sein sollte, den Fehler zwischen 10 Grad- und 15 Minuten-Gitter auszurechnen. Wie es mir aktuell scheint, sollte ich dazu nur die Koeffizienten (der Legendre-Entwicklung) benötigen, welche auf [1] (siehe ersten Post) angegeben sind -- und ein Programm...

Praktisch wird das vermutlich keine Relevanz haben: der MTK-Logger ermittelt die Höhe über dem Referenzellipsoid via GPS, welche daher recht ungenau ist. Dieser Fehler könnte durchaus so groß sein, daß der Fehler zwischen 10 Grad- und 15 Minuten-Gitter dabei keine Rolle spielt.

Mit dem Garmin ermittle ich die Höhen sowieso barometrisch -- weil das, nach allem was ich gelesen habe, genauer sein soll, als die GPS-Höhen. Letztlich brauche ich dazu nur einen Eichpunkt, e.g. die genaue Höhe meines Balkons. Dazu werde ich im nächsten Frühjahr / Sommer (wenn es mal wieder nicht dauernd regnet) eine ein- oder sogar mehrtägige Messung einer stationären Position mit dem MTK-Logger durchführen. Mittelwert und Standardabweichung sollten mir die Höhe meines Balkons dann eigentlich recht genau liefern. Ich könnte die Daten sogar mit 1/HDOP gewichten. Damit kann ich dann den Garmin vor jeder Tour eichen. (Voraussetzung dabei ist natürlich, daß es keine systematischen Höhenfehler gibt, von denen ich allerdings noch nichts gehört habe.)

Gut, eine Anwendung für das Ergebnis des Gitterfehlers habe ich vielleicht doch: Ich schreibe aktuell ein Programm und die Berechnung der Geoidhöhe ist kleiner ein Teil davon. Im Moment nutze ich dazu das 15 Minuten Gitter. Die Gitterdaten benötigen etwa 4 MB und das ist schon etwas lästig. Wenn ich erst mal weiß, wie groß der Fehler ist, tausche ich das vielleicht durch eine Berechnung auf Basis eines 10 Grad-Gitters aus... das braucht nur ein paar Byte.
Mit Zitat antworten
  #8  
Alt 16.11.2010, 01:00
Voyager ist offline Voyager
NaviUser
 
Registriert seit: 02.12.2008
Beiträge: 911
.... http://users.erols.com/dlwilson/gpsvert.htm

Mit Zitat antworten
Antwort

Stichworte
egm96, genauigkeit, geoid, gitter, wgs84

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.



Alle Zeitangaben in GMT +2. Es ist jetzt 18:09 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS
© 2010 NaviUser KL