Gelöst&Howto: osmconvert "verliert" ways beim schneiden von srtm-daten

Und was passiert wenn du sie gar nicht schneidest? Weil bei mir gehts ja auch nicht wenn ich einfach die 17GB Rohdaten als Einzeldatei versuche per splitter>mkgmap zu benutzen. Osmosis läuft sowieso nicht bei mir (bekomme nur Version 0.29 noch zum laufen).

Evtl liegts bei mir ja auch daran, dass ich NICHT osmosis 0.39 benutze. Weil mkgmap splitter gibt die Daten ja auch als pbf aus, und schreibt evtl denselben Fehler wie neue Osmosis Versionen…
Nett wäre übrigens ein vollständig gepatchtes phyghtmap – die patches bekomme ich zumindest nicht automatisch gemerged, und händisch ist nicht wirklich ein Spaß…

Werde mal versuchen matplotlib 0.98 unter opensuse zu installieren.

Meine Patches werde ich mergen sobald ich das points=0 Problem final gelöst habe. Solange würde ich mit der phyghtmap 1.23 + patches weiterarbeiten, ich sehe in 1.24 und neuer noch keinen Vorteil.

Thorsten

Hallo,

ok, alle Patches sind auf phyghtmap 1.25 portiert. Ich habe auch den matplotlib 1.0.0 Patch getestet, die Ausgabe ist identisch zu phyghtmap 1.23:
https://build.opensuse.org/package/files?package=phyghtmap&project=home%3Akukuk

Ich habe meine --max-nodes Option nach --max-way-nodes umbenannt, also bitte Scripte anpassen :wink:

Thorsten

Sehr schön!
Selbst mit den 88 Byte großen, “leeren” Dateien wie lon-17.00_-16.00lat27.00_28.00_srtm3.osm bei den Kanaren klappt das.

Nur die “Bounding Box”-Zeile befinde ich als etwas befremdlich.
Wie auch unter
http://wiki.openstreetmap.org/wiki/OSM_XML
zu lesen bin ich von osmconvert

gewohnt.

Dein

mmmh, strange :wink:

Hi,

da muss noch ein Fehler sein, der bei mir nicht auftritt.

Die Bounding Box bilde ich so ab, wie sie von Osmosis (dort aber meist mehr Nachkommastellen mit 0 aufgefüllt) erzeugt wird, z.B:

Beim “Extrahieren” der Koordinaten aus den Dateinamen läuft wohl was falsch. Wie lautet denn die (fast letzte) Bildschirmausgabe in Zeile “Bereich: …”?

Bereich: lon-13.00_-12.00lat27.00_28.00_srtm3.osm 10000000,lon-13.00_-12.00lat27.00_28.00_srtm3.osm 10000000,lon-19.00_-18.00lat28.00_29.00_view3.osm 12015776,lon-19.00_-18.00lat28.00_29.00_view3.osm 12015776

Sollte eigentlich beispielsweise so aussehen:

Bereich: 55.00,6.00,45.00,19.00

Der Fehler liegt beim Extrahieren aus den Dateinamen. Die IDs stehen ja auch noch so dabei wie in der erstellten Tabelle. Keine Ahnung wie ich den Fehler reproduzieren kann, wenn es bei mir funktioniert. Der Umgang mit den Zeichenketten ist ja nicht von den Kachelgrenzen, also vom Gebiet, abhängig. (Nächster Fallstrick dann aber vielleicht bei negativen Koordinaten).

Ja, das wird’s wohl sein, denn neben den Kanaren

phyghtmap --area=-19:27:-12:30 --jobs=1 --line-cat=500,250 --osm-version=0.6 -start-node-id=2000000000 --step=20 --viewfinder-mask=3

tritt es auch noch bei Island auf:

phyghtmap --area=-25:62:-12:68 --jobs=1 --osm-version=0.6 --step=20 --viewfinder-mask=3

Die Schrift ist zu klein, war mir gar nicht aufgefallen. :slight_smile:

Das lässt sich einfach bewerkstelligen. Gib mir ein paar Minuten.

Edit: Fertig - Zeile bounds=“.lon([-0-9.])([-0-9.])lat([-0-9.])([-0-9.]).” geändert.

Fein, nun klappt’s auch bei Atlantis :wink:

Kenn mich ja mit dem Garmin-Zeugs nicht aus.
Wenn ich das nehme


$ java -ea -jar ./mkgmap-gmap-mdr-r2161.jar --max-jobs=1 --reduce-point-density=5.4 --transparent --overview-mapname=mapset00 --keep-going --gmapsupp nixkaputt.osm.pbf
Error at line 1, col 1
Bad file format: nixkaputt.osm.pbf
Error parsing file
Exception in thread "main" java.lang.NullPointerException
        at uk.me.parabola.mkgmap.combiners.FileInfo.getFileInfo(FileInfo.java:139)
        at uk.me.parabola.mkgmap.main.Main.endOptions(Main.java:406)
        at uk.me.parabola.mkgmap.CommandArgsReader.readArgs(CommandArgsReader.java:126)
        at uk.me.parabola.mkgmap.main.Main.main(Main.java:112)
$ echo $?
1
$

, gehts nicht:

Nehme ich jeodch das


$ java -ea -jar ./mkgmap-r2166/mkgmap.jar --max-jobs=1 --reduce-point-density=5.4 --transparent --overview-mapname=mapset00 --keep-going --gmapsupp nixkaputt.osm.pbf
$ echo $?
0
$

dann geht’s. Jedenfalls erhalte ich dann 2 Dateien: 63240001.img & gmapsupp.img
Was immer das sein mag :wink:

Das Perl-Skript zum Zusammenführen der phyghtmap-Tiles habe ich aktualisiert:

Link: http://dl.dropbox.com/u/1677057/process_phyghtmap_data.pl

Änderungen: sort numerically, handling of empty osm files, file globbing for windows7 added

Es sollte jetzt unter Linux, OS X und Windows funktionieren.

Klaus

Sehr fein :slight_smile:

Dürfen wir uns nochwas wünschen, ja?

Wenn per osmconvert nach pbf und zurück-nudle:
osmconvert phyghtmap_result.osm --out-pbf > phyghtmap_result.osm.pbf
osmconvert phyghtmap_result.osm.pbf > phyghtmap_result.osm2
osmconvert topo.osm --out-pbf > topo.osm.pbf
osmconvert topo.osm.pbf > topo.osm2
und dann diff-e:
diff phyghtmap_result.osm2 topo.osm2
2a3
>

wünschen wir uns eine Bounding Box :wink:

Der Wunsch kommt nicht von ungefähr, denn siehe

$ java -ea -jar ./mkgmap-r2166/mkgmap.jar --max-jobs=1 --reduce-point-density=5.4 --transparent --overview-mapname=mapset00 --keep-going --gmapsupp phyghtmap_result.osm.pbf
com.google.protobuf.InvalidProtocolBufferException: Message missing required fields: bbox
at com.google.protobuf.UninitializedMessageException.asInvalidProtocolBufferException(UninitializedMessageException.java:81)
at crosby.binary.Osmformat$HeaderBlock$Builder.buildParsed(Osmformat.java:308)

$ java -ea -jar ./mkgmap-r2166/mkgmap.jar --max-jobs=1 --reduce-point-density=5.4 --transparent --overview-mapname=mapset00 --keep-going --gmapsupp topo.osm.pbf
$

Danke schön.

Sehe ich das Richtig - mit mkgmap Version 2161 gehts, aber nicht mit aktueller mkgmap Version? Das wäre für mich schon okay, kannst du die Version rausfinden ab der es nicht mehr geht? Dann könnte man den Fehler besser suchen. Ich werde wohl auch noch mal mit alten Versionen spielen, wenn das bei dir den Ausschlag gegeben hat. Hätte mal gedacht jeder hier arbeitet mit der aktuellsten Version (svn) von je splitter und mkgmap.

Nein, das siehst Du falsch.

Geht nicht (bei mir):
mkgmap-gmap-mdr-r2161.jar [.jar] Jan 4 13:42

Geht (bei mir):
mkgmap-r2166 [.tar.gz] [.zip] [src] Jan 10 21:33

Dann ist doch alles Ok, mkgmap-gmap-mdr-r2161.jar ist obsoleted durch mkgmap-r2166 und der Bug ist inzwischen gefixt. Lösch einfach Dein r2161, Du brauchst es nicht mehr.

Thorsten

GRRRRRRRRRRR - ich hab meinen Fehler gefunden. osmprotobuf.jar war bei mir am Server irgendwie kaputtgegangen, bzw hat lokal gefehlt. Sprich alle Fehlermeldungen mit der “1” waren Fehler beim lesen der pbf Dateien wegen osmprotobuf missing/kaputt. Dein Beitrag hat mich drauf gebracht. Sorry für die Confusion… (hat sich nur auf Fehler der letzten Versionen der Skripte bezogen, weil vorher hat ja auch das bearbeiten von direkt als .osm gesplitteten Dateien nicht funktioniert)

Was sagt eigentlich diese Fehlermeldung von osmconvert aus?
openSUSE-121-64-minimal:/home/contourlines # ./osmconvert phyghtmap_result.osm -B=/home/contourlines/bounds/austria.poly -o=austria.osm.pbf
osmconvert Error: way 99729759 has too many refs.
osmconvert Error: way 99935004 has too many refs.
osmconvert Error: way 100140144 has too many refs.

(Toolchain:
phyghtmap --jobs=1 --osm-version=0.6 --area=9.51767:46.38806:17.12636:49.00216 --step=20 --output-prefix=at --line-cat=500,100 --viewfinder-mask=1 --max-nodes=100000000000
perl merge_osm.pl at_lon*
./osmconvert phyghtmap_result.osm -B=/home/contourlines/bounds/austria.poly -o=austria.osm.pbf
)

Phyghtmap 1.23 mit kukuks patches. Die 1.25 funktioniert bei mir nicht mit max-way-nodes patch (ohne waren die Ergebnisse korrekt).

Hallo!

Das hatten wir hier schon. Und außerdem ist das Open Source :wink:
osmonvert.c:
has too many refs
=> if(refide>=refidee)
=> int64_t* refidee; // end address of array
=> refidee= refid+global_maxrefs;
=> static int64_t global_maxrefs= 100000;
=> Wenn ein Weg mehr als 100000 Knoten hat, gibt’s Knatsch.

Etwas verwunderlich ist auch Deine “–max-nodes”-Sizing,
zuerst hast Du “250” und jetzt “100000000000” :wink:

Ups danke, hab ganz vergessen das anzupassen nachdem ich wieder zu Version 1.23 zurück bin (doch blöd wenn ein Command je nach Version/patch zwei Bedeutungen hat…)