GPS-Koordinaten in Koordinaten-System

Roin

Freier Denker
Registriert
22 Juli 2013
Beiträge
581
Hallo Leute,

ich habe einige Orte in einer Datenbank und müsste diese mit den dazugehörigen Werten durch einen Algorithmus jagen.
Ein Problem gibt es dabei allerdings noch:
Ich benötige dafür ein Koordinaten-System, wie man es von überall her kennt. Sprich eine x-Koordinate (1 2 3 ...) und eine y-Koordinate (1 2 3 ...).
Wie kann ich denn die GPS-Koordinaten in solche Koordinaten umrechnen, wenn ich beispielsweise 58.232561, -13.025489 als 0/0 annehmen möchte und 36.147177, 34.547899 dann als 10.000/10.000. (Kasten um Europa in diesem Fall)

Kann ich in der Darstellung als Dezimalzahl einfach sagen, dass 0.004 = 1 Einheit ist oder etwas in der Art oder muss ich die Dezimal-Koordinaten noch einmal umrechnen (Erdkrümmung usw.)?
Die Genauigkeit hätte ich gerne auf etwa einen Quadratmeter genau.
 
Auf der Seite gibt es einen Umrechner für ein Koordinaten-System basierend auf GPS-Koordinaten (Breiten- und Längengrad), welches hier erklärt wird:

Hast du eine Art Weltkarte, auf der du die Punkte visualisieren willst? Falls das was privates ist, kannst du auch OpenStreetMap oder Google Maps (:confused:.....) benutzen. Bei den APIs kannst du die Koordinaten auch im Ausgangsformat angeben und du hättest direkt eine interaktive Karte dabei.
 
  • Thread Starter Thread Starter
  • #3
Hast du eine Art Weltkarte, auf der du die Punkte visualisieren willst?
Da muss ich mir noch eine geeignete Quelle raussuchen, die bestenfalls transparent und nur mit Ländergrenzen, damit ich meine Daten "drüberblenden" kann.

Also ganz privat ist es jetzt nicht, allerdings auch nicht wirklich kommerziell:
Ich schreibe meine Bachelorarbeit und dabei habe ich einige Daten, die sich auf Orte beziehen. Diese muss ich allerdings für die Berechnungen in ein "gewöhnliches" Koordinaten-System überführen. Nun bin ich mir da nicht ganz sicher, ob ich das einfach so tun kann oder ob es dabei Probleme mit der Erdkrümmung (Kugel...) gibt.
Ansonsten hätte ich die Koordinaten nämlich vorerst von der üblichen Darstellung von Grad, Minuten und Sekunden in eine Dezimale Darstellung umgerechnet (ist ja immer nur druch 60 teilen) und diese dann entsprechend, nach der gewünschten Auflösung zerteilt. Wenn ich das aber nicht linear machen kann, würde sich dadurch ja eine erhebliche Ungenauigkeit ergeben.

EDIT:
Dabei habe ich an das hier gedacht:
Wenn ich mit an einem anderen Punkt auf der Erde befinde, ist jenachdem in welche Richtung ich mich bewege der Umfang der Erde anders und somit entspricht 1 Gradminute nicht mehr 2km sondern 3km usw. ...

Im Endeffekt habe ich ja Probleme etwas in Richtung wie Kugelkoordinaten in Flächen-Koordinaten umzurechnen... (ohh... da hatte ich doch mal was von in der Schule...)
EDIT2:
Dabei ist aber noch das größere Problem, dass ich dafür die Kugel ja nicht nur in den Raum setzten muss, sondern diese zudem noch "aufklappen" muss. Wie mache ich das?
 
Zuletzt bearbeitet:
Das ist alles andere als trivial. Die Erde ist keine Kugel, sondern ein Ellipsoid. Desweiteren ist durch verschieden Dichten im Zusammenhang mit der Erdrotation die Oberfläche stark verbeult.
 
Zumal es afair keine winkeltreue Abbildung von einer Kugel auf etwas rechteckiges gibt.

Schreib mal genauer, was du baust bzw. was du benötigst.
Schreibst du ein Programm? Eventuell ist es sinnvoller, deine GPS Daten so zu kapseln, dass du die benötigten Berechnungen durchführen kannst, unter zuhilfenahme einer entsprechenden Bib.
Sprich wenn du sowas brauchst wie
> eigenerAlgo(entfernung2erPunkte)
wird daraus z.B.
> eigenerAlgo(calcDist(GPS1,GPS2))

Aber um dir richtig helfen zu können brauchen wir mehr Infos darüber was du machen willst und warum du glaubst diese Transformation zu benötigen.
 
  • Thread Starter Thread Starter
  • #6
Ich schreibe ein Programm zum Berechnen von spärlich gemessenen Daten mittels des Kriging-Algorithmus (Dazu muss ich mir noch vernünftige Literatur besorgen, die entweder einfach verständlich oder auf deutsch ist).
Dazu benötige ich ein Koordinaten-System, welches jedem Punkt im System einen Wert zuweißt. (Daher kommt auch die Angabe bezüglich der Genauigkeit der Koordinaten)
In diesem Koordinaten-System sind mir beispielsweise 50 Punkte mit ihren zugehörigen Werten bekannt. Deren "Gewichtung" wird dann ermittelt und mit dieser Gewichtung lassen sich anschließend alle anderen Punkte der Matrix füllen.
Meine Ausgangsdaten konnte ich bisher schon aus meinen Rohdaten extrahieren. Nun fehlt der nächste Schritt, in dem ich die Daten in eine Form bringe, mit der ich auch die Berechnungen machen kann.
Derzeit gehe ich davon aus, dass die meisten bisherigen Anwendungen des Algorithmuses sich auf so kleine Flächen bezogen haben, dass die Erdkrümmung die Ergebnisse kaum verfälscht hat. Mein Vorhaben bezieht sich nun allerdings auf größere Bereiche (wie beispielsweise ganz Europa).

Sprich: Ich habe 50 Punkte, muss daraus aber Daten für 100.000 Punkte bestimmen.
 
Es wird glaub ich ziemlich schwer, dein Vorhaben programmiertechnisch umzusetzen - du müsstest eine korrekte Modellierung der Welt haben, auf dieser dann deine Punkte auswählen und über stereografische Projektion die Projektion auf die Ebene schaffen, alle anderen Verfahren werden dir die Punkte nicht genau genug verzerren können. Wenn du das einmal gemacht hast, hast du ja die projizierten Koordinaten - die kannst du dann normalisieren (beispielsweise den Ursprung so wählen, dass alle weiteren Punkte im ersten Quadranten liegen) und dann mit denen weiterrechnen.

Ich weiß nicht, in welcher Sprache du das durchführen willst, allerdings gibt es für viele Sprachen bereits Bibliotheken oder Programme, die sich mit solchen Projektionen beschäftigen. Hier ein Beispiel für C, C++, FORTRAN77, FORTRAN90 und MATLAB:
 
Derzeit gehe ich davon aus, dass die meisten bisherigen Anwendungen des Algorithmuses sich auf so kleine Flächen bezogen haben, dass die Erdkrümmung die Ergebnisse kaum verfälscht hat.
Das mapping von GPS daten auf eine x,y Ebene, das hat doch bestimmt schonmal jemand angegangen. Google maps vielleicht? Oder openstreetmap? Jeder der geodaten in 2D ?
Du wirst also vermutlich entsprechende projektionen . Du willst vermutlich nicht deine eigene Implementierung fahren, sondern eine verwenden, die dir das macht und du dokumentierst nur, welche Projektion da genau stattfindet und warum die akzeptabel ist für deinen Anwendungsfall.

Unfreundliche Frage: Wieso hast du nicht google bemüht?
Was sagt eigentlich dein Betreuer zu deiner Frage?
 
  • Thread Starter Thread Starter
  • #9
Meine Überlegungen habe ich alle bisher vor dem eigentlichen Beginn meiner Arbeit.
Entsprechende Fragen werde ich meinem Betreuer erst nächste Woche stellen.

Ich habe Google bemüht, doch anscheinend mit falschen Suchbegriffen. Denn bei den meisten Ergebnissen sind GPS-Daten bereits als "2D" angenommen worden, da sie ja nur aus 2 Komponenten bestehen (waren also Laien am Werk).

Die Sprache, in der ich es umsetzten soll ist übrigens Python.

Eure Links werde ich mir in den nächsten Tagen zu Gemüte führen.
 
Leute es gibt da schon 2 gute fertige Systeme

zum einen
UTM = benutzen auch die AMIs (Militär) wenns um Karten geht
oder was bei uns weit verbreitet ist das hier
 
Projektion nach UTM mit Python habe ich spontan einiges zu gefunden, auch fertige Lösungen, z.B. , sollte eigentlich kein größeres Problem werden, wenn die Daten nicht als WGS84 vorliegen wirds da ganz sicher auch was entsprechendes geben.
 
UTM zu finden war jetzt nicht schwer. Zu verstehen, wie transformiert werden kann, ist aber anspruchsvoll.

Ich kenne die Anforderungen an heutige Abschlüsse nicht, aber ich kann mir nicht vorstellen, daß man da nur ohne Verständnis eine Oberfläche für fremden Code basteln muß und da einen fremden Copyrightvermerk in seinem Code hat.
 
Ohne Verständnis sicherlich nicht, da das ein interessanter Aspekt ist wird das vermutlich mit in die Arbeit kommen. Aber mehr mit Einführungs- oder Überblickscharakter, das ist immerhin nicht das Thema der Arbeit. Eine eigene Implementierung wird wohl eher nicht nötig sein.
 
  • Thread Starter Thread Starter
  • #14
Ich spreche Anfang der nächsten Woche mit meinem Betreuer und frage den darüber ein wenig aus.
Ich kann mir aber nicht vorstellen, dass ich etwas (kompliziertes) bezüglich der Umformung der Positionsdaten überlegen muss. Ich sollte eher 2 verschiedene Ansätze erwähnen und mich dann für einen mit einer Begründung entscheiden und dann den eigentlich Hauptaugenmerk auf die eigentlichen Berechnungen legen.
Das Programm ist auch nicht die eigentliche Arbeit, sondern viel mehr die "Vorarbeit". Ich muss (vermutlich) anschließend eher sagen, wieso ich was wie umgesetzt habe und wo es irgendwelche Dinge zu beachten gab und welche Probleme damit verbunden sein könnten. Vielleicht noch ein paar Laufzeitanalysen für unterschiedlich genaue Berechnungen usw.
Ein Punkt dabei wäre dann genau diese Thematik, dass es durch fehlerhafte Umwandlung der Positionsdaten zu sehr ungenauen Ergebnissen kommt und wo man dann Kompromisse eingehen muss(te).

EDIT:
Mein Betreuer hat gerade auf eine Email geantwortet: UTM scheint die Lösung zu sein. Zumindest hat er bei einem ähnlichen Projekt darauf gesetzt.
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #15
Ich habe es nun hier geschafft, alle meine benötigten GPS-Koordinaten in UTM-Koordinaten umzuwandeln.
Nun muss ich diese in ein vernünftiges Koordinatensystem umformen.

Dafür wollte ich 2 GPS-Punkte nehmen (Links_Oben und Rechts_Unten) und dann alle UTM-Zonen dazwischen in eine kombinierte Zone umrechnen. Dazu würde ich den Punkt Links_Oben als 0/0 annehmen und alle anderen in entsprechender Relation angeben (ggf. auf eine gewünschte Auflösung runden).

Das Problem ist jetzt, dass alle UTM-Zonen unterschiedlich breit und unterschiedlich hoch sind, wenn ich das aus meinen Daten richtig entnehme.
Ich habe mal einige GPS-Daten umrechnen lassen. die Breite scheint bis über 700km werden zu können. Und die Höhe ist auch nicht konstant (oder?)

Gibt es eine "Gute" Methode, die Grenzen der Zonen zu berechnen, die ich für mein Vorhaben nutzen kann?
Ich habe mit Google jetzt nichts allzu sinnvolles gefunden...
 
Zurück
Oben