Abenteuer in der GPS-Programmierung und -Entwicklung: Ein Geodaten-Tutorial

Veröffentlicht: 2022-03-11

Alles begann vor mehr als 10 Jahren mit einer Wanderung nach Zbevnica. Ich hatte mein neues GPS dabei und ein Freund von mir hatte ein GPS, das mit einem Windows ME-Telefon verbunden war. Die Wanderung war großartig, aber als wir zu unseren Autos zurückkehrten, waren wir überrascht zu sehen, dass ein GPS behauptete, wir seien 6,2 km gelaufen, während das andere 6,7 km meldete. Einer behauptete, unser Höhengewinn (dh die Summe aller Steigungen unserer Wanderung) sei 300 m gewesen, während der andere 500 m angegeben hatte.

Als Programmierer (und schließlich GIS-Programmierer) war ich sofort von dem Problem fasziniert. Ich sagte mir: „Das sollte mit einem einfachen Skript nicht so schwer zu beheben sein.“ Schließlich sind GPS-Tracks nur eine Liste von Tupeln in Form von (Latitude, Longitude, Elevation) , richtig?

Nicht wirklich.

Und so begann mein Ausflug in die faszinierende Welt der GPS-Tracks, Trackingfehler und ganz allgemein der GIS-Programmierung.

Geoinformationssysteme (GIS) sind ein riesiges und komplexes Gebiet, das Kartenprojektionen und geodätische Datumsangaben), Raster- und Vektordatenverarbeitung und Fernerkundung umfasst. Eine umfassende Einführung in diesen Bereich würde den Rahmen dieses Artikels bei weitem sprengen. Und da die Konzentration auf ein bestimmtes Problem ohnehin eine nützliche Möglichkeit sein kann, sich in ein neues Gebiet einzuführen, werde ich einige spezifische GIS-Herausforderungen vorstellen, auf die ich gestoßen bin, sowie einige mögliche Lösungen. nämlich:

  • Wie man GPS-Tracking-Fehler erkennt, versteht und programmgesteuert korrigiert
  • Wie man zusätzliche nützliche Informationen aus GPS-Tracks berechnet und ableitet

Zunächst einmal sind GPS-Tracks nicht nur eine Reihe von Tupeln (Breite, Länge, Höhe) . Viele GPS-fähige Geräte liefern auch Metadaten wie Zeit, Herzfrequenz usw. Einige GPS-Geräte geben sogar Auskunft darüber, wie genau die Daten sind; auch bekannt als „Dilution of Precision“. Aber leider liefern die meisten GPS-Geräte – insbesondere die marktbeherrschenden Low-End-Geräte – diese Informationen nicht, und wir stehen vor der Herausforderung, die Genauigkeit des Geräts selbst abzuleiten (und im Idealfall, wenn möglich, entsprechend zu korrigieren). ).

Beginnen wir mit einem möglichen Algorithmus zur Erkennung von Low-End-GPS-Geräten (wie den meisten Smartphones), die normalerweise GPS-Daten von geringer Qualität haben.

Höhenfehler und Eigenheiten

Wenn Sie in bestimmten Teilen der Welt leben, ist Ihnen beim Aufzeichnen von Tracks mit Ihrem Smartphone möglicherweise etwas Seltsames bezüglich der GPS-Höhengenauigkeit aufgefallen. Wenn Sie die Höhen überprüfen, werden sie durchgehend als höher oder niedriger (um einen konstanten Wert) als die richtige Höhe aufgezeichnet. Ich lebe zum Beispiel in Višnjan (Kroatien) und mein Android sagt mir ständig, dass ich mich ungefähr 35-40 Meter über der tatsächlichen Höhe befinde.

Hier ist zum Beispiel ein GPS-Höhendiagramm von einer kurzen Wanderung, die ich vor ein paar Monaten unternommen habe:

Dieses Diagramm zeigt Probleme mit der GPS-Höhengenauigkeit bei der GIS-Programmierung.

Hier sind zwei Dinge zu beachten.

Zunächst wurde der „Hügel“ im ersten Teil der aufgezeichneten GPS-Daten komplett vom Gerät fabriziert . Während die Grafik darauf hindeutet, dass der höchste Punkt unserer Wanderung nur wenige hundert Meter vom Start entfernt war, war er in Wirklichkeit etwa 4 km später.

Zweitens ist vielleicht noch wichtiger (und in der Grafik nicht sichtbar), dass die gesamte Grafik ungenau ist . Die Höhenwerte wurden durchweg als etwa 30-40 Meter höher angegeben, als sie in Wirklichkeit waren, worauf wir weiter unten in diesem Artikel noch näher eingehen werden.

Wenn wir feststellen können, dass der Track diese Fehler aufweist, können wir daraus schließen, dass es sich bei dem Gerät wahrscheinlich um ein GPS von geringer Qualität handelt.

Solche Dinge können mit billigen GPS-Geräten passieren. Und wenn wir feststellen können, dass der Track diese Fehler aufweist, können wir daraus schließen, dass das Gerät wahrscheinlich ein GPS von geringer Qualität ist, das daher auch andere Fehler aufweisen kann – nicht nur Höhenfehler – die bei solchen Geräten üblich sind.

Höhenfehler beim Start

Es gibt im Wesentlichen zwei Techniken, die GPS-Geräte verwenden, um die Höhe zu bestimmen: „GPS-Höhe“ (wie vom GPS-Satellitensystem an das Gerät gemeldet) und „barometrische Höhe“ (berechnet vom Gerät basierend auf barometrischen Druckmesswerten). Beides ist nicht perfekt.

GPS-Höhenwerte können viele kleine Fehler aufweisen (normalerweise im Bereich von +/- 10 m), was besonders problematisch sein kann, wenn wir uns später entscheiden, den kumulativen Höhengewinn zu berechnen. Die barometrische Höhe hingegen reagiert nicht nur auf die Höhe, sondern auch auf die Wetterbedingungen, was zu eigenen Ungenauigkeiten führen kann.

Einige Geräte verwenden daher einen hybriden Ansatz, indem sie barometrische Messwerte verwenden, um die Höhe aufzuzeichnen, aber GPS-Messwerte verwenden, um diese Werte (neu) zu kalibrieren, um Wetteränderungen (Luftdruck) zu berücksichtigen und so weiter. Bei solchen Geräten kann beim Starten des Tracks die barometrische Höhe völlig falsch sein, aber durch die Neukalibrierung mit immer mehr GPS-Satellitendaten werden die Höhendaten zuverlässiger. Es ist daher nicht ungewöhnlich, dass bei solchen Geräten die Art von Startfehler „gefälschter Hügel“ auftritt, die wir zuvor auf unserem Höhendiagramm beobachtet haben.

Fortlaufende GPS-Höhenungenauigkeiten

Um den ständigen Fehler bei der Höhenmeldung zu erklären, müssen wir zu unserer Grundschulgeographie zurückkehren. Geographielehrer erklären normalerweise, dass die Erde keine Kugel, sondern ein Ellipsoid ist. Wenn dies tatsächlich genau richtig wäre, wäre die Höhe mathematisch leicht zu berechnen. Aber es ist nicht. Die Erde ist unregelmäßig; In Wirklichkeit ähnelt es eher einer Kartoffel, die einem Ellipsoid als einem perfekten Ellipsoid ähnelt, was bedeutet, dass Sie für die GIS-Entwicklung einen detaillierten Höhendatensatz für fast jeden Punkt der Erde benötigen. In der Geodäsie ist dieses Bezugsellipsoid (auch bekannt als Datum) eine mathematisch definierte Oberfläche, die sich dem Geoid annähert, der „wahreren“ Gestalt der Erde.

Darüber hinaus ist es wichtig zu erkennen, dass selbst diese Datumsangaben lediglich Annäherungen an die tatsächliche Form der Erdoberfläche sind. Einige funktionieren in bestimmten Teilen der Welt besser, andere in anderen besser. Als Beispiel zeigt das Bild unten (erzeugt mit meiner Ruby-Bibliothek), wie sich die Erde von einem der am häufigsten verwendeten Ellipsoidmodelle (dem WGS84-Datum) unterscheidet. Schwarze Teile stellen Teile der Erde oben dar, und Weiß stellt Teile der Erde unten dar, das ideale Ellipsoid (kontinentale und Inselkonturen sind in Rot dargestellt).

Dieses Diagramm stellt die Erdoberfläche dar, die von einer Ruby-Bibliothek für Geodaten- und GIS-Programmierung generiert wurde.

Sie können sehen, dass Indien unter dem WGS84-Ellipsoid liegt, wobei der südliche Teil das absolute Minimum darstellt (fast -100 Meter!) und Europa darüber liegt.

Da minderwertige GPS-Geräte keine solchen Daten verwenden, berechnen sie wirklich nur die Höhe unter der Annahme eines perfekten Ellipsoids. Daher ihre konsequente Ungenauigkeit.

Erkennen und Korrigieren von GPS-Höhenfehlern

Bei der Entwicklung von GPS-Apps kann die Erkennung, dass ein Gerät, das unsere Strecke aufgezeichnet hat, diese Art von Fehlern aufweist, mithilfe des Datensatzes des Earth Gravitational Model EGM2008 erfolgen, der manchmal auch als „Geoid-Wellen“-Datensatz bezeichnet wird. Mit EGM2008 können wir die Differenz zwischen der tatsächlichen Erdoberfläche und dem idealen Ellipsoid annähern.

Mit EGM2008 können wir die Differenz zwischen der tatsächlichen Erdoberfläche und dem idealen Ellipsoid annähern.

Aber um zu wissen, ob unser GPS-Track diesen Fehler hat, brauchen wir noch etwas – die tatsächliche Höhe. Eine öffentliche Datenbank, die für diesen Zweck hilfreich sein kann, ist die Shuttle Radar Topography Mission (SRTM). SRTM ist eine rasterbasierte Datenbank, die Höhenwerte mit einer Auflösung von ungefähr alle 30 m (am Äquator) für die USA und alle 90 m für den Rest der Welt liefert. Wenn Sie beispielsweise SRTM-Werte für Punkte in der obigen Spur berechnen, entsteht ein anderes Diagramm (die blaue Linie):

Ein großartiges Werkzeug für die Entwicklung von GPS-Apps ist die SRTM-Datenbank mit GIS-Höhenwerten.

Ein kleines Ärgernis sind hier die rauen Kanten des Diagramms, die jedoch leicht geglättet werden können. Beachten Sie, dass wir durch die Glättung wenig (wenn überhaupt) Genauigkeit verlieren, da SRTM selbst nur diskrete Punkte an äquidistanten Positionen liefert, zwischen denen wir auf jeden Fall interpolieren müssen. Hier ist eine Version des vorherigen Diagramms mit einer roten Linienüberlagerung, die die geglätteten SRTM-Daten darstellt:

Dies ist ein Diagramm mit geglätteten GPS-Höhendaten aus der SRTM-Datenbank.

All dies lässt sich übrigens ganz einfach mit meinen GPS-Python-Bibliotheken bewerkstelligen:

  • srtm.py: ein Python-Parser für Höhendaten der Shuttle Radar Topography Mission (SRTM).
  • gpxpy: eine einfache Python-Bibliothek zum Analysieren und Manipulieren von GPX-Dateien (GPX, das GPS Exchange Format, ist ein leichtes XML-Datenformat für GPS-Daten)

Für Ruby-Benutzer gibt es auch meine Geoelevations.rb-Parser-Bibliothek für SRTM- und EGM2008-Wellen.

Nachdem wir diese Anomalien erkannt haben, können wir je nach Art der Software, mit der wir arbeiten, entweder (a) die Fehler selbst korrigieren oder (b) den Benutzer einfach darüber informieren, dass Ungenauigkeiten in seinen Höhendaten festgestellt wurden.

Da es verschiedene Algorithmen gibt, die verwendet werden können, um diese GPS-Höhenfehler programmgesteuert zu korrigieren, möchten wir dem Benutzer möglicherweise die Möglichkeit geben, den zu verwendenden Algorithmus auszuwählen (z. B. möchte der Benutzer, dass wir nur die geglätteten SRTM-Daten verwenden). „wie sie sind“ oder möchte der Benutzer, dass wir die SRTM-Daten verwenden, um die vom Gerät gemeldeten Höhen zu korrigieren).

Glätten der Strecke und Entfernen von Ausreißern

Wenn ein Fußballspieler ein GPS-Gerät tragen und ein Spiel aufzeichnen würde, wäre die resultierende Strecke ein Chaos. Das Spielfeld wäre dicht gefüllt mit einer Strecke, die aus vielen scharfen Kurven, Beschleunigungen und Verzögerungen besteht.

Glücklicherweise haben die meisten Fälle, in denen Menschen GPS verwenden, nicht das gleiche Muster – GPS-Spurlinien (und Beschleunigungen) werden relativ glatt sein. In solchen Fällen kann man davon ausgehen, dass sprunghafte Stellen in unserem Track fehlerbedingt sind und solche Ausreißer können daher mit einer Glättungsfunktion sinnvoll entfernt werden.

Als GIS-Entwickler wird die Glättung am häufigsten erreicht, indem die Punkte iteriert und die Koordinaten basierend auf den Werten der benachbarten Koordinaten geändert werden. Beispielsweise können wir jeden Breiten- und Längengrad mit einem Algorithmus wie dem folgenden ändern:

 points[n].latitude = points[n-1].latitude * 0.3 + points[n].latitude * .4 + points[n+1].latitude * .3 points[n].longitude = points[n-1].longitude * 0.3 + points[n].longitude * .4 + points[n+1].longitude * .3

Je größer der Koeffizient, desto größer die Auswirkung des entsprechenden Nachbarpunkts auf die modifizierte Position des aktuellen Punkts. Die Koeffizienten, die ich in diesem Beispiel verwende (0,3, 0,4, 0,3), sind etwas willkürlich, aber in den meisten Fällen möchten Sie, dass ihre Summe 1,0 entspricht. (Ein ausgefeilterer Ansatz wäre beispielsweise, den Abstand zwischen Punkten zu verwenden und je näher der Punkt, desto größer der entsprechende Koeffizient.)

Hier ist ein Beispiel für einen Track mit vielen zufälligen Fehlern:

Eine der größten Herausforderungen beim GPS-Tracking in der GIS-Entwicklung ist ein Track mit vielen zufälligen Fehlern.

Beachten Sie, dass die Strecke dem Pfad nicht gut folgt, viele scharfe und gezackte Kurven hat und manchmal vollständig vom erwarteten Pfad abweicht.

Nach ein paar "glättenden" Iterationen wird dieselbe Spur umgewandelt in:

Nach dem Glätten der Tracking-Fehler ist der GPS-Track in diesem Programm immer noch unvollkommen, aber besser.

Das ist zwar viel besser, aber zugegebenermaßen immer noch unvollkommen. Beachten Sie, dass es immer noch Stellen gibt (insbesondere in der Nähe der Wegmitte), an denen der Weg immer noch von der Straße abweicht.

Es gibt andere Dinge, die Sie ausprobieren können. In bestimmten Regionen und für bestimmte GPS-Anwendungen können Sie auch die Daten von OpenStreetMap (OSM) verwenden, um zu versuchen, den richtigen Pfad zu erraten, und dann die Punkte an dieser neuen Linie „einrasten“. Obwohl dies oft hilfreich sein kann, kann es auch unvollkommen sein, z. B. in Fällen, in denen die OSM-Daten zwei parallele Linien (z. B. eine Autobahn und eine nahe gelegene Straße) oder viele enge Pfade enthalten.

Wenn wir schlussfolgern können, dass es sich bei dem Track um einen Wanderweg handelte, und die Option haben, auf eine Autobahn oder einen nahe gelegenen Pfad zu springen, können wir mit Sicherheit davon ausgehen, dass die Wanderung entlang des Pfads und nicht der Autobahn verlief.

In solchen Fällen besteht eine mögliche Lösung darin, zu versuchen, die Art der Aktivität zu ermitteln, indem einige der Techniken verwendet werden, die weiter unten in diesem Artikel besprochen werden. Wenn wir zum Beispiel schlussfolgern können, dass es sich bei dem Track um einen Wanderweg handelte, und die Option haben, auf eine Autobahn oder einen nahegelegenen Pfad zu springen, können wir mit Sicherheit davon ausgehen, dass die Wanderung entlang des Pfads und nicht der Autobahn verlief.

Beachten Sie auch, dass, während dieses Beispiel das Glätten von Oberflächenkoordinaten (dh Längengrad/Breitengrad) demonstriert, das Glätten eine ebenso gültige Technik zum Eliminieren von Aberrationen in Höhen- oder Zeitdaten oder sogar in Herzfrequenz- und Fahrradkadenzdaten sein kann.

Beispiele für zusätzliche Vorteile und Anwendungen der Glättung könnten sein:

  • Berechnung des gesamten Höhenunterschieds. Um den gesamten Höhenunterschied in einer Strecke zu berechnen, reicht es nicht aus, nur alle kleinen „Sprünge“ bergauf zu summieren, da sie oft kleine Fehler enthalten. Das Glätten der Höhe vor der Berechnung kann oft helfen, dieses Problem zu lösen.
  • Entfernung von Ausreißern. Nach dem „Glätten“ können zu weit von der Strecke entfernte Punkte leichter erkannt werden. Diese können dann oft als Ausreißer angenommen werden und der Benutzer kann aufgefordert werden, zu fragen, ob sie entfernt werden sollen.

Es gibt ein Problem, bei dem dieser Algorithmus zu kurz kommt: In einigen Fällen zeichnet das GPS einen glatten Pfad auf, aber der Pfad wird um eine konstante Differenz in eine Richtung „verschoben“. In solchen Fällen kann Glätten die Linie weiter glätten, aber diesen Verschiebungsfehler nicht korrigieren.

Ein weiteres, weniger offensichtliches, aber signifikantes Problem bei der vereinfachten Glättungstechnik, die wir beschrieben haben, besteht darin, dass die Transformation alle (oder fast alle) Punkte im Pfad modifiziert, sogar diejenigen, die möglicherweise nicht fehlerhaft sind. Obwohl dieser einfachere Ansatz für den durchschnittlichen GPS-Benutzer tendenziell eine vernünftige Lösung darstellt, sind anspruchsvollere Glättungsalgorithmen sicherlich in der GIS-Programmierung anwendbar. In einigen Fällen kann es je nach Benutzer, Gerät und Anwendung sogar besser sein, Ausreißer einfach zu entfernen, ohne eine Glättung durchzuführen.

Höchstgeschwindigkeit erkennen

Das Ermitteln der Höchstgeschwindigkeit einer Strecke ist ziemlich einfach, wenn wir die Koordinaten und Zeitstempel aller Punkte auf der Route haben. Berechnen Sie einfach die Geschwindigkeiten zwischen den Punkten und finden Sie den höchsten Wert. Scheint unkompliziert.

Denken Sie jedoch daran, dass wir es mit Low-End-GPS-Geräten zu tun haben und den Daten nicht vollständig vertrauen, was erhebliche Auswirkungen auf unsere Berechnung haben kann. Wenn ein Gerät alle 5 Meter einen Standort aufzeichnet und an einer Stelle einen Fehler macht, indem es den Punkt um 10 Meter falsch platziert, dann scheint dieser Teil der Strecke dreimal schneller zu sein als er war!

Ein gängiger Ansatz in der GIS-Entwicklungswelt besteht darin, alle Geschwindigkeiten zwischen Punkten zu extrahieren und dann einfach die oberen 5 % zu entfernen (dh das 95. Perzentil zu verwenden), in der Hoffnung, dass die eliminierten 5 % die Mehrheit der Fehler darstellen. Dies ist aber zugegebenermaßen unwissenschaftlich und garantiert keine korrekten Ergebnisse. Beim Experimentieren mit dieser Technik habe ich verschiedene Werte für Perzentile ausprobiert und festgestellt, dass einige für ein GPS-Gerät gut funktionierten, andere für andere gut funktionierten. Einige eignen sich gut zum Wandern und andere zum Radfahren. Aber in den meisten Fällen fühlten sich die Ergebnisse für mich einfach nicht richtig an.

Nachdem ich viele Algorithmen ausprobiert hatte, war es einfach, einen weiteren Filter hinzuzufügen, um Extreme nicht nur nach Geschwindigkeit, sondern auch nach Entfernung zu entfernen, wie folgt:

  1. Punkte nach Entfernung zwischen Nachbarn sortieren und die obersten 5 % entfernen.
  2. (Optional:) Glätten Sie die Spur (horizontal und/oder vertikal).
  3. Punkte zwischen Nachbarn nach Geschwindigkeit sortieren und die obersten 5 % entfernen.
Dieser Algorithmus liefert ziemlich glaubwürdige Ergebnisse, sogar für Tracks von billigen GPS-Geräten mit zufälligen Fehlern.

Aus meiner Erfahrung liefert dieser Algorithmus ziemlich glaubwürdige Ergebnisse, sogar für Tracks von billigen GPS-Geräten mit zufälligen Fehlern.

Aktivitätstyp ableiten

In vielen Fällen reicht die Durchschnittsgeschwindigkeit aus, um die Aktivitätsart zu bestimmen. Wenn die Durchschnittsgeschwindigkeit beispielsweise 5 km/h beträgt, handelt es sich wahrscheinlich um einen Spazier-/Wanderweg, während es sich bei einer Durchschnittsgeschwindigkeit von 30 km/h wahrscheinlich um einen Radweg handelt und so weiter.

Aber wenn die Durchschnittsgeschwindigkeit 12 km/h beträgt, können Sie nicht sicher sein, ob der Benutzer Mountainbike oder Laufen war. In solchen Fällen kann die maximale Geschwindigkeit manchmal helfen, zwischen den beiden Arten von Aktivitäten zu unterscheiden. Insbesondere können wir die Tatsache nutzen, dass Läufer selten mehr als das Doppelte ihrer Durchschnittsgeschwindigkeit erreichen, während Radfahrer dies regelmäßig tun (z. B. wenn sie auf einer nicht allzu anspruchsvollen Strecke bergab fahren).

Dementsprechend wurde beim Laufen wahrscheinlich eine Strecke mit einer Durchschnittsgeschwindigkeit von 12 km/h und einer Höchstgeschwindigkeit von 18 km/h aufgezeichnet, während beim Mountainbiken wahrscheinlich eine Strecke mit einer Durchschnittsgeschwindigkeit von 12 km/h und einer Höchstgeschwindigkeit von 30 km/h aufgezeichnet wurde. (Natürlich müssen wir sicher sein, dass unsere errechnete Höchstgeschwindigkeit stimmt, damit das zuverlässig funktioniert.)

Prozentsatz des sichtbaren Himmels: Ein cleverer Proxy für die GPS-Fehlererkennung

Die Genauigkeit jeder GPS-Messung (dh Breite, Länge und Höhe) hängt sehr stark von der Anzahl der Satelliten ab, die zum Zeitpunkt der Aufzeichnung sichtbar waren. Wenn wir also irgendwie bestimmen könnten, wie viele Satelliten zum Zeitpunkt jeder Aufzeichnung „in Sicht“ waren, könnten wir dies als eine Möglichkeit verwenden, die Genauigkeit dieser Aufzeichnung anzunähern. Wenn wir zum Beispiel irgendwie wüssten, dass alle benötigten GPS-Satelliten in Sicht sind, könnten wir von einer hohen Genauigkeit der entsprechenden GPS-Daten ausgehen. Wenn wir umgekehrt irgendwie wüssten, dass keine GPS-Satelliten in Sicht sind, könnten wir davon ausgehen, dass die Daten fehleranfällig sind.

Aber bevor Sie sich zu sehr aufregen, bedenken Sie, wie komplex der Versuch ist, ein solches GIS-Problem zu lösen. Zunächst müssten Sie wissen, mit welchen GPS-Satellitensystemen Ihr Gerät kommunizieren konnte. Es gibt das ursprünglich in den USA ansässige Global Positioning System, das europäische Gallileo und das russische GLONASS-System. Einige Geräte funktionieren mit all diesen Satellitentypen, viele jedoch nicht. Und viele Geräte melden nicht einmal, welches System sie verwenden.

Aber es gibt einen cleveren Weg, diese Komplexität zu umgehen und eine grobe Annäherung an die Anzahl der sichtbaren Satelliten zu erreichen: Verwenden Sie den Prozentsatz des sichtbaren Himmels als Proxy für die Anzahl der sichtbaren Satelliten . Weniger sichtbarer Himmel bedeutet, dass unser GPS von weniger Satelliten „sehen“ (oder gesehen werden) kann. Aber wie können wir den Prozentsatz des sichtbaren Himmels an irgendeinem Punkt der Erde berechnen? Die Lösung ist eigentlich ganz einfach: Wir können die Horizontlinie um uns herum berechnen, indem wir die zuvor besprochenen SRTM-Daten verwenden.

Dies ist beispielsweise der Horizont, wenn Sie sich im Tal unterhalb des Triglav (dem höchsten Gipfel Sloweniens) befinden, wie mit SRTM berechnet:

Ein Bild des Horizonts des Tals unterhalb von Triglav, erstellt mit GIS-Code.

(Für Interessierte ist mein Code zum Erstellen dieses Bildes hier zu finden.)

Dieses Bild besteht im Wesentlichen aus Schichten von äquidistanten Höhendiagrammen, wie sie von einem zentralen Punkt aus gesehen werden. Je dunkler der blaue Bereich, desto weiter entfernt die Höhenschicht; Je heller der blaue Bereich, desto näher die Höhenebene. Die höchsten gezeichneten Punkte stellen die Horizontlinie dar. Befindet sich ein GPS-Satellit unterhalb dieser Himmelslinie, kann unser Gerät ihn wahrscheinlich nicht sehen (oder gesehen werden). (Beachten Sie jedoch, dass Sie, obwohl das Bild als abgeflachtes Rechteck gezeichnet ist, in Wirklichkeit einige Grundkenntnisse der sphärischen Geometrie benötigen würden, um den Bereich unter dem Horizont richtig zu berechnen.)

Diese Methode kann in Situationen wie Bergwanderungen hilfreich sein, bei denen Sie von einer tiefen Schlucht (mit schlechtem GPS-Empfang) auf einen Bergrücken (mit viel besserem Empfang) wechseln können. Dies kann ein nützlicher Indikator dafür sein, welche Teile Ihres Tracks möglicherweise fehleranfälliger sind.

Beachten Sie auch, dass dies keine Wunderwaffe zum Erkennen von GPS-Höhenfehlern ist. Erstens sind die meisten Teile der Erde nicht gebirgig, und selbst wenn sie es sind, liegt es in unserer Psychologie, Erhebungen zu überschätzen; der tatsächliche Anteil des sichtbaren Himmels liegt in den allermeisten bewohnten Gebieten bei über 75 % . Nichtsdestotrotz kann diese Methode in bestimmten Situationen hilfreich sein, z. B. beim Bergwandern, wo Sie von einer tiefen Schlucht (mit schlechtem GPS-Empfang) auf einen Bergrücken (wo der Satellitenempfang wahrscheinlich viel besser ist) wechseln können. Obwohl diese Methode kein absolutes Maß dafür ist, wie viele Fehler der Track hat, kann sie ein nützlicher Indikator dafür sein, welche Teile Ihres Tracks möglicherweise fehleranfälliger sind als andere.

Einpacken

Wir haben einige der häufigeren Arten von GPS-Tracking-Fehlern besprochen, die bei Low-End-GPS-Geräten zu erwarten sind. Wir haben erklärt, was sie verursacht, sowie einige GIS-Programmiertechniken, um sie zu korrigieren.

In einigen Fällen können wir die Spur mit einem hohen Maß an Sicherheit korrigieren. In anderen Fällen können wir den Benutzer zumindest auf Teile des Titels aufmerksam machen, die fragwürdig erscheinen. In Zweifelsfällen besteht immer die Möglichkeit, dass der Nutzer mit Hilfe von Luftbildern und Karten den Track selbst fixieren kann. Unsere probabilistischen Vermutungen können dabei helfen, die Abschnitte des Tracks hervorzuheben, in denen wir eine höhere Fehlerwahrscheinlichkeit festgestellt haben.

In vielen Fällen können die von uns skizzierten Techniken eine zufriedenstellende „80%-Lösung“ sein, die Benutzern von Low-End-GPS-Geräten ein angemessenes Maß an automatischer Verbesserung der Genauigkeit ihrer GPS-Tracks bietet.