OSMembrane für Dummies

Ich verzweifele gerade an an OSMembrane.
Ich kriege immer kryptische Fehlermeldungen.
Könnte mir einer erklären, welche “Bausteine” ich zusammensetzen muss, um einen Extrakt so zu bearbeiten, dass nur ways und nodes mit railway=* rauskommen?
Ich hab jetzt read-pbf, dann way filter (mit way-key railway), dann node filter (mit used-node), dann write-xml.
Als Fehlermeldung bekomme ich:

Was tun?

Eigentlich sollte das mit Osmosis/Osmembrane ohne Weiteres gehen. Hast du mal versucht, die verschiedenen Schritte einzeln zu gehen? Also, zuerst nur railway-nodes filtern. Dann mal probieren, ob das mit den ways (inkusive used-nodes) klappt. Falls beides einzeln funktioniert, kannst du hinterher mergen.

Soweit ich weiß, kann man sich bei Osmembrane auch das generierte Osmosis-Kommando anzeigen lassen. Wie sieht das aus?

Falls es gar nicht klappt, kannst du es über einen anderen Weg versuchen. Beispiel:


./osmconvert bremen.osm.pbf -5 >bremen.o5m
./osmfilter bremen.o5m --keep-nodes-ways="railway=" --keep-relations="" >railways.osm

Es spricht aus meiner Sicht aber nichts dagegen, auch die Relationen mit einzubeziehen, denn Wege können auch aus mehreren Wegteilen bestehen und deswegen als Relationen gespeichert sein. Das Filter-Kommando schaut dann sogar einfacher aus:


./osmfilter bremen.o5m --keep="railway=" >railways.osm

Grüße
Markus

Das sieht so aus:

Ich bin wirklich völlig unwissend (siehe Thread-Titel :roll_eyes:), was ich mit diesen Codes machen sollte. Ich weiß ja noch nicht mal, wie ich Osmosis selbst öffnen könnte.

Oh, um dir dabei zu helfen, müsstest du zumindest verraten, welches Betriebssystem zu verwendest… :slight_smile:

EDIT:
Hast du schon mal einen Befehl per Kommandozeile eingegeben? Im Fall von Windows: Start->Programme->Zubehör->Befehlseingabe (oder so ähnlich).

Also, ich hab Windows XP, aber noch nie mit Kommandozeile gearbeitet.
Deswegen stürzte ich mich auf OSMembrane, weil ich glaubte, dass das meinen PC-Kenntnissen entspricht.
Also lieber anhand von OSMembrane erklären!
Danke für die Mühe!

Uff, ok. :slight_smile:
Dann versuch es besser nochmal mit Osmembrane, das Tool ist wirklich eine feine Sache. Was die Fehlermeldung betrifft, muss ich leider passen. :frowning: Hoffentlich schaut ein Osmosis-Profi hier rein!

Beim anderen Weg müsstest du dir die beiden Programme (osmconvert.exe und osmfilter.exe) downloaden (am besten in den Ordner, in dem auch deine OSM-Dateien liegen). Anschließend die Kommandozeile aufrufen. Dann per Kommando in den betreffenden Ordner wechseln. Beispiel:


cd c:\mein_Ordner_mit_osm-Dateien

Und nun die Kommandos ausführen, aber ohne “./”, denn das braucht man nur bei Linux. Beispiel:


osmconvert.exe bremen.osm.pbf -5 >bremen.o5m
osmfilter.exe bremen.o5m --keep-nodes-ways="railway=" --keep-relations= >railways.osm

Direktlinks:
m.m.i24.cc/osmconvert.exe
m.m.i24.cc/osmfilter.exe

Ein kleiner Schritt für die Menschheit, aber ein großer für mich! Du hast es geschafft, mich zum erfolgreichen Benutzen von Kommandozeilen zu bewegen. Vielen Dank!!! Nicht, dass ich jetzt durchblicken würde, aber ich merk mir all das hier und weiß für die Zukunft Bescheid. :stuck_out_tongue:
PS: Wobei… ich wüsste schon gerne, wie ich das mit OSMembrane hinbekomme.

Klasse, freut mich! Du hast es aber wirklich super schnell geblickt. :slight_smile:

Das mit OSMembrane würde mich auch interessieren. Hoffentlich kommt noch wer und klärt uns auf…

Uff, mit dem osmosis-Zeug kenn’ ich mich auch nicht so aus.

Hab’ auch erst Variante A genommen (osmosis in Version 0.39):
read-pbf way-filter(way-key:railway) node-filter(used-node:idList) write-xml
Lief auch durch, hat aber zuviele Nicht-Eisenbahn nodes dabei gehabt.

Dann
read-pbf universal-filter(tag-filter:reject relations) universal-filter(tag-filter:accept-ways railway=*) node-filter(used-node:idList) write-xml
genomen, schaut halbwegs ok aus.

Dies ist mehr oder weniger eine 1:1-Umsetzung des osmosis-Beispiels aus dem Wiki,
wodurch mir der Vorteil von OSMembrane gegenüber der Kommandozeile nicht ganz ersichtlich wird …

Ciao,
Frank

PS
Wenn man die guten osm*-tools in Debian unter /home/user/bin steckt, braucht man auch kein “./” mehr :wink:

Was für die Verwendung mit osmembrane wichtig zu wissen wäre, klappt denn der Aufruf mit anderen Parametern? Findet osmembrane überhaupt osmosis? Läßt sich osmosis überhaupt starten? Wieviel Speicher (Ram) hast du?

Moin Moin,

an eurer Stelle würd ich nicht so viel Wind um OsmMembrane machen: Das Ding ist tot.

Es wurde im Rahmen einer Projektarbeit (*) entwickelt und ist sanft “eingeschlafen”. Selbst auf der Website ist Funkstille, da dort Fragen von den Autoren nicht beantwortet werden.
Inzwischen ist es durch Erweiterungen von Osmosis, die nicht integriert wurden, total veraltet. Allerdings ist es OS und könnte von Interessierten weiter gepflegt werden.

Gruss
Walter

*) OSMembrane was developed by Christian Endres, Jakob Jarosch and Tobias Kuhn at the University of Stuttgart during a practical training task initiated by Igor Podolskiy who also provided the bbox-chooser component.

Vorteil für die Leute, für die Kommandozeile ein Buch mit so vielen Siegeln ist, dass sie auch aus dem Lesen der Wiki nicht schlau werden. Soll es viele von geben: Intensiv-Mapper, die sich in Windows nie jenseits der grafischen Oberfläche bewegen.

Das ist mal ne Antwort. OK. Schade aber auch!

Nochmal Dank an Marqqs!

Hallo zusammen,

Michael Schulze hat mich auf den Thread aufmerksam gemacht - ich bin der aktuelle Maintainer von OSMembrane, und so ganz tot möchte ich das Teil auch nicht wissen, zumal es auch mir bei meiner Arbeit hilft :slight_smile: Wobei ich zugegebenermaßen nicht wirklich viel Zeit in OSMembrane investieren kann. Leider. (Und ich nicht wusste, dass wirklich so viele es verwenden. Bin positiv überrascht :)) Ich versuche, in der nächsten Zeit da ein bisschen Bewegung reinzubekommen.

Abgesehen von der grundsätzlichen Diskussion: ich habe mir gerade diesen Thread durchgelesen und kann irgendwie nicht ganz nachvollziehen, was der Bug bzw. das Problem eigentlich ist. Die ursprüngliche Fehlermeldung von Osmosis sieht für mich auf den ersten Blick nach einem Bug in Osmosis 0.38 aus, der in 0.39 gefixt wurde (Quoting-Probleme im Startskript von Osmosis). Allerdings war das damals unter Linux, nicht unter Windows. Die Kommandozeile, die du (Geogast) gepostet hast, sieht auch recht gut aus, die sollte eigentlich funktionieren.

Ich habe auch schon größere Filterpipelines in OSMembrane gebaut, ironischerweise gerade für die Eisenbahnen, das war mein ursprünglicher Anwendungsfall :slight_smile: Geogast, könntest du vielleicht die Pipeline, die nicht funktioniert, aus OSMembrane abspeichern (als .osmembrane-Datei) und mir per E-Mail (igor.podolskiy@vwi-stuttgart.de) schicken? Ich könnte dann schauen, was da wo schief geht und ob OSMembrane tatsächlich einen Bug bei der Generierung von Kommandozeilen hat.

Viele Grüße aus Stuttgart
Igor

Es ist schön zu hören, dass du an der Weiterentwicklung interessiert bist. Vielleicht hilft als erstes eine Überprüfung ob osmosis überhaupt ausführbar ist. Vielleicht ist osmosis gar nicht auf der Kommandozeile greifbar, weil die Pathvariable nicht angepasst ist. In dem Falle wäre eine Möglichkeit die Osmosis.bat zu suchen und dann den Pfad vorne anzustellen sicher eine nützliche Option, wenn der Fehler denn bemerkt wird.
Wie due den Kommentaren entnehmen kannst stellt auch das bereits eine Hürde für GUI gewöhnte Nutzer dar.

Ja, das ist generell so ein Punkt, der in OSMembrane bisher zu wenig zum Tragen kam, aus verschiedenen Gründen (die alle eigentlich nicht mehr bestehen). Das einzige, womit man es ein für alle Mal lösen könnte, wäre, Osmosis direkt in OSMembrane als Bibliothek zu integrieren, sodass man keine weitere Installation bräuchte. Zwar müsste man dann immer noch einen extra Prozess wegforken, damit man keine Speicherprobleme und ähnliches in der GUI bekommt, aber im einfachen Fall würde damit zumindest der Classpath stimmen.

Ich glaube allerdings nicht, dass das aktuelle Problem von Geogast damit zu tun hat: wenn Osmosis schon Fehlermeldungen über eine ungültige Kommandozeile wirft, muss es ja schon irgendwie gestartet sein :slight_smile:

Hallo Igor,

kannst du in der (sehr guten) Anleitung zu OSMembran ev. auch ein ganz kleines Beispiel ergänzen,
damit man anhand eines funktionierenden Beispiels das Programm einmal kennenlernen kann.
Ich habe sehr lange gebraucht, bis ich überhaupt etwas brauchbaren ausgeben konnte.

Jetzt habe ich es zwar geschaft, eine XML-Datei zu schreiben, kann diese aber mit JOSM nicht öffnen.
Fehlermeldung: Ungültiger Wert “-1” des Attributs ‘version’ für das Objekt mit der ID …

Walter

Das dürfte daran liegen, dass du ein pbf als Quelle hattest, dass keine solchen Infos beinhaltet.