Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Sascha Silbe schrieb: >> Qualität hat leider ihren Preis - bin ich aber auch bereit zu >> zahlen, wenn's okay ist. > Solange man entsprechend Einkommen hat, ist das sinnvoll. Ich stotter > mir hier allerdings schon die Studiengebühren ab und muß dafür > arbeiten gehen... > > Nun wirds aber definitiv OT => FUp2 private. :) > bei letzterem: ja, aber allgemein: nein Mein Ziel ist irgendwann lustigerweise auch ein AVR (vor allem deshalb, weil mein privater Löthelfer sich schon mit denen auseinander gesetzt hat), zwar zum loggen und nicht zur Navigation, aber was macht das schon. Was ich vor allem im Moment herausfinden will ist, ob es sinnvoll ist, mehrere (z.B. 4) unterschiedliche GPS-Empfänger an einen Microcontroller zu packen und als Ergebnis im Log einen "Durchschnitt" der Empfänger zu bekommen. Also: MC-Diskussionen schön weiter hier führen :-) Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Johann H. Addicks schrieb: > Nur als Randnotiz: Garmin Mapsource 6.1irgendwas meint dazu "8,4km" > Jop, darauf bin ich ja auch schon gekommen :-) > Was mich wundert ist jedoch das Profil des Tracks, da sind ziemliche > Sprünge drin. > Echt? Das wundert Dich? Hmm.. bei meinen beiden Kabel-GPS-Mäusen bin ich völlig gewohnt daran, dass die Höheninformationen ziemlich für'n Arsch sind. Ist das etwa bei anderen Geräten besser? Ich hab mir die Höhen bei meinem neuen i-Blue noch nicht angesehen, da ich dachte, das wäre eh normal und GPS-inherent, also dass Höhen eher geraten sind, als dass sie was taugen... Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Sun, Sep 21, 2008 at 05:19:43PM +0200, Detlef Reichl wrote: Ich habe schon mal ein wenig mit den Magnetfeldsensoren von Philips herumgespielt. Damals mit dem KMZ 10 A, der aktuelle Nachfolger ist der KMZ 10 B. Den bekommst Du z.B. bei segor für 2,80 das Stück. Volltreffer. Danke für den Tip! CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Detlef Reichl schrieb: > Ich habe schon mal ein wenig mit den Magnetfeldsensoren von Philips > herumgespielt. Damals mit dem KMZ 10 A, der aktuelle Nachfolger ist der > KMZ 10 B. Den bekommst Du z.B. bei segor für 2,80 das Stück. Habe ich damals auch schon dran gedacht. Aber das Layout und die verwendeten Bausteine sind sehr wichtig ... selbst teure Widerstände bauen ein Magnetfeld auf und für SMD sind meine Hände zu dick. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Am Sonntag, den 21.09.2008, 15:39 +0200 schrieb Sascha Silbe: > On Sun, Sep 21, 2008 at 01:32:10PM +0200, Tobias Wendorff wrote: > > > Kennst Du eigentlich ein vernünftiges, elektronisches Kompass-Modul? > Leider nein. Bin selbst auf der Suche nach was (für mich) bezahlbarem. > Ich finde hier in DE nicht mal eine günstige Bezugsquelle für die > Sensoren (so daß ich selbst eins bauen könnte). Ich habe schon mal ein wenig mit den Magnetfeldsensoren von Philips herumgespielt. Damals mit dem KMZ 10 A, der aktuelle Nachfolger ist der KMZ 10 B. Den bekommst Du z.B. bei segor für 2,80 das Stück. Grüßle, detlef > Überhaupt fehlt mir für viele Teile eine günstige Quelle. > Weitverbreitete elektronische Bauteile (-> Reichelt) und manche Teile > aus dem Baumarkt sind kein Problem, aber insbesondere Richtung Mechanik > wirds schnell teuer... > > CU Sascha > > ___ > Talk-de mailing list > Talk-de@openstreetmap.org > http://lists.openstreetmap.org/listinfo/talk-de ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Sun, Sep 21, 2008 at 03:57:51PM +0200, Tobias Wendorff wrote: Zur Zeit verwende ich das hier: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=137 Sieht sehr gut aus. Qualität hat leider ihren Preis - bin ich aber auch bereit zu zahlen, wenn's okay ist. Solange man entsprechend Einkommen hat, ist das sinnvoll. Ich stotter mir hier allerdings schon die Studiengebühren ab und muß dafür arbeiten gehen... Nun wirds aber definitiv OT => FUp2 private. :) CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Sascha Silbe schrieb: > Ich finde hier in DE nicht mal eine günstige Bezugsquelle für die > Sensoren (so daß ich selbst eins bauen könnte). Zur Zeit verwende ich das hier: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=137 Qualität hat leider ihren Preis - bin ich aber auch bereit zu zahlen, wenn's okay ist. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Sun, Sep 21, 2008 at 01:32:10PM +0200, Tobias Wendorff wrote: Kennst Du eigentlich ein vernünftiges, elektronisches Kompass-Modul? Leider nein. Bin selbst auf der Suche nach was (für mich) bezahlbarem. Ich finde hier in DE nicht mal eine günstige Bezugsquelle für die Sensoren (so daß ich selbst eins bauen könnte). Überhaupt fehlt mir für viele Teile eine günstige Quelle. Weitverbreitete elektronische Bauteile (-> Reichelt) und manche Teile aus dem Baumarkt sind kein Problem, aber insbesondere Richtung Mechanik wirds schnell teuer... CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Sascha Silbe schrieb: > Sorry, habe für kürzeste/längste die Folge mit lat/lon vertauscht genommen. > Damit ist jetzt endlich alles aufgeklärt. :) > Und man sieht schön, daß für solche Strecken die einfache Methode > ausreicht, zumindest zur GPS-Navigation (9m Differenz simple/Vincenty, > 15m Genauigkeit GPS). Prima, mehrere KB Code gespart (AVR hat keine > Fließkommaeinheit), jetzt dürfte sogar ein ATmega8 reichen. :D Kennst Du eigentlich ein vernünftiges, elektronisches Kompass-Modul? ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Sun, Sep 21, 2008 at 03:24:36AM +0200, Florian Heer wrote: Exp-080803-8,53km-.gpx is 8.418472284178437 km long (simple) shortest: 0.14556823651036202m longest: 25.575952006157056m Exp-080803-8,53km-.gpx is 8.427542410160084 km long (Vincenty) shortest: 0.1456457768180979m longest: 25.568516730442123m 0.14564577681809787m 25.568516731795896m Sorry, habe für kürzeste/längste die Folge mit lat/lon vertauscht genommen. Damit ist jetzt endlich alles aufgeklärt. :) Und man sieht schön, daß für solche Strecken die einfache Methode ausreicht, zumindest zur GPS-Navigation (9m Differenz simple/Vincenty, 15m Genauigkeit GPS). Prima, mehrere KB Code gespart (AVR hat keine Fließkommaeinheit), jetzt dürfte sogar ein ATmega8 reichen. :D CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Florian Heer schrieb: > Klar, auf die Idee hätte ich auch schon länger kommen können... :-) > http://www.openstreetmap.org/user/florianheer/traces/160678 Nur als Randnotiz: Garmin Mapsource 6.1irgendwas meint dazu "8,4km" Was mich wundert ist jedoch das Profil des Tracks, da sind ziemliche Sprünge drin. -jha- <>___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Nachtrag zum Nachtrag (ich hätte ja längst schlafen sollen, aber das lies mir dann doch keine Ruhe): Fehler gefunden! Jubel, danke an alle! Der Fehler lag letztlich beim Timestamp, der in der DB nur sekundengenau von mir vorgehalten wurde. Meine Annahme war, dass meine GPS-Mouse nur mit 1Hz updatet und damit auch die Loggersoftware nur jede Sekunde einen Eintrag im GPX erzeugt. Mindestens letztere Annahme war stumpf falsch. Somit hatte ich mehrere Einträge, die in der selben Sekunde entstanden (weiss jetzt gerade noch nicht, ob die Uhrzeit des PDA mittendrin durch Noni geändert wurde, oder ob es auf einander folgende Werte in der selben Sekunde waren) und durch das Sortieren der DB-Abfrage umgewürfelt wurden. Ich habe die Punkte nach Auftreten im GPX-Log nummeriert und danach sortiert. Das Ergebnis ist endlich ein allseits anerkannter Wert (auch wenn ich bei kürzester/längster Differenz noch nicht mit Sascha übereinstimme...): Exp-080803-8,53km-.gpx is 8.418472284178437 km long (simple) shortest: 0.14556823651036202m longest: 25.575952006157056m Exp-080803-8,53km-.gpx is 8.427542410160084 km long (Vincenty) shortest: 0.1456457768180979m longest: 25.568516730442123m So, gute Nacht! ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Holger Issle schrieb: > On Fri, 19 Sep 2008 03:42:11 +0200, Florian Heer wrote: > > >> Vielleicht andere Implementationen, bei denen ich Tracks hochladen kann >> um Ergebnisse zu vergleichen...? >> > > Nimm TTQV von www.ttqv.de, importiere den Track und lese ab wie lang > Okay... auch wenn es etwas gewöhnungsbedürftig ist, der berechnet den Track auf 8.42 km. Danke auch für den Tip, eine Vergleichsmöglichkeit. Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Florian Heer schrieb: > Na, doch nicht erst morgen, ich musste es jetzt wissen: > 50/0 bis 50/1.4: > simple: 100.17881385804266 km > vincenty: 100.3725890072382 km > lineal: 100.2 km (nicht ganz genau auf den Punkten...) > Nachtrag zum Nachtrag: nach http://www.movable-type.co.uk/scripts/latlong-vincenty.html ist das eine Distanz von 100372.590 m Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Florian Heer schrieb: > Hehe, ich guck mir morgen mal genau an, was bei raus kommt, wenn ich > Distanzen berechne, die ich mir bei Google Earth mit dem Lineal vorgebe. > Na, doch nicht erst morgen, ich musste es jetzt wissen: 50/0 bis 50/1.4: simple: 100.17881385804266 km vincenty: 100.3725890072382 km lineal: 100.2 km (nicht ganz genau auf den Punkten...) Das sieht doch eigentlich gar nicht so verkehrt aus *kopfkratz* Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Hi! Sascha Silbe schrieb: > On Fri, Sep 19, 2008 at 03:42:11AM +0200, Florian Heer wrote: > >> http://www.openstreetmap.org/user/florianheer/traces/160678 > Habs gerade mal kurz von Python durchrechnen lassen (mittels > Vincenty), komme auf 8427.5424101584249m (lat/lon korrekt) bzw. > 11603.755080105428m (lat/lon vertauscht). Keine Filterung (967 Punkte, > 966 Segmente), keine Glättung, eingebauter Fließkommatyp (IEEE 754 > double precision). Maximale Einzeldistanz ist ca. 37.88m, minimale >0 > ist ca. 18.4cm. Mit kurz-/lang-Auswertung: Exp-080803-8,53km-.gpx is 10.421032628337267 km long (simple) shortest: 0.14556823651036202m longest: 43.1536557160521m Exp-080803-8,53km-.gpx is 10.432387536300029 km long (Vincenty) shortest: 0.1456457768180979m longest: 43.155324462589306m Lustig, hab gerade mal bei mir Lat/Lon getauscht: Exp-080803-8,53km-.gpx is 14.463829250546146 km long (simple) shortest: 0.18494348788838302m longest: 66.67561313341307m Exp-080803-8,53km-.gpx is 14.39166351008208 km long (Vincenty) shortest: 0.18420196663375732m longest: 66.26012533075907m Da tauchen wenigstens die ca 18.4cm auf. Nochmal zur Klärung, was ich da aufsummiere, bzw. was ich da mache, vielleicht ist da ja schon ein Fehler: Parsen des Tracks auf _einfachste_ Art und Weise: alle trkpt werden mit Lat (double) / Lon (double) / Time (DateTime) in eine MySQL-DB geschrieben. Select auf alle Punkte, sortiert nach Zeit, aufsteigend. Dann Distanz zwischen Punkt und Vorgänger berechnen und aufsummieren. Und nein: ich habe nicht vergessen, dass ich beim ersten Punkt noch keinen Vorgänger habe :-) >> Sofern OSM da keine Glättungen macht, aber ich kanns mir nicht >> wirklich vorstellen... > Da fällt mir noch was ein: Welche Datenformate hast Du benutzt und > wieviele Nachkommastellen wurden da jeweils gespeichert? Das GPX sieht > aus, als wären beim Upload nur 5 Stellen hinter dem Komma angegeben > worden, das ist eine Auflösung von 1.1m (Latitude) bzw. 0.7m > (Longitude). 94 der von mir berechneten Werte sind kleiner als 2*1.1m, > mit einer Summe von 91.8m. Kein großer Fehler (dürfte im Bereich um 1% > sein), aber kleinere Unterschiede könnte es erklären. Das "Original" des Tracks ist NoniGPSPlot, von dort nach GPX exportiert. Dieses GPX wurde ungeändert nach OSM hochgeladen und bildet gleichzeitig die Basis für meinen lokalen Import. In dem Track sind etwas mehr Nachkommastellen (die auch korrekt in meine DB geparst wurden, ich habs jetzt extra nochmal geprüft, so langsam bin ich verwundert...), Auszug: 215.2 2008-08-03T18:44:24Z 0.0 0.0 215.1 2008-08-03T18:44:24Z 0.0 0.0 215.1 2008-08-03T18:44:31Z 0.0 0.0 > So, jetzt haben wir die Daten mit 3 Implementierungen (Noni-GPS, > Deine, meine) durchrechnen lassen und kommen auf 3 unterschiedliche > Werte. Prima. ;) Hehe, ich guck mir morgen mal genau an, was bei raus kommt, wenn ich Distanzen berechne, die ich mir bei Google Earth mit dem Lineal vorgebe. > Bei Deinen 10.42km würde ich ja fast auf lat/lon vertauscht tippen. > Das GPX deckt sich recht gut mit der Karte, dürfte also korrekt sein. Das GPX ist an sich recht okay, aber lat/lon Tausch... Selbst wenn ich den Test nicht jetzt gerade gemacht hätte würde es mich wundern, da, wie schon erwähnt, bei den meisten der Tracks die Distanzangabe von Noni mit meinen Berechnungen harmoniert. Aber wo Du mit Deinen Werten zumindest zwischen die 8.53 (Noni) und 8.3 (Kompf-upload) gekommen bist, muss wohl doch etwas bei mir schief liegen. > In welcher Form liegen denn die Rohdaten vor? GPX bzw. Nonis eigenes .ngt-Format. Viele Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Fri, Sep 19, 2008 at 03:42:11AM +0200, Florian Heer wrote: Bei einigen (ca. 20%) der Tracks, stimmen die Werte aber nicht (Fehler weit über 1%), weshalb ich zweifeln muss, entweder an meiner Implementation oder der anderer Software. Einen Track hab ich mir speziell angesehen, laut Noni-GPS ist der 8.53 km, laut meiner Berechnung 10.42 und laut http://www.kompf.de/trekka/#client=®ion=Deutschland ist er 8.3 km lang. On Sat, Sep 20, 2008 at 10:44:40PM +0200, Florian Heer wrote: http://www.openstreetmap.org/user/florianheer/traces/160678 Habs gerade mal kurz von Python durchrechnen lassen (mittels Vincenty), komme auf 8427.5424101584249m (lat/lon korrekt) bzw. 11603.755080105428m (lat/lon vertauscht). Keine Filterung (967 Punkte, 966 Segmente), keine Glättung, eingebauter Fließkommatyp (IEEE 754 double precision). Maximale Einzeldistanz ist ca. 37.88m, minimale >0 ist ca. 18.4cm. Sofern OSM da keine Glättungen macht, aber ich kanns mir nicht wirklich vorstellen... Da fällt mir noch was ein: Welche Datenformate hast Du benutzt und wieviele Nachkommastellen wurden da jeweils gespeichert? Das GPX sieht aus, als wären beim Upload nur 5 Stellen hinter dem Komma angegeben worden, das ist eine Auflösung von 1.1m (Latitude) bzw. 0.7m (Longitude). 94 der von mir berechneten Werte sind kleiner als 2*1.1m, mit einer Summe von 91.8m. Kein großer Fehler (dürfte im Bereich um 1% sein), aber kleinere Unterschiede könnte es erklären. So, jetzt haben wir die Daten mit 3 Implementierungen (Noni-GPS, Deine, meine) durchrechnen lassen und kommen auf 3 unterschiedliche Werte. Prima. ;) Bei Deinen 10.42km würde ich ja fast auf lat/lon vertauscht tippen. Das GPX deckt sich recht gut mit der Karte, dürfte also korrekt sein. In welcher Form liegen denn die Rohdaten vor? CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Sascha Silbe schrieb: > Also nur 1 Promille. Gut zu wissen (=> für mein Roboterchen reicht die > einfache Formel), Danke für die Werte! Aber immer doch. > Wenn Du den Track mal online stellst, kann ich das gern mal kurz > durchrechnen (=> andere Implementierung). Auch wenn ich nicht glaube, > daß da andere Ergebnisse bei rauskommen. Klar, auf die Idee hätte ich auch schon länger kommen können... :-) http://www.openstreetmap.org/user/florianheer/traces/160678 Sofern OSM da keine Glättungen macht, aber ich kanns mir nicht wirklich vorstellen... Ciao, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Sat, Sep 20, 2008 at 12:57:22AM +0200, Florian Heer wrote: Okay, danke, dann hab ich ja Vergleiche, wo ich bei weiß, was genau berechnet wird. Der beschriebene Track, der mich so gewundert hat, hat jetzt 10.421032628337267 km (simple) bzw. 10.432387536300029 km (Vincenty) Also nur 1 Promille. Gut zu wissen (=> für mein Roboterchen reicht die einfache Formel), Danke für die Werte! - Massive Rundungsfehler (ich glaub nicht, aber glauben kann ich in der Kirche oder so ähnlich) Mir fällt gerade noch was ein: Du summierst ja relativ kleine Werte auf. Kann es sein, daß Du nicht genau genug rechnest und Dir dadurch beim Summieren (große + kleine Zahl) Rundungsfehler einfängst? Sicher möglich, aber die Differenzen der Zahlen sind nicht so massiv, es sind 10^5:1-10^7:1, das sollte ein double noch nicht in Auflösungsprobleme bringen. OK, double sollte da eigentlich passen. Schade. :) Wenn Du den Track mal online stellst, kann ich das gern mal kurz durchrechnen (=> andere Implementierung). Auch wenn ich nicht glaube, daß da andere Ergebnisse bei rauskommen. CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Hi, Sascha! Sascha Silbe schrieb: > On Fri, Sep 19, 2008 at 03:42:11AM +0200, Florian Heer wrote: > >> - Massive Rundungsfehler (ich glaub nicht, aber glauben kann ich in >> der Kirche oder so ähnlich) > Mir fällt gerade noch was ein: Du summierst ja relativ kleine Werte > auf. Kann es sein, daß Du nicht genau genug rechnest und Dir dadurch > beim Summieren (große + kleine Zahl) Rundungsfehler einfängst? Sicher möglich, aber die Differenzen der Zahlen sind nicht so massiv, es sind 10^5:1-10^7:1, das sollte ein double noch nicht in Auflösungsprobleme bringen. Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Sascha Silbe schrieb: > On Fri, Sep 19, 2008 at 03:42:11AM +0200, Florian Heer wrote: > >> Bei einigen (ca. 20%) der Tracks, stimmen die Werte aber nicht >> (Fehler weit über 1%), > Fehler von 1% würde ich bei Deiner Formel durchaus erwarten. Nimm > Vincenty's Algorithmus, der ist besser. Gibts auf [1] in JavaScript, > meine Übersetzungen in C und Python habe ich angehängt. Lizenz ist LGPL. Okay, danke, dann hab ich ja Vergleiche, wo ich bei weiß, was genau berechnet wird. Der beschriebene Track, der mich so gewundert hat, hat jetzt 10.421032628337267 km (simple) bzw. 10.432387536300029 km (Vincenty) Dann gehe ich jetzt mal davon aus, dass Noni irgendwas doch glättet und wohl viele anderen Anzeiger auch, und dass meine Formel zumindest als Überschlagsrechnung nicht falsch ist... :-) Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Fri, Sep 19, 2008 at 03:42:11AM +0200, Florian Heer wrote: - Massive Rundungsfehler (ich glaub nicht, aber glauben kann ich in der Kirche oder so ähnlich) Mir fällt gerade noch was ein: Du summierst ja relativ kleine Werte auf. Kann es sein, daß Du nicht genau genug rechnest und Dir dadurch beim Summieren (große + kleine Zahl) Rundungsfehler einfängst? CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Fri, 19 Sep 2008 13:50:08 + (GMT), Florian Heer wrote: > bei einer Updatefrequenz von 1Hz ist die Streckendifferenz > zwischen 2 Punkten geradezu mickrig. In der Tat, da kannst Du letztlich einfache Geometrie nehmen, das darf auf keinen Fall eine Abweichung bringen die Du gefunden hast. -- Ciao, Holger (GUS-KOTAL, GUS#1100, GRR#51) 90-92 Honda CB400 10 Mm | 93-95 Yamaha TDM 850 26 Mm 95-97 KTM 620 LC4 13 Mm | seit 97 BMW R1100GS 69 Mm (Die Renndrecksau!) cu @ http://www.issle.de ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Hallo Tobias, --- Tobias Wendorff <[EMAIL PROTECTED]> schrieb am Fr, 19.9.2008: > Das geht von perfekten Kugeln aus: Great Circle. > > Lies mal die Ergänzungen :-) ... in denen auch klar steht, dass für kurze Distanzen die Unterschiede unerheblich sind. Ich versuchte, die Distanz von einzelnen Punkten eines Tracks zu berechnen, bei einer Updatefrequenz von 1Hz ist die Streckendifferenz zwischen 2 Punkten geradezu mickrig. > In was für einer DB hast Du es? Postdingsbums hat glaube > ich > eigene, interne Routinen zum Berechnen (basierend auf > Proj.4). > Guck' mal ob Du "geod" auf dem Rechner hast. Project 4 hab ich auch schon gefunden, aber es geht mir gerade nicht darum, externe Libraries zu nutzen, schließlich will ich verstehen und nicht nur nutzen. Grüße, Florian. __ Do You Yahoo!? Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails. http://mail.yahoo.com ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Fri, Sep 19, 2008 at 02:37:20PM +0200, Florian Heer wrote: Nimm Vincenty's Algorithmus, der ist besser. Gibts auf [1] in JavaScript, meine Übersetzungen in C und Python habe ich angehängt. Lizenz ist LGPL. Danke, seh ich mir an, sobald ich dazu komme. Ist das die Großkreisberechnung? Nop, ist genauer als Great Circle (=Haversine). Benutzt das WGS84-Ellipsoid statt einer Kugel. CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Florian Heer schrieb: > Danke, seh ich mir an, sobald ich dazu komme. Ist das die > Großkreisberechnung? Nein, die Ellipsoiden-Berechnung. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Hallo, Florian Heer schrieb: > Tobias Wendorff schrieb: >> Faustformel? Was / wofür ist die? >> > > mehr oder weniger, hab ich von http://www.kompf.de/gps/distcalc.html Das geht von perfekten Kugeln aus: Great Circle. Lies mal die Ergänzungen :-) >> Ich habe vor einiger Zeit ein sehr gutes PHP-Script geschrieben, >> welches auf Basis von Vincenty arbeitet, als ziemlich genau ist. >> >> Liegen Deine Tracks in OSM oder GPX vor? Wenn sie in OSM vorliegen, >> schreibe ich das Script diesbezüglich um, um Wege zu beachten. > > Meine Basteltracks hab ich hier in GPX bzw. jetzt in einer DB, das geht > erheblich schneller als ständig Text zu parsen... In was für einer DB hast Du es? Postdingsbums hat glaube ich eigene, interne Routinen zum Berechnen (basierend auf Proj.4). Guck' mal ob Du "geod" auf dem Rechner hast. Grüße Tobias ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Sascha Silbe schrieb: > On Fri, Sep 19, 2008 at 03:42:11AM +0200, Florian Heer wrote: > >> Bei einigen (ca. 20%) der Tracks, stimmen die Werte aber nicht >> (Fehler weit über 1%), > Fehler von 1% würde ich bei Deiner Formel durchaus erwarten. Wegen der vereinfachten Formel hab ich ehrlich gesagt nicht so einen großen Fehler erwartet, vielleicht Rundung etc... aber ich hab ja schon nur die totalen Ausreisser mir angesehen. > Nimm Vincenty's Algorithmus, der ist besser. Gibts auf [1] in > JavaScript, meine Übersetzungen in C und Python habe ich angehängt. > Lizenz ist LGPL. > Danke, seh ich mir an, sobald ich dazu komme. Ist das die Großkreisberechnung? Ciao, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Tobias Wendorff schrieb: > Faustformel? Was / wofür ist die? > mehr oder weniger, hab ich von http://www.kompf.de/gps/distcalc.html > Ich habe vor einiger Zeit ein sehr gutes PHP-Script geschrieben, > welches auf Basis von Vincenty arbeitet, als ziemlich genau ist. > > Liegen Deine Tracks in OSM oder GPX vor? Wenn sie in OSM vorliegen, > schreibe ich das Script diesbezüglich um, um Wege zu beachten. > Meine Basteltracks hab ich hier in GPX bzw. jetzt in einer DB, das geht erheblich schneller als ständig Text zu parsen... Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Dirk Stöcker schrieb: > On Fri, 19 Sep 2008, Florian Heer wrote: > >> und das dann für jeden Punkt (gegen seinen Vorläufer) eines Tracks >> summiert, natürlich sind alle Zahlen double. > > Das kannst Du nicht machen. Die summierst hier die zufälligen Fehler > Deines Tracks auf. Deine Endgenauigkeit hängt hier wesentlich von der > Anzahl der Punkte ab. Hallo Dirk, das ist mir absolut klar, aber ich bin mir recht sicher, dass Noni nicht glättet, zumindest war einTrack, bei dem ich das mal auf einer Karte nachgemessen hab, nach der Aufzeichnung ca. 1.6* so lang, als die Schätzung über Karte. > Willst Du das machen, musst Du vorher eine Glättung der Spur > durchführen. Und das ist nicht unbedingt trivial, wenn Du genaue > Ergebnisse haben willst. Ja, ich weiß, und das ist genau das, wo ich hin will, nur ohne "korrekte" Einzelwegdistanzen brauch ich gar nicht erst weiter zu machen. > Falls Du mir nicht glaubst. Stell Dich auf einen Punkt, lasse GPS eine > Zeitlang aufzeichnen (ohne ausdünnen) und berechne die zurückgelegte > Strecke. Sie wird immer wesentlich größer als 0 sein. Ja, ich weiss, so langsam weiss ich wirklich, wie GPS-Aufzeichnungen aussehen.. :-) Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Hallo Sascha, Sascha Silbe schrieb: > Fehler von 1% würde ich bei Deiner Formel durchaus erwarten. Nimm > Vincenty's Algorithmus, der ist besser. Gibts auf [1] in JavaScript, > meine Übersetzungen in C und Python habe ich angehängt. Lizenz ist LGPL. Super, jetzt habe ich es in jeder "Sprache". Ich bevorzuge allerdings immer noch Perl und PHP, da man es auch auf Webservern laufen lassen kann, bei denen man keinen Root-Access hat. Grüße Tobias ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Fri, Sep 19, 2008 at 03:42:11AM +0200, Florian Heer wrote: Bei einigen (ca. 20%) der Tracks, stimmen die Werte aber nicht (Fehler weit über 1%), Fehler von 1% würde ich bei Deiner Formel durchaus erwarten. Nimm Vincenty's Algorithmus, der ist besser. Gibts auf [1] in JavaScript, meine Übersetzungen in C und Python habe ich angehängt. Lizenz ist LGPL. [1] http://www.movable-type.co.uk/scripts/latlong-vincenty.html CU Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ # arch-tag: 413a3fa1-5a89-41f2-a905-0ad78cdd0267 from math import * # ## ## Copyright (C) 2002-2008 Chris Veness -- http://www.movable-type.co.uk/scripts/latlong-vincenty.html ## Copyright (C) 2007-2008 Sascha Silbe -- http://sascha.silbe.org/ ## ## This file may be distributed and/or modified under the terms of the ## GNU Lesser General Public License version 2 as published by the Free ## Software Foundation and appearing in the file COPYING.LESSER included in ## the packaging of this file. ## # # source of algorithm: # Vincenty direct formula - T Vincenty, "Direct and Inverse Solutions of Geodesics on the # Ellipsoid with application of nested equations", Survey Review, vol XXII no 176, 1975 # http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf # # based on JavaScript implementation by Chris Veness, available at # http://www.movable-type.co.uk/scripts/latlong-vincenty-direct.html # Python implementation by Sascha Silbe # # License for original JavaScript implementation: # JavaScript functions are shown below. You are welcome to re-use these scripts [without any warranty express or implied] # provided you retain my copyright notice and when possible a link to my website (under a LGPL license). If you have any # queries or find any problems, please contact me. # (C) 2002-2008 Chris Veness # WGS-84 ellipsiod a = 6378137. b = 6356752.3142 f = 1/298.257223563 def distance(p1, p2) : p1Lat = p1[0]*pi/180 p1Lon = p1[1]*pi/180 p2Lat = p2[0]*pi/180 p2Lon = p2[1]*pi/180 L = p2Lon - p1Lon U1 = atan((1-f) * tan(p1Lat)) U2 = atan((1-f) * tan(p2Lat)) sinU1 = sin(U1) cosU1 = cos(U1) sinU2 = sin(U2) cosU2 = cos(U2) Lambda = L LambdaP = 2*pi iterLimit = 20 while ((fabs(Lambda-LambdaP) > 1e-12) and iterLimit) : iterLimit -= 1 sinLambda = sin(Lambda) cosLambda = cos(Lambda) sinSigma = sqrt((cosU2*sinLambda) * (cosU2*sinLambda) + (cosU1*sinU2-sinU1*cosU2*cosLambda) * (cosU1*sinU2-sinU1*cosU2*cosLambda)) if (sinSigma==0) : return 0, 0 # co-incident points cosSigma = sinU1*sinU2 + cosU1*cosU2*cosLambda sigma = atan2(sinSigma, cosSigma) sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma cosSqAlpha = 1 - sinAlpha*sinAlpha if (cosSqAlpha == 0) : cos2SigmaM = 0 # equatorial line: cosSqAlpha=0 (Rule 6) else : cos2SigmaM = cosSigma - 2*sinU1*sinU2/cosSqAlpha C = f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha)) LambdaP = Lambda Lambda = L + (1-C) * f * sinAlpha * (sigma + C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM))) if (iterLimit==0) : # formula failed to converge return None, None uSq = cosSqAlpha * (a*a - b*b) / (b*b) A = 1 + uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq))) B = uSq/1024 * (256+uSq*(-128+uSq*(74-47*uSq))) deltaSigma = B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM))) s = b*A*(sigma-deltaSigma) # initial bearing bearing = atan2(cosU2*sinLambda, cosU1*sinU2 - sinU1*cosU2*cosLambda)*180/pi # final bearing # bearing = atan2(cosU1*sinLambda, -sinU1*cosU2 + cosU1*sinU2*cosLambda)*180/pi while (bearing < 0) : bearing += 360 return s, bearing def destination(origin, bearing, distance) : lat1, lon1 = origin s = float(distance) alpha1 = bearing*pi/180 sinAlpha1 = sin(alpha1) cosAlpha1 = cos(alpha1) tanU1 = (1-f) * tan(lat1*pi/180) cosU1 = 1. / sqrt((1 + tanU1*tanU1)) sinU1 = tanU1*cosU1 sigma1 = atan2(tanU1, cosAlpha1) sinAlpha = cosU1 * sinAlpha1 cosSqAlpha = 1 - sinAlpha*sinAlpha uSq = cosSqAlpha * (a*a - b*b) / (b*b) A = 1 + uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq))) B = uSq/1024 * (256+uSq*(-128+uSq*(74-47*uSq))) sigma = s / (b*A) sigmaP = 2*pi while (abs(sigma-sigmaP) > 1e-12) : cos2SigmaM = cos(2*sigma1 + sigma) sinSigma = sin(sigma) cosSigma = cos(sigma) deltaSigma = B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM))) sigmaP = sigma sigma = s / (b*A) + deltaSigma tmp = sinU1*sinSigma - cosU1*cosSigma*cosAlpha1 lat2 = atan2(sinU1*cosSigma + cosU1*sinSigma*cosAlpha1, (1-f)*sqrt(sinAlpha*sinAlpha + tmp*tmp)) Lambda = atan2(sinSigma*sinAlpha1, cosU1*cosSigma - sinU1*sinSigma*
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Hallo Florian, Florian Heer schrieb: > Entfernung in km = wurzel (dx² + dy²) > mit: > dx = 111.3 * cos(lat) * (lon1 - lon2) > lat = (lat1 + lat2) / 2 * 0.01745 > dy = 111.3 * (lat1 - lat2) > Breite, Länge in Grad Faustformel? Was / wofür ist die? > Kann mir jemand da weiter helfen? > Vielleicht andere Implementationen, bei denen ich Tracks hochladen kann > um Ergebnisse zu vergleichen...? Ich habe vor einiger Zeit ein sehr gutes PHP-Script geschrieben, welches auf Basis von Vincenty arbeitet, als ziemlich genau ist. Liegen Deine Tracks in OSM oder GPX vor? Wenn sie in OSM vorliegen, schreibe ich das Script diesbezüglich um, um Wege zu beachten. Grüße Tobias ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Fri, 19 Sep 2008, Florian Heer wrote: und das dann für jeden Punkt (gegen seinen Vorläufer) eines Tracks summiert, natürlich sind alle Zahlen double. Das kannst Du nicht machen. Die summierst hier die zufälligen Fehler Deines Tracks auf. Deine Endgenauigkeit hängt hier wesentlich von der Anzahl der Punkte ab. Willst Du das machen, musst Du vorher eine Glättung der Spur durchführen. Und das ist nicht unbedingt trivial, wenn Du genaue Ergebnisse haben willst. Falls Du mir nicht glaubst. Stell Dich auf einen Punkt, lasse GPS eine Zeitlang aufzeichnen (ohne ausdünnen) und berechne die zurückgelegte Strecke. Sie wird immer wesentlich größer als 0 sein. Ciao -- http://www.dstoecker.eu/ (PGP key available)___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
2008/9/19, Holger Issle <[EMAIL PROTECTED]>: > On Fri, 19 Sep 2008 03:42:11 +0200, Florian Heer wrote: > >..., was aber meiner Meinung nach bei 8km Strecke keine 200m Unterschied >geben darf > (wenn die nicht grad aus 3 Punkten besteht). > ..sondern ca. 0,3 Millimeter Gruß, Thomas ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
Hallo Florian, hallo Holger, das ist sicher für viele interessant! Könnt Ihr die Ergebnisse Eurer Überlegungen bitte noch im Wiki dokumentieren? (und sinnvoll verlinken) Besten Dank, Markus ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Distanz-Berechnungen aus Koordinaten
On Fri, 19 Sep 2008 03:42:11 +0200, Florian Heer wrote: > Vielleicht andere Implementationen, bei denen ich Tracks hochladen kann > um Ergebnisse zu vergleichen...? Nimm TTQV von www.ttqv.de, importiere den Track und lese ab wie lang er sein sollte. TTQV läuft 25 Tage ohne Lizenz und nimmt die Formeln zum Großkreis, sollte also genauer sein als Deine Rechnung, was aber meiner Meinung nach bei 8km Strecke keine 200m Unterschied geben darf (wenn die nicht grad aus 3 Punkten besteht). Siehe dazu auch http://de.wikipedia.org/wiki/Gro%C3%9Fkreis -- Ciao, Holger (GUS-KOTAL, GUS#1100, GRR#51) 90-92 Honda CB400 10 Mm | 93-95 Yamaha TDM 850 26 Mm 95-97 KTM 620 LC4 13 Mm | seit 97 BMW R1100GS 69 Mm (Die Renndrecksau!) cu @ http://www.issle.de ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
[Talk-de] Distanz-Berechnungen aus Koordinaten
Hi! Ich weiß, dass das nur so halb hier her passt, und wenn mir jemand einen besseren Platz zum Fragen nennen kann, bzw. Webseiten, wo alles gut erklärt ist, oder oder oder: gerne. Mein aktuelles Hauptproblem ist die Berechnung von Distanzen zwischen 2 Koordinaten im WGS-84. Nach kompf.de und zumindest rudimentärem Verständnis des Problems ist eine einfache Formel (= eine, die nur gerine Entfernungen berücksichtigt): Entfernung in km = wurzel (dx² + dy²) mit: dx = 111.3 * cos(lat) * (lon1 - lon2) lat = (lat1 + lat2) / 2 * 0.01745 dy = 111.3 * (lat1 - lat2) Breite, Länge in Grad So weit so gut, wenn ich meine gesammelten Tracks danach berechne (und extreme Werte [>1km/sek] ignoriere, also Startbedingungen von Tracks), ergibt sich meist ein Wert, der mit den Berechnungen von NoniGPSPlot halbwegs deckt (was meine Loggersoftware ist). Bei einigen (ca. 20%) der Tracks, stimmen die Werte aber nicht (Fehler weit über 1%), weshalb ich zweifeln muss, entweder an meiner Implementation oder der anderer Software. Einen Track hab ich mir speziell angesehen, laut Noni-GPS ist der 8.53 km, laut meiner Berechnung 10.42 und laut http://www.kompf.de/trekka/#client=®ion=Deutschland ist er 8.3 km lang. Sind schon etwas stärkere Abweichungen. Meine Implementation in Java ist: lat = (lat1 + lat2) / 2 * 0.01745; dx = 111.3 * Math.cos(lat) * (lon1 - lon2); dy = 111.3 * (lat1 - lat2); localDistance = Math.sqrt(dx*dx+dy*dy); und das dann für jeden Punkt (gegen seinen Vorläufer) eines Tracks summiert, natürlich sind alle Zahlen double. Mögliche Ursachen: - Konstanten (111.3 bzw 0.01745) sind falsch - Massive Rundungsfehler (ich glaub nicht, aber glauben kann ich in der Kirche oder so ähnlich) - auch bei geringen Entfernungen ist die Formel nicht korrekt - Implementationsfehler - meine Implementation ist richtig, alle anderen stinken... :-) Kann mir jemand da weiter helfen? Vielleicht andere Implementationen, bei denen ich Tracks hochladen kann um Ergebnisse zu vergleichen...? Viele Grüße, Florian. ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de