Forum: Mikrocontroller und Digitale Elektronik GPS Maus: falsche Koordinaten


von eitad (Gast)


Lesenswert?

Hallo,

ich habe an einen Raspberry Pi eine GPS Maus über USB angeschlossen.
Ein kleines Python Programm (http://kampis-elektroecke.de/?page_id=3674)
soll die Daten auf der Konsole ausgeben.

Leider sind die angezeigten Koordinaten immer 20 km von meinem Ort 
entfernt.

GPS-Qualitaet: 1
Anzahl der Satelliten: 7

Sollte doch eigentlich klappen, oder gibt es Stolperfallen?

mfg

von Horst (Gast)


Lesenswert?

Zeige doch einmal ein paar Datensätze.

von DokArkan (Gast)


Lesenswert?

Du hast ein Kommaproblem bei den Koordinaten! Irgendwo wird was 
abgeschnitten! Hatte ich auch mal weil die Koordinate zu lang war und 
der Speicher für den Wert zu klein...

von Cyblord -. (cyblord)


Lesenswert?

eitad schrieb:

> Sollte doch eigentlich klappen, oder gibt es Stolperfallen?

Stolperfallen sind z.B. die verschiedenen Koordinatensysteme die es 
gibt. Standard bei GPS sollte WGS84 sein. Aber Koordinaten der deutschen 
Landesvermessungämter sind auch gerne mal im "Potsdam" Format.

gruß cyblord

von eitad (Gast)


Lesenswert?

GPS: 
GPGGA,160648.703,5102.0294,N,01344.4151,E,1,03,5.0,-45.8,M,45.8,M,,0000* 
44
Uhrzeit: 16:06:48
Breitengrad: 51.02029400000001 N
Laengengrad: 13.444151 E
Hoehe ueber dem Meeresspiegel: -45.8 M
GPS-Qualitaet: 1
Anzahl der Satelliten: 3

GPS: 
GPGGA,163916.000,5102.0435,N,01344.3936,E,1,09,1.2,118.2,M,45.8,M,,0000* 
56
Uhrzeit: 16:39:16
Breitengrad: 51.020435 N
Laengengrad: 13.443936 E
Hoehe ueber dem Meeresspiegel: 118.2 M
GPS-Qualitaet: 1
Anzahl der Satelliten: 9

GPS: 
GPGGA,164014.000,5102.0418,N,01344.3948,E,1,08,1.4,127.1,M,45.8,M,,0000* 
54
Uhrzeit: 16:40:14
Breitengrad: 51.020418 N
Laengengrad: 13.443948 E
Hoehe ueber dem Meeresspiegel: 127.1 M
GPS-Qualitaet: 1
Anzahl der Satelliten: 8

GPS: 
GPGGA,164207.000,5102.0413,N,01344.3915,E,1,08,1.3,116.1,M,45.8,M,,0000* 
52
Uhrzeit: 16:42:07
Breitengrad: 51.020413 N
Laengengrad: 13.443914999999999 E
Hoehe ueber dem Meeresspiegel: 116.1 M
GPS-Qualitaet: 1
Anzahl der Satelliten: 8

von spess53 (Gast)


Lesenswert?

Hi

5105.5249 -> 51° 05' 31,494"

0,5249 sind Bruchteile von Minute. Müssen also mit 60 multipliziert 
werden.

MfG Spess

von eitad (Gast)


Lesenswert?

> Zeige doch einmal ein paar Datensätze.

Getan.

> Du hast ein Kommaproblem bei den Koordinaten! Irgendwo wird was
> abgeschnitten!

Aber da werden doch viele Nachkommastellen ausgegeben und alles nach der 
4 oder 5 Stelle sind wenige Meter. Aber bei mir sind es 20 km !?

> Stolperfallen sind z.B. die verschiedenen Koordinatensysteme die es
> gibt. Standard bei GPS sollte WGS84 sein. Aber Koordinaten der deutschen
> Landesvermessungämter sind auch gerne mal im "Potsdam" Format.

Wie bekomme ich denn das ausgegebene Format heraus?
Kannst du mir zu den verschiedenen Systeme mehr sagen?

von Cyblord -. (cyblord)


Lesenswert?

eitad schrieb:
>> Zeige doch einmal ein paar Datensätze.
>
> Getan.
>
>> Du hast ein Kommaproblem bei den Koordinaten! Irgendwo wird was
>> abgeschnitten!
>
> Aber da werden doch viele Nachkommastellen ausgegeben und alles nach der
> 4 oder 5 Stelle sind wenige Meter. Aber bei mir sind es 20 km !?
>
>> Stolperfallen sind z.B. die verschiedenen Koordinatensysteme die es
>> gibt. Standard bei GPS sollte WGS84 sein. Aber Koordinaten der deutschen
>> Landesvermessungämter sind auch gerne mal im "Potsdam" Format.
>
> Wie bekomme ich denn das ausgegebene Format heraus?
Wie gesagt, GPS verwendet WGS84. Ich denke nicht dass dein Problem 
wirklich daher kommt, aber du wolltest wissen welche Fallen es geben 
kann.

> Kannst du mir zu den verschiedenen Systeme mehr sagen?
Das kann Google. Stichwort: Geodätisches Referenzsystem.

von eitad (Gast)


Lesenswert?

> 5105.5249 -> 51° 05' 31,494"
>
> 0,5249 sind Bruchteile von Minute. Müssen also mit 60 multipliziert
> werden.

Kann ich google maps nicht einfach mit z.B. 51.020435 und 13.443936 
füttern?

Ich muss alles nach dem Komma mit 60 multiplizieren?

von Daniel H. (Firma: keine) (commander)


Lesenswert?

eitad schrieb:
> Kann ich google maps nicht einfach mit z.B. 51.020435 und 13.443936
> füttern?

Nein, weil dein GPS dir die Daten im Bogenmaß ausgibt, Google-Maps 
jedoch standardmäßig Gradangaben erwartet.

von spess53 (Gast)


Lesenswert?

Hi

>Wie bekomme ich denn das ausgegebene Format heraus?
>Kannst du mir zu den verschiedenen Systeme mehr sagen?

NMEA Spezifikation

Das Format ist

Latitude : dddmm.mmmm
Longitude: dddmm.mmmm

0.mmmm sind die Bruchteile einer Minute.

MfG Spess

von DokArkan (Gast)


Lesenswert?

Ahh, die Umrechnung ist falsch!

GPS musst Du in die Geo-Koordinate umrechnen!

GPS liefert dd° mm.mmm'
du brauchst dd.ddddd°

1 Grad = 1° = 60 Minuten = 60'
1 Minute = 1' = 60 Sekunden = 60"

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Probier mal 51.03382333 N 13.74025167 E.

von Horst (Gast)


Lesenswert?

Gebe ich bei Google-Maps "51.02029400000001 N, 13.444151 E" ein, lande 
ich mitten auf einer langen, langen Dorfstraße bei Steinbach.

Kannst du die Abweichung genauer spezifizieren?

von eitad (Gast)


Lesenswert?

das oben verlinkte und von mir übernommene Programm macht folgendes:

# Laengen und Breitengrad herausfiltern und berechnen
  Breitengrad = float(Datenliste[2])
  Breitengrad = Breitengrad / 100

  Laengengrad = float(Datenliste[4])
  Laengengrad = Laengengrad / 100

 print("Breitengrad:", Breitengrad, Datenliste[3])
 print("Laengengrad:", Laengengrad, Datenliste[5])


das dürfte ich doch dann garnicht so einfach machen, oder?

von eitad (Gast)


Lesenswert?

> Gebe ich bei Google-Maps "51.02029400000001 N, 13.444151 E" ein, lande
> ich mitten auf einer langen, langen Dorfstraße bei Steinbach.
>
> Kannst du die Abweichung genauer spezifizieren?

Genau! Und ich sitze aber ziemlich im Zentrum von Dresden...

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Daniel H. schrieb:
> Probier mal 51.03382333 N 13.74025167 E.

Was diese Koordinaten auch beweisen.

von eitad (Gast)


Lesenswert?

>> Probier mal 51.03382333 N 13.74025167 E.
>
> Was diese Koordinaten auch beweisen.

Wie kommst du auf diese Werte?

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Dein Ausgabe-Format sieht so aus:

5102.0294

Die ersten beiden Ziffern sind die Gradangabe und können direkt so 
verwendet werden, wir merken sie uns und streichen sie raus:

02.0294

Das ist nun der Rest der Position in Bogenminuten. Ein Grad hat 60 
Bogenminuten, also teilen wir diesen Wert durch 60.

02.0294/60 = 0,03382333

Das addieren wir nun zu den gemerkten 51 Grad.

51 + 0,03382333 = 51,03382333

Voila, deine Gradangabe.

: Bearbeitet durch User
von eitad (Gast)


Lesenswert?

1000 Dank!

von DokArkan (Gast)


Lesenswert?

DokArkan schrieb:
> Ahh, die Umrechnung ist falsch!
>
> GPS musst Du in die Geo-Koordinate umrechnen!
>
> GPS liefert dd° mm.mmm'
> du brauchst dd.ddddd°
>
> 1 Grad = 1° = 60 Minuten = 60'
> 1 Minute = 1' = 60 Sekunden = 60"

>> Probier mal 51.03382333 N 13.74025167 E.

5102.0294,N =
51 02,0294 = 51+(2,0294/60) = 51,03382333 = 51.03382333

von eitad (Gast)


Lesenswert?

Jetzt hänge ich natürlich an diesem Python Programm fest.

Ich hab ein paar C erfahrungen, aber mit Python hab ich bisher nichts 
gemacht.

Wie könnte denn der Code aussehen, womit ich oben gezeigte Rechnung 
ausführe?

von eitad (Gast)


Lesenswert?

okay - hab es hinbekommen

von Wolfgang (Gast)


Lesenswert?

cyblord ---- schrieb:
>>> Stolperfallen sind z.B. die verschiedenen Koordinatensysteme die es
>>> gibt. Standard bei GPS sollte WGS84 sein. Aber Koordinaten der deutschen
>>> Landesvermessungämter sind auch gerne mal im "Potsdam" Format.
>>
>> Wie bekomme ich denn das ausgegebene Format heraus?
> Wie gesagt, GPS verwendet WGS84. Ich denke nicht dass dein Problem
> wirklich daher kommt, aber du wolltest wissen welche Fallen es geben
> kann.

Wie soll man durch unterschiedlichen Kartendatum auf 20km kommen. Die 
dadurch bedingten Abweichungen sind etwa um einen Faktor 10 geringer.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.