x

OSMembrane für Dummies


  1. OSMembrane für Dummies · Geogast (Gast) · 15.09.2011 20:13 · [flux]

    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:

    15.09.2011 21:12:11 org.openstreetmap.osmosis.core.Osmosis main
    SCHWERWIEGEND: Execution aborted.
    org.openstreetmap.osmosis.core.OsmosisRuntimeException: Only one default (un-named) argument can exist per task. Arguments 15 and 14 have no name.
    at org.openstreetmap.osmosis.core.cli.CommandLineParser.parseTask(CommandLineParser.java:317)
    at org.openstreetmap.osmosis.core.cli.CommandLineParser.parse(CommandLineParser.java:90)
    at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:74)
    at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:31)

    Was tun?


    • Re: OSMembrane für Dummies · Marqqs (Gast) · 15.09.2011 20:39 · [flux]

      Geogast wrote:

      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


    • Re: OSMembrane für Dummies · Geogast (Gast) · 15.09.2011 20:46 · [flux]

      Marqqs wrote:

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

      Das sieht so aus:

      C:\Programme\osmosis-0.39\bin\osmosis.bat ^
      --read-pbf file=XYZ.osm.pbf outPipe.0=1 ^
      --way-key keyList=railway inPipe.0=1 outPipe.0=2 ^
      --used-node idTrackerType=BitSet inPipe.0=2 outPipe.0=3 ^
      --write-xml file="blabla" inPipe.0=3


    • Re: OSMembrane für Dummies · Geogast (Gast) · 15.09.2011 21:10 · [flux]

      Marqqs wrote:

      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

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


    • Re: OSMembrane für Dummies · Marqqs (Gast) · 15.09.2011 21:12 · [flux]

      Geogast wrote:

      Ich bin wirklich völlig unwissend (siehe Thread-Titel 🙄), 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... :-)

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


    • Re: OSMembrane für Dummies · Geogast (Gast) · 15.09.2011 21:16 · [flux]

      Marqqs wrote:

      Geogast wrote:

      Ich bin wirklich völlig unwissend (siehe Thread-Titel 🙄), 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... :-)

      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!


    • Re: OSMembrane für Dummies · Marqqs (Gast) · 15.09.2011 21:35 · [flux]

      Geogast wrote:

      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. :-)
      Dann versuch es besser nochmal mit Osmembrane, das Tool ist wirklich eine feine Sache. Was die Fehlermeldung betrifft, muss ich leider passen. :-( 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


    • Re: OSMembrane für Dummies · Geogast (Gast) · 15.09.2011 21:57 · [flux]

      Marqqs wrote:

      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. 😛
      PS: Wobei... ich wüsste schon gerne, wie ich das mit OSMembrane hinbekomme.


    • Re: OSMembrane für Dummies · Marqqs (Gast) · 15.09.2011 22:20 · [flux]

      Geogast wrote:

      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. 😛
      PS: Wobei... ich wüsste schon gerne, wie ich das mit OSMembrane hinbekomme.

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

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


    • Re: OSMembrane für Dummies · kellerma (Gast) · 15.09.2011 23:50 · [flux]

      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 😉


    • Re: OSMembrane für Dummies · viw (Gast) · 16.09.2011 08:57 · [flux]

      Geogast wrote:

      PS: Wobei... ich wüsste schon gerne, wie ich das mit OSMembrane hinbekomme.

      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?


    • Re: OSMembrane für Dummies · wambacher (Gast) · 16.09.2011 09:08 · [flux]

      viw wrote:

      Geogast wrote:

      PS: Wobei... ich wüsste schon gerne, wie ich das mit OSMembrane hinbekomme.

      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.

    • Re: OSMembrane für Dummies · Geogast (Gast) · 16.09.2011 10:35 · [flux]

      kellerma wrote:

      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 ...

      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.

      wambacher wrote:

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

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

      Nochmal Dank an Marqqs!


    • Re: OSMembrane für Dummies · ipodolsk (Gast) · 17.09.2011 18:43 · [flux]

      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 🙂 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 🙂 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


    • Re: OSMembrane für Dummies · viw (Gast) · 17.09.2011 18:59 · [flux]

      ipodolsk wrote:

      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 🙂 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 🙂 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.


    • Re: OSMembrane für Dummies · ipodolsk (Gast) · 18.09.2011 00:31 · [flux]

      viw wrote:

      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 🙂


    • Re: OSMembrane für Dummies · Walter Schlögl (Gast) · 03.10.2011 18:30 · [flux]

      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


    • Re: OSMembrane für Dummies · aighes (Gast) · 03.10.2011 18:32 · [flux]

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