x

Mehrere Relationen mit osmosis extrahieren


  1. Mehrere Relationen mit osmosis extrahieren · Cruiser (Gast) · 05.11.2013 22:38 · [flux]

    Hallo,

    ich weiss nicht, ob ich hier den richtigen Ansprechpartner finde, ansonsten leitet mich bitte weiter.

    Ich versuche mit osmosis Relationen aus einer OSM Datei zu extrahieren.

    osmosis.bat␣--read-xml␣file=mecklenburg-vorpommern.osm␣--tf␣accept-relations␣landuse=farmland␣--used-way␣--used-node␣--write-xml␣file=mecklenburg-vorpommern_farmland_rel.osm
    

    und

    osmosis.bat␣--read-xml␣file=mecklenburg-vorpommern.osm␣--tf␣accept-relations␣landuse=residential␣--used-way␣--used-node␣--write-xml␣file=mecklenburg-vorpommern_residential_rel.osm
    

    liefert mir da auch schon das passende Endergebnis. Es muss doch aber auch die Möglichkeit geben das ganze in einer Abfrage zu realisieren, oder geht das nicht? Etwa solch eine Abfrage

    osmosis.bat␣--read-xml␣file=mecklenburg-vorpommern.osm␣--tf␣accept-relations␣landuse=farmland␣landuse=residential␣--used-way␣--used-node␣--write-xml␣file=mecklenburg-vorpommern_residential_rel.osm
    

    die aber, sobald man mehrere key/value Paare dranhängt, nicht mehr das richtige Ergebnis liefert.
    Für Ways und Nodes gibt es ja den --way-key-value Parameter, mit dem man mehrere key/value Paare angeben kann. Wieso gibt es so einen für Relationen nicht, oder habe ich den nur nicht gefunden?

    Gruß,
    Tim


    • Re: Mehrere Relationen mit osmosis extrahieren · Oli-Wan (Gast) · 05.11.2013 22:49 · [flux]

      Nach http://wiki.openstreetmap.org/wiki/Osmo … .28--tf.29 ist eine Komma-separierte Liste gefragt.

      ...␣--tf␣accept-relations␣landuse=farmland,residential␣...
      

      Ansonsten wäre osmfilter eine überlegenswerte Alternative.


    • Re: Mehrere Relationen mit osmosis extrahieren · wambacher (Gast) · 05.11.2013 23:00 · [flux]

      Cruiser wrote:

      die aber, sobald man mehrere key/value Paare dranhängt, nicht mehr das richtige Ergebnis liefert.
      Für Ways und Nodes gibt es ja den --way-key-value Parameter, mit dem man mehrere key/value Paare angeben kann. Wieso gibt es so einen für Relationen nicht, oder habe ich den nur nicht gefunden?

      jo: "Multiple values can be specified for one key, in a comma-separated list."

      siehe https://wiki.openstreetmap.org/wiki/Osm … .28--tf.29

      allerdings hab schon lange nichts mehr mit tf gemacht.

      gruss
      walter

      edit: Oli-Wan war schneller. ;(


    • Re: Mehrere Relationen mit osmosis extrahieren · Cruiser (Gast) · 05.11.2013 23:05 · [flux]

      Oli-Wan wrote:

      Nach http://wiki.openstreetmap.org/wiki/Osmo … .28--tf.29 ist eine Komma-separierte Liste gefragt.

      ...␣--tf␣accept-relations␣landuse=farmland,residential␣...
      

      Ansonsten wäre osmfilter eine überlegenswerte Alternative.

      Ah Mist, falsches Beispiel genommen. Die Komma-separierte Liste habe ich auch schon entdeckt gehabt, geht ja aber nur bei gleichen Keys. Wie sähe es denn aus, wenn ich dazu nun noch

      waterway=riverbank
      

      mit aufnehmen wollte?
      osmfilter kenn ich noch nicht, werde mal nach googeln. Gäbe es dort für mein Einsatzgebiet einen Beispielcode 😄


    • Re: Mehrere Relationen mit osmosis extrahieren · Oli-Wan (Gast) · 05.11.2013 23:20 · [flux]

      Nicht getestet:

      osmfilter␣mäcpomm.osm␣--keep-relations="landuse=farmland␣=residential␣or␣waterway=riverbank"␣-o=filterstaub.osm
      

      Leider kann osmfilter kein pbf, aber das scheint für Dich keine Einschränkung zu sein.

      Edit: fehlendes "=" eingefügt.


    • Re: Mehrere Relationen mit osmosis extrahieren · Cruiser (Gast) · 06.11.2013 11:44 · [flux]

      Oli-Wan wrote:

      Nicht getestet:

      osmfilter␣mäcpomm.osm␣--keep-relations␣"landuse=farmland␣=residential␣or␣waterway=riverbank"␣-o=filterstaub.osm
      

      Leider kann osmfilter kein pbf, aber das scheint für Dich keine Einschränkung zu sein.

      Danke für das Beispiel, werde es heute Abend einmal ausprobieren mit osmfilter.

      Kann ich also davon ausgehen, das mein eigentlicher Wunsch, alles in einen osmosis Aufruf zu verpacken, nicht umsetzbar ist?


    • Re: Mehrere Relationen mit osmosis extrahieren · wambacher (Gast) · 06.11.2013 12:08 · [flux]

      Cruiser wrote:

      Kann ich also davon ausgehen, das mein eigentlicher Wunsch, alles in einen osmosis Aufruf zu verpacken, nicht umsetzbar ist?

      Wie kommst du denn darauf? Wir haben dir doch genau beschrieben, wie es in osmosis geht. Sogar 2x von 2 Leuten.

      Gruss
      walter


    • Re: Mehrere Relationen mit osmosis extrahieren · rayquaza (Gast) · 06.11.2013 12:20 · [flux]

      wambacher wrote:

      Wie kommst du denn darauf? Wir haben dir doch genau beschrieben, wie es in osmosis geht. Sogar 2x von 2 Leuten.

      Aber nur für den selben Key 😉


    • Re: Mehrere Relationen mit osmosis extrahieren · Oli-Wan (Gast) · 06.11.2013 12:21 · [flux]

      Cruiser wrote:

      Oli-Wan wrote:

      Nicht getestet:

      osmfilter␣mäcpomm.osm␣--keep-relations␣"landuse=farmland␣=residential␣or␣waterway=riverbank"␣-o=filterstaub.osm
      

      Leider kann osmfilter kein pbf, aber das scheint für Dich keine Einschränkung zu sein.

      Danke für das Beispiel, werde es heute Abend einmal ausprobieren mit osmfilter.

      Kann ich also davon ausgehen, das mein eigentlicher Wunsch, alles in einen osmosis Aufruf zu verpacken, nicht umsetzbar ist?

      Doch. Für das residential-farmland-riverbank-Beispiel:

      osmosis␣--rx␣mäcpomm␣--tf␣accept-relations␣landuse=farmland,residential␣waterway=riverbank␣--used-way␣--used-node␣--wx␣filterstaub.osm
      

      Der Hinweis auf osmfilter zielte eher darauf ab, daß osmfilter schneller ist, und in der Handhabung m.E. auch etwas bequemer. osmosis kann dafür mehr.


    • Re: Mehrere Relationen mit osmosis extrahieren · Cruiser (Gast) · 06.11.2013 12:34 · [flux]

      Oli-Wan wrote:

      Cruiser wrote:

      Oli-Wan wrote:

      Nicht getestet:

      osmfilter␣mäcpomm.osm␣--keep-relations␣"landuse=farmland␣=residential␣or␣waterway=riverbank"␣-o=filterstaub.osm
      

      Leider kann osmfilter kein pbf, aber das scheint für Dich keine Einschränkung zu sein.

      Danke für das Beispiel, werde es heute Abend einmal ausprobieren mit osmfilter.

      Kann ich also davon ausgehen, das mein eigentlicher Wunsch, alles in einen osmosis Aufruf zu verpacken, nicht umsetzbar ist?

      Doch. Für das residential-farmland-riverbank-Beispiel:

      osmosis␣--rx␣mäcpomm␣--tf␣accept-relations␣landuse=farmland,residential␣waterway=riverbank␣--used-way␣--used-node␣--wx␣filterstaub.osm
      

      Der Hinweis auf osmfilter zielte eher darauf ab, daß osmfilter schneller ist, und in der Handhabung m.E. auch etwas bequemer. osmosis kann dafür mehr.

      Die Aufreihung der Key/Value Paare im osmosis Aufruf hatte ich ja eigentlich genau so probiert und bekam da aber zu wenig raus? Habe ich wohl was falsche gemacht!?

      Wenn osmfilter sogar schneller ist, werde ich aber einfach den Tip weiter verfolgen. Wenn ich osmfilter mit o5m Dateien filtere, soll es ja sogar noch schneller sein.


    • Re: Mehrere Relationen mit osmosis extrahieren · Oli-Wan (Gast) · 06.11.2013 12:43 · [flux]

      Cruiser wrote:

      Wenn osmfilter sogar schneller ist, werde ich aber einfach den Tip weiter verfolgen. Wenn ich osmfilter mit o5m Dateien filtere, soll es ja sogar noch schneller sein.

      Zur Orientierung: ich habe gerade aus ein und demselben Testgebiet die residential-farmland-riverbank-Relationen samt Mitgliedern ausgefiltert. osmfilter braucht mit o5m-Ausgangsmaterial 2 Sekunden, osmosis mit pbf 46 Sekunden. D.h. osmosis hatte durch Verwendung des schnelleren Formats sogar noch einen Vorteil.
      Der osmfilter-Aufruf (Schnellschuß) oben war übrigens noch nicht vollständig. Besser:

      osmfilter␣mäcpomm.osm␣--keep-relations="landuse=farmland␣=residential␣or␣waterway=riverbank"␣--keep-nodes=␣--keep-ways=␣-o=filterstaub.osm
      

      Neben dem Verzicht auf pbf hat osmfilter auch noch den Nachteil, nicht mit Streams umgehen zu können, weil es den Input mehrfach liest. Aber auch das sollte für Windows-Nutzer keine Einschränkung darstellen.


    • Re: Mehrere Relationen mit osmosis extrahieren · wambacher (Gast) · 06.11.2013 13:03 · [flux]

      rayquaza wrote:

      wambacher wrote:

      Wie kommst du denn darauf? Wir haben dir doch genau beschrieben, wie es in osmosis geht. Sogar 2x von 2 Leuten.

      Aber nur für den selben Key 😉

      ok, hab ich überlesen gehabt getan 😉


    • Re: Mehrere Relationen mit osmosis extrahieren · Cruiser (Gast) · 06.11.2013 14:14 · [flux]

      Oli-Wan wrote:

      osmfilter braucht mit o5m-Ausgangsmaterial 2 Sekunden, osmosis mit pbf 46 Sekunden. D.h. osmosis hatte durch Verwendung des schnelleren Formats sogar noch einen Vorteil.

      Dann ist doch aber osmfilter schneller und hat den Vorteil?


    • Re: Mehrere Relationen mit osmosis extrahieren · Cruiser (Gast) · 06.11.2013 22:35 · [flux]

      @Oli-Wan Danke für deinen Tip mit osmfilter und das Beispiel. Hat super geklappt und ich habe meine gewünschten Ergebnisse sogar extrem viel schneller als mit osmosis bekommen.