[Talk-de] Höhenmesser: Die Post war da :- )
Dimitri Junker
OSM at dimitri-junker.de
Sa Feb 21 19:05:28 UTC 2009
Hallo,
ich bin gerade dabei ein Testprogramm zu schreiben. Es füllt eine 1000*1000
große Matrix mit Höheninfos aus allen GPX-Files die ich auf meinem Rechner
finde. Das 1000*1000 Raster liegt über Aachen mit 1/10000 Grad pro Punkt,
also etwa 10m Seitenlänge. Falls jemand was beisteuern will...
Fertig ist:
Einleseroutine für GPX
Einsortieren der einzelnen Trackpoints in eine CPtrList je GPX
Einsortieren der einzelnen GPX in eine CPtrList
Anlegen von 2 Matritzen, in der einen wird Höhe*Gewicht aufsumiert, in der
anderen Gewicht -> am Ende teilt man den einen Wert durch den anderen und
hat das gewichtete Mittel
Als nächstes baue ich eine einfache grafische Ausgabe ein, so nach dem Motto
Höhe->Grauwert, unbekannte Pixel rot
Was ich noch brauche sind Funktionen wie:
vertikalerFehler(AnzahlSat,hdop,...)
horizontalerFehler(AnzahlSat,hdop,...)
Eine Möglichkeit eine Höhenkarte auszugeben und als Overlay über eine OSM-
Karte zu legen.
bisher berechne ich nur in welches Pixel der Trackpunkt fällt und setze dann
dort Höhe und Gewicht ein. Als Erweiterung will ich dann auch noch die
Nachbarpixel setzen. Wenn ich hier 300m messe mit einem Fehler von 10m ist
das Nachbarpixel wahrscheinlich auch 300m hoch, aber mit einem größeren
Fehler, einerseits wegen des horizontalen Fehlers andererseits weil
Steigungen >100% selten vorkommen
Wenn ein Track relativ gerade verläuft kann man zwischen den einzelnen
Trackpoints interpolieren, natürlich wieder mit steigendem Fehler je weiter
es vom gemessenen Ounkt entfernt ist
Ausnutzen daß die Differenz zwischen 2 aufeinanderfolgenden Trackpunkten
genauer ist als die Einzelmessung. Hat man also einen sehr genauen Punkt der
von Tracks gekreuzt wird kann man damit die nähere Umgebung recht genau
berechnen.
Für eine zukünftige Datenbank könnte ich mir z.B. vorstellen, daß man per
Hand Gebiete markiert alls: flach, gebirgig,... Steilwände solten speziell
markiert werden. Dies würde dann bei der Bestimmung des Fehlers
berücksichtigt. Im Flachland könnte man also für den o.g. Nachbarpixel einen
Fehler von 15m annehmen, im Gebirge 30m und an einer Steilwand wird ganz
anders inter-/ extrapoliert.
Ach ja ich programmiere in Visual C++ unter Windows incl MFC usw. Aber es
geht ja erstmal um eine Machbarkeitsstudie nicht um ein endgültiges Programm.
Dimitri
Mehr Informationen über die Mailingliste Talk-de