• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Projektionsmethode die Entfernungen nicht verzerrt

tsr

Geonewbie
Hallo, ich bin neu hier :)

Nachdem ich einen Tag gegoogelt, eine Nacht darüber geschlafen und dann noch einen Tag gegoogelt habe (nagut, bischen übertrieben, aber fast), dachte ich mir ich melde mich mal hier an, und stelle die Frage(n), die mir kopfzerbrechen bereiten. Vielleicht kann mir ja jemand ein bischen helfen, obwohl mein Problem mit Geocaching nicht direkt etwas zu tun hat (aber wohl indirekt). Hoffe, ich habe das richtige Unterforum erwischt.

Ich habe folgendes Problem: Ich will mit Orten (Städte, aber das ist nicht relevant) geometrische Berechnungen durchführen; unbedingt weltweit.
Genauer gesagt: ich will Kreise um Punkte ziehen, und berechnen an welchen Punkten sich die Kreise schneiden. Dies, um durch drei bekannte Punkte einen vierten, unbekannten Punkt zu finden. Von diesem Punkt weiss ich nur, wie weit er von den anderen drei Punkten entfernt ist.
In einem karthesischen Koordinatensystem ist das kein Problem (nagut, ich hab ne Weile gebraucht). In meiner Naivität dachte ich zuerst, es sei einfach, die ganze Weltkarte in einem karthesischen Koordinatensystem darzustellen. Ich wusste nicht einmal was "karthesisch" heisst. :) Und ehrlich gesagt kann ich mir trotz der erfolglosen Suche nicht vorstellen, dass es für mein Problem keine passende Projektionsmethode gibt.
Um mal einzugrenzen was die Methode (hoffentlich irre ich mich hier nicht) alles können muss:
a) Entfernungen dürfen niemals verzerrt sein.
c) Es muss die ganze Welt in einem Koordinatensystem dargestellt werden können.
c) Längen- und Breitengrad müssen in Koordinaten umgerechnet werden können, UND umgekehrt.
d) Winkel sind in meinem Fall sch**** egal, oder ?

In meiner Vorstellung lege ich kurz unter dem Nordpol eine Schnur um die Erde. Das ergibt meine erste X-Zeile. Dann nehme ich eine zweite Schnur, lege sie darunter und führe sie auch um die Erde. Das wäre die zweite X-Zeile. Das mache ich so weiter, bis ich am Südpol angekommen bin. Und am Ende zentriere ich die X-Zeilen alle.
Somit hätte ich ein Koordinatensystem auf dem ich schön meine Kreise malen und berechnen kann. Allerdings habe ich keine Ahnung wie ich die Umrechnung konkret anstellen kann.

Nun meine Fragen:
a) Gibt es eine solche Projektionsmethode mit Namen, und wie sehen die Formeln dafür aus ?
b) Mache ich bei meinem Ansatz von Grund auf was falsch ?

Über Antworten würde ich mich freuen. :)
 

kiozen

Geomaster
Das geht so einfach nicht. Oder hast Du schon mal die Schale einer Orange flach und ohne Verzerrung auf den Tisch bekommen. Bei solchen Sachen musst du einen gewissen Fehler akzeptieren oder dreidimensionale Mathematik bemühen. Es gibt unzählige Projektionen und jede optimiert den Fehler auf ein bestimmtes Gebiet. Eine Übersicht gibt es hier:

ftp://ftp.remotesensing.org/proj/proj.4.3.I2.pdf

Mit Proj4 kannst du auch die meisten Berechnungen durchführen.

Oliver
 
A

Anonymous

Guest
Es gibt keine Karte, die komplett längentreu ist. Maximal dort, wo die Karte (Projektionsfläche) die Kugel berührt oder schneidet.

c) Es muss die ganze Welt in einem Koordinatensystem dargestellt werden können.
Gibt es doch schon, oder gibt es einen Ort auf der Erde, der keine Koordinate hat?

c) Längen- und Breitengrad müssen in Koordinaten umgerechnet werden können, UND umgekehrt.
Das kapiere ich nun überhaupt nicht. Für mich sind Längen- und Breitengrade Koordinaten, bitte um Aufklärung!

GermanSailor
 
OP
T

tsr

Geonewbie
@GermanSailor: Tut mir Leid, da habe ich mich ungenau ausgedrückt. Ich meinte immer ein kartesisches Koordinatensystem (ohne "h", sorry). Den Ausdruck habe ich erst gestern gelernt, und wenn ich ihn richtig verstehe, bedeutet das dass die Koordinatenlinien nicht gebogen sein dürfen, damit sie immer den gleichen Abstand zueinander haben. Also das Koordinatensystem mit dem man in der Schule immer rechnet (mit X- und Y-Achse).

Das geht so einfach nicht. Oder hast Du schon mal die Schale einer Orange flach und ohne Verzerrung auf den Tisch bekommen.

*seufz*
Ja, da hast Du wohl recht. Das mit der Orange habe ich zwar oft gelesen, aber nie so richtig glauben wollen. Nachdem ich jetzt erfolglos ein paar mögliche Modelle in meinem Kopf und auf dem Papier durchgegangen bin, und nichts gefunden habe, gebe ich mich endlich geschlagen. ;)
Danke für den Link zum PDF. Leider bin ich darauf angewiesen die ganze Welt zur Verfügung zu haben, was mit Projektion wohl nicht geht, es sei denn man nimmt eine riesige Ungenauigkeit mit der grösse von Kontinenten in kauf (auch nicht mit Proj4, oder?).

Bei solchen Sachen musst du einen gewissen Fehler akzeptieren oder dreidimensionale Mathematik bemühen.

Hmm, dreidimensionale Mathematik. Dafür braucht man bestimmt Arktansiconüsse, die man sich im rechten Winkel gegen den Kopf hauen muss, oder so ähnlich. Da muss ich mal drüber nachdenken.
 
A

Anonymous

Guest
tsr schrieb:
@GermanSailor: Tut mir Leid, da habe ich mich ungenau ausgedrückt. Ich meinte immer ein kartesisches Koordinatensystem (ohne "h", sorry). Den Ausdruck habe ich erst gestern gelernt, und wenn ich ihn richtig verstehe, bedeutet das dass die Koordinatenlinien nicht gebogen sein dürfen, damit sie immer den gleichen Abstand zueinander haben. Also das Koordinatensystem mit dem man in der Schule immer rechnet (mit X- und Y-Achse).
Das wird dir nur die Flat Earth Society helfen können. Die Erde ist nun mal eine Kugel, nervt, ich weiß, aber genauso wie die nervigen Gezeiten leider nicht zu ändern.

Du wolltest das mit der Orange nie so richtig glauben? Bist du gar so religiös, oder dachtest du, alle Navigatoren, Geographen und Seefahrer der letzten Jahrhunderte waren einfach nur blöde?

Fürchte du wirst nicht drum herum kommen dich mit dreidimensionaler Mathematik zu beschäftigen. Aber: Es gibt durchaus sehr einfach Formeln mit denen man berechnen kann, welcher Kurs zwischen zwei weit auseinander liegenden Punkten auf der Erdoberfläche liegt. Weiß aber nicht, ob diese Formeln die von dir gewünschte Genauigkeit haben. Ich habe die Formeln für die Berechnung des Großkreises in einem Buch hier, wenn das das ist, was du meinst, schreib mir eine PN.

GermanSailor
 

kiozen

Geomaster
GermanSailor schrieb:
Fürchte du wirst nicht drum herum kommen dich mit dreidimensionaler Mathematik zu beschäftigen. Aber: Es gibt durchaus sehr einfach Formeln mit denen man berechnen kann, welcher Kurs zwischen zwei weit auseinander liegenden Punkten auf der Erdoberfläche liegt. Weiß aber nicht, ob diese Formeln die von dir gewünschte Genauigkeit haben. Ich habe die Formeln für die Berechnung des Großkreises in einem Buch hier, wenn das das ist, was du meinst, schreib mir eine PN.

GermanSailor

:roll: Mach doch kein Staatsgeheimnis daraus. Das Ding heißt Distanzbrechung nach Vincenty. Und hier ist der Code:

http://www.movable-type.co.uk/scripts/latlong-vincenty.html

@tsr Du wirst übrigens bei diesen Berechnungen immer unterschiedliche Ansätze sehen und damit unterschiedliche Ergebnisse bekommen. Allein von der Erde gibt es unterschiedliche Modelle (Kugel, Ellipsoid ). Gehst Du entlang des Meeresspiegels, der mittleren Höhe oder auf der realen Oberfläche?
Eine geschlossene einheitliche Form ist nicht möglich. Mutter Erde ist ein Biest :D

Oliver
 

Wallraff

Geocacher
Hallo,

Oliver schrieb:
Mutter Erde ist ein Biest
... und wir sind ihre Kinder ...

Vorab: eine längentreue Projektion ist mir auch nicht bekannt.
Bei der Erdform würde ich vorsichtig erstmal die Kugel wählen.

Das Schnittpunktproblem aber ginge doch im Prinzip mit den bekannten Gleichungen der GPS-Positionsbestimmung. Nur habe ich jetzt nicht den Bock, da einzusteigen. Es ist mutmaßlich etwas haarig, weil die Lösung nichtlinear ist und nicht in einem Schritt sondern iterativ abläuft - und die kann je nach Konfiguration der "Städte" auch mal schiefgehen.

Also die Mittelpunkte der drei vier Städte aus Länge und Breite in kartesische Koordinaten umrechnen, die drei, vier Radien werden gegeben, gesucht sind die unbekannten kartesischen Koordinaten kx ky kz des Schnittpunktes. Sollten die sich je ergeben, dann in Länge und Breite rückrechnen.
Dann erhält man sowas wie

r1² = (x1-kx)² + (y1 - ky)² + (z1 - kz)²
r2² = (x2-kx)² + (y2 - ky)² + (z2 - kz)²
r3² = (x3-kx)² + (y3 - ky)² + (z3 - kz)²
r4² = (x4-kx)² + (y4 - ky)² + (z4 - kz)²

Das müsste man mit genäherten Koordinaten des gesuchten Punktes linearisieren, hm, da geht's schon los und in Matrizenform bringen *seufz*
Vielleicht findet jemand einen passenden Link.

Vier Punkte wären schon eine Überbestimmung mit notwendiger Ausgleichung.
(Drei Punkte schon wegen des bekannten Erdradius ??)


Grüße Wallraff
 
OP
T

tsr

Geonewbie
Oh, danke für die zahlreichen Antworten. :)

GermanSailor schrieb:
Du wolltest das mit der Orange nie so richtig glauben? Bist du gar so religiös, oder dachtest du, alle Navigatoren, Geographen und Seefahrer der letzten Jahrhunderte waren einfach nur blöde?

Ich habe einfach angenommen dass Gauss nie eine Orange zu Gesicht bekommen hat. Und obwohl ich es mir vor meinen Recherchen nie vorstellen konnte, werde ich demnächst einer Glaubensrichtung beitreten, die die Erde mit einer Scheibe erklärt.
Mathematiker, die sich mit Geodäsie beschäftigen verlieren angesichts der uneleganten Beschaffenheit der Erde doch bestimmt den Verstand.

@Wallraff: Danke für den Ansatz. Da ich meine Erkenntnisse in Programmcode umwandeln will, darf ruhig viel Rechnerei dabei sein. Am liebsten benutze ich simple Formeln, damit ich Fehler schnell sehe. Ob der Computer viel rechnen muss, ist mir erstmal egal.
Bis jetzt habe ich es mir sehr einfach gemacht: Wenn ich 3 Kreise habe, dann jage ich die Schnittpunktformel auf je zwei Kreise. Die beiden Schnittpunkte zweier Kreise zu berechnen ist ja relativ einfach. Das mache ich so lange bis jeder Kreis einmal mit jedem anderen Kreis zwei Schnittpunkte ausgespuckt hat. An dem Punkt habe ich insgesamt 6 Schnittpunkte. Drei dieser Punkte müssten auf die selben Koordinaten zeigen, und damit habe ich den Schnittpunkt der drei Kreise gefunden.
Der Grund aus dem ich gerne an diesem Algorithmus festhalten würde ist, dass ich ihn mit einer beliebigen Anzahl von Kreisen benutzen kann, und eine Toleranz für Ungenauigkeit leicht eingebaut werden kann. Z.B. könnte ich bei ungenauen Kreisradien jeweils den unwahrscheinlichsten Schnittpunkt aussortieren, und wüsste dann dass mein Gesuchter Punkt wahrscheinlich irgendwo bei den verbliebenen Punkten sein muss.
Ich nehme mal an dass mein Ansatz "iterativ" ist (ich kenne den Begriff nur aus der Informatik, nicht aber aus der Mathematik) ?

Das GPS-Problem ist meinem sehr, sehr ähnlich. Genauer gesagt, hat mich der Gedanke an GPS überhaupt erst auf meine Idee gebracht.
Ich werde mal überlegen wie ich weiter vorgehe. Letzten Endes wollte ich eigentlich nur aus Neugier herausfinden ob es möglich ist mit den mir vorliegenden Daten überhaupt so etwas wie eine Positionsbestimmung zu machen, oder ob die Daten dafür zu ungenau sind. Aber ich habe mich in dem Problem verbissen. :)

P.S.: In 2d spuckt mein Programm bei ungenauen Quelldaten bis jetzt folgendes aus: http://bildr.no/view/250686 .
 
A

Anonymous

Guest
kiozen schrieb:
:roll: Mach doch kein Staatsgeheimnis daraus. Das Ding heißt Distanzbrechung nach Vincenty. Und hier ist der Code:

http://www.movable-type.co.uk/scripts/latlong-vincenty.html
Staatsgeheimnis? Entschuldige, dass ich das Urheberrecht respektiere, daher der Link zum Buch auf das ich mich bezog. Deinen Link kannte ich selbst nicht, ist sicher ganz gut sich da was zum offline Rechnen abzuleiten.

GermanSailor
 

Wallraff

Geocacher
Hallo tsr,

es ist nicht so, dass ich sadistisch veranlagt bin ... ich gebe Dir nur das Skript mit den angedachten Formeln
http://www.u-blox.de/customersupport/docs/GPS_Basics(GPS-X-01006).pdf auf S. 50.
Auf S. 64 gibt es die Umrechnungsformeln sogar zwischen Ellipsoid und kartesischem System.

Nur, wie verhält sich der Algorithmus bei mangelhafter Wahl der Näherungspunkte ? Wenn Du 'global' rechnen willst, kann man ja nicht auf Anhieb sagen, wo die Lösung liegt ...


Grüße Wallraff
 
OP
T

tsr

Geonewbie
Danke!
Das werde ich mir später mal anschauen. Eigentlich wollte ich gestern abend noch etwas posten, habe es mir aber anders überlegt, da ich kaum weiter gekommen bin.
Ich dachte mir, dass ich folgendermassen vorgehen könnte:
Ich gehe von drei Kugeln, nämlich zwei bekannten Punkten mit Radius, und der Erde aus. Ich schneide zwei Kugeln miteinander, und bekomme eine Ebene. Das mache ich mit einer zweiten, anderen, Kugelkombination um eine zweite Ebene zu bekommen. Diese beiden Ebenen schneide ich und bekomme eine Gerade. Und diese Gerade schneide ich mit der Erdkugel um zwei Punkte auf der Erdoberfläche zu bekommen. Falls das funktionieren soll, kann ich ja schauen ob ich für die Erde nicht eine passendere Figur benutzen kann.
Aber mal schauen, vielleicht zeigt mir das mit dem GPS noch ein paar Dinge auf. Mit der Umrechnungsformel kann ich bestimmt etwas anfangen.

Ups, ganz vergessen.
Nur, wie verhält sich der Algorithmus bei mangelhafter Wahl der Näherungspunkte ? Wenn Du 'global' rechnen willst, kann man ja nicht auf Anhieb sagen, wo die Lösung liegt ...

Das stimmt. "Auf Anhieb" kann man das nicht sagen. In 2d habe ich es so gelöst, dass erst alle Punktpaare berechnet werden, und später in einer zweiten Schleife ein Punkt pro Paar aussortiert wird. Das mache ich, indem ich jedem Punkt einen "Score" gebe, der sich aus der Distanz zu allen anderen Punkten errechnet. Meine Beschreibung des Algorithmus war ein bischen vereinfacht.
 
OP
T

tsr

Geonewbie
Jetzt hab ich ein paar Tage mal nicht darüber nachgedacht, und ich kann nachts sogar wieder schlafen. ;)
Dabei belasse ich es erst einmal, denke ich.
 
Oben