Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

GPS-Koordinaten Format...

257 views
Skip to first unread message

Amin Hamdan

unread,
Jan 19, 2000, 3:00:00 AM1/19/00
to
hallo erst mal...

ich bin nicht ganz sicher, ob die frage hier hingehoert oder
nicht (ich weis, das faengt ja gut an :) aber:

micht wuerde interessieren wie viele bytes man braucht um
die Angabe von Laengen- bzw. Breitengrad eines Ortes zu
speichern, wenn man eine Genauigkeit von unter 5m benoetigt?
Wenn ich mich recht entsinne, sind diese beiden Werte bereits
im WGS-84/GPS Format bereits so enthalten. Wenn ich hier
irren sollte, andere Frage: wie viele Bytes braucht man,
um mittels der WGS-84 Koordinaten (flach, keine Hoehenwerte!)
eine Ort auf unter 5m genau zu adressieren?

fuer Hinweise (auch auf web resourcen oder literatur) bin
ich sehr dankbar...

mfg
amin!

Joachim Bungert

unread,
Jan 19, 2000, 3:00:00 AM1/19/00
to
also gut,
ich probiere es mal:
z.B. N79°59`59.9``,W179°59`59.9` gibt Dir einen Punkt, genauer als 4m
(gerechnet mit 40.000km Erdumfang) der Fehler variiert unter anderem
je nach Position.
Nun liegt es an Dir, wieviel Arbeit Du Dir machst das zu kodieren um
es kleiner zu kriegen. Unter Verwendung des ASCII Zeichensatzes
kommst. Du z.b. auch mit N¦;;9 aus.
N bleibt N
¦ =Alt-179
;=Alt-59
;=Alt-59
9 bleibt 9

Ein paar Steuerzeichen mußt Du halt umdefinieren oder Deinen
Zeichensatz erst bei Alt-50 oder so beginnen.
Ich bin kein Programmierer, bin mir aber sicher, ein Zeichen läßt sich
noch einsparen. Das kann man jetzt beliebig weiter spinnen.
Gruß
Jockel


Joachim Bungert PC-Service
e-mail: jb...@d63500.de

Digital maps of
Canada, Africa, Germany, Switzerland, World Atlas
Supporting:
Top50, Top10, Top200, Austria Map, Swiss Map 100
"QuoVadis" and "QuoVadis Navigator"
digital maps, moving map, GPS-navigation and
routeplanning via mouseklick
http://www.quovadis-gps.com
http://www.qvnav.com

Amin Hamdan

unread,
Jan 20, 2000, 3:00:00 AM1/20/00
to
hi!

> also gut,
> ich probiere es mal:
> z.B. N79°59`59.9``,W179°59`59.9` gibt Dir einen Punkt, genauer als 4m
> (gerechnet mit 40.000km Erdumfang) der Fehler variiert unter anderem
> je nach Position.

> (...)

vielen dank fuer die echt schnelle beantwortung.
wenn ich es richtig verstanden habe, ist ein sinnvolles
format (alle Teilwerte positiv):
<Himmelsrichtung, Laenge/Breite, Minuten, Sekunden>

* Himmelsrichtung sind 2Bit (N,S,O,W)
* Laenge/Breite sind 8Bit (Wertebereich 0-180 (?))
* Bei den Minuten dasselbe: 8Bit
* Die Sekunden sind kritisch, da sich die eigentliche
genauigkeit ausmachen. Wenn ich das richtig verstanden
habe, brauche ich nur eine nachkommastelle, oder?
Die Werte sind also auch hier von 0.0 bis 180.0
verschieben wir die Dezimalstelle um eins nach rechts,
da wir nur ganze Zahlen verwenden (Binaersystem). Also
braucht man Werte von 0 bis 1800 und damit 12Bit
dafuer.

Summa sumarum sind es also insgesammt nur 30Bit. Die
brauche ich fuer die Laengen- und Breitengrade.
Mit 60Bit kann man einen Punkt auf 5m genau adressieren.
Kann dass sein?

Eine Frage habe ich noch: Bei den Laengengraden kommen
nur N und S vor, und bei den Breitengraden nur W und O?
So dies der Fall sein sollte, habe kann ich noch ein
Bit bei der Himmelsrichtung einsparen und habe sogar noch
6Bit bei der Gesamtadresse ueber bis zur naechsten
Zweierpotenz (64). Damit kann man den Sekunden noch eine
Nachkommastelle spendieren. Um wieviel wird die Genauigkeit
dadurch verbessert?

mfg
amin!

ps: da mit zweierpotenzen gerechnet wird, bleiben
ungenutzte Wertebereiche ueber. Fuer die Laengengrade
sind dies 255 - 180 = 75. Auch die koennte man noch
verwenden, aber wir wollen ja nicht uebertreiben!

Tilman Schulz

unread,
Jan 20, 2000, 3:00:00 AM1/20/00
to
In article <tc2c8s87l94ccnjgg...@4ax.com>,

Joachim Bungert <jb...@d63500.de> writes:
> also gut,
> ich probiere es mal:
> z.B. N79°59`59.9``,W179°59`59.9` gibt Dir einen Punkt, genauer als 4m
> (gerechnet mit 40.000km Erdumfang) der Fehler variiert unter anderem
> je nach Position.
> Nun liegt es an Dir, wieviel Arbeit Du Dir machst das zu kodieren um
> es kleiner zu kriegen. Unter Verwendung des ASCII Zeichensatzes
> kommst. Du z.b. auch mit N¦;;9 aus.
> N bleibt N
> ¦ =Alt-179
> ;=Alt-59
> ;=Alt-59
> 9 bleibt 9
>
> Ein paar Steuerzeichen mußt Du halt umdefinieren oder Deinen
> Zeichensatz erst bei Alt-50 oder so beginnen.
> Ich bin kein Programmierer, bin mir aber sicher, ein Zeichen läßt sich
> noch einsparen. Das kann man jetzt beliebig weiter spinnen.
> Gruß
> Jockel
Also, ich sag es mal so: fuer jede koordinate N/E brauchst Du unter
diesen Voraussetzungen
log_2( 40000 km / 5m) = log_2 (4/5 * 10^7 ) = 6 * log_2(10) + log_2(8)
= 22.9.....
Bits.
Man koennte etwas besser sein, indem man cos() in der zweiten koordinate
beruecksichtigt, ist aber eher nicht von praktischem nutzen.
Also Antwort:
Insgesamt 2*23 Bit = 46bit < 6 Byte
Das gilt allerdings nur, falls wenige Punkte, die gleichmaessig ueber die
Erde verteilt sind, gespeichert werden, sonst gibt es wesentlich bessere
Verfahren. (Teile und herrsche, die Informatiker halt)

Ich hoffe, Dir geholfen zu haben,

tschoe,

Tilman

--
-----------------------------------------------------
Tilman Schulz til...@momo.math.rwth-aachen.de
Lehrstuhl B fuer Mathematik / RWTH Aachen
Templergraben 64 / 52067 Aachen
0241-804537


Heinrich Schlack

unread,
Jan 20, 2000, 3:00:00 AM1/20/00
to
Amin Hamdan schrieb:

> vielen dank fuer die echt schnelle beantwortung.
> wenn ich es richtig verstanden habe, ist ein sinnvolles
> format (alle Teilwerte positiv):
> <Himmelsrichtung, Laenge/Breite, Minuten, Sekunden>
> (...)

> ps: da mit zweierpotenzen gerechnet wird, bleiben
> ungenutzte Wertebereiche ueber. Fuer die Laengengrade
> sind dies 255 - 180 = 75. Auch die koennte man noch
> verwenden, aber wir wollen ja nicht uebertreiben!
Und dann könntest du die Daten noch komprimieren, da sich nachfolgende
Datensätze seltenst in allen Teilwerten ändern - z.B indem Du immer nur
die Delta-Sekunden abspeicherst zusammen mit einem vorangestelltem
Ankündigungsbit bei größeren Änderungen, daß jetzt wieder ein
Absolutdatensatz folgt.
Gruß Heinrich "der Speicherausknautscher"

Amin Ahmad

unread,
Jan 20, 2000, 3:00:00 AM1/20/00
to

Tilman Schulz wrote:
> Joachim Bungert writes:
> > (...)

> > z.B. N79°59`59.9``,W179°59`59.9` gibt Dir einen Punkt, genauer als 4m
> > (gerechnet mit 40.000km Erdumfang) der Fehler variiert unter anderem
> > je nach Position.
> > (...)

>
> Also, ich sag es mal so: fuer jede koordinate N/E brauchst Du unter
> diesen Voraussetzungen
> log_2( 40000 km / 5m) = log_2 (4/5 * 10^7 ) = 6 * log_2(10) + log_2(8)
> = 22.9.....
> Bits.
> (...)

> Also Antwort:
> Insgesamt 2*23 Bit = 46bit < 6 Byte
> (...)

hmmm...dass ist dann wohl das mathematisch Minimum. Ich werde
die Koordinaten aber wohl dennoch so uebernehmen, wie es Joachim
(ich darf Dich, doch beim Vornamen nennen :) vorgeschlagen hat.
Meine einzige Frage dabei ist allerdings noch, inwieweit sich
die Genauigkeit verbessert, wenn ich zwei Nachkommastellen bei
den Sekunden verwende.

Wenn noch jemand vorschlaege hat, wie man WGS-84 Koordinten
da mit einfliessen lassen kann, waere ich sehr dankbar...

mfg
amin!

Joachim Bungert

unread,
Jan 21, 2000, 3:00:00 AM1/21/00
to
mojn, mojn,
die Genauigkeit geht von ungefähr besser 4 Metern auf ungefähr besser
40cm. Die Frage ist nur ob das Sinn macht, ob Du ein System
zusammenstellen willst, das derartig genaue Daten sinnvoll einsetzen
kann. Standard GPS, selbst ohne SA liefert etwa +/- 15Meter.

Zu den letzten beiden Zeilen mußt Du noch etwas mehr schreiben,
ich habe keine Ahnung was Du damit meinst. Es ist doch piepegal was
für ein Referenzdatum die zu speichernden lat/lon Werte haben. Du mußt
Sie nur bei Bedarf richtig umrechnen oder darstellen. Was möchtest Du
da zu welchem Zweck wohin einfließen lassen.

Gruß
Jo

Heinrich Pfeifer

unread,
Jan 22, 2000, 3:00:00 AM1/22/00
to

Amin Hamdan <ah...@yahoo.com> schrieb in im Newsbeitrag:
388603E2...@yahoo.com...

Bevor du jetzt mit Hilfe dieser Newsgroup das Rad nochmal erfindest, ein
Hinweis auf das interne Datenformat, in dem die Garmin-Geräte Kooridnaten
speichern und übertragen:

Länge und Breite werden jeweils mit einer Long-Zahl, also 4 Bytes,
dargestellt. Dabei entsprechen 180° der Zahl 2^31, und südliche bzw.
westliche Werte sind negativ.

Die erzielbare Auflösung beträgt dabei 180° / 2^31 = 0.0003". Eine Minute
entspricht bekanntlich einer Seemeile (gilt für die Breite, und für die
Länge am Äquator), also haben wir hier 0.0003/60 *1852 m = 9.26 mm, wenn ich
mich nicht verrechnet habe.

Die meisten Garmin-Geräte maskieren von diesen 4 Bytes jedoch die unteren 6
Bits weg, dadurch erhöht sich die Stufung um den Faktor 64 auf 0.6 m -
sollte immer noch genügen.

Ein weiteres Bit ließe sich einsparen bei der Breite, da hier der
Wertebereich nur +-90° beträgt, statt der darstellbaren +-180°.

Hope this helps

Heinrich Pfeifer www.gartrip.de

0 new messages