Daten selektieren

Hallo,

ich habe mir in der Geofabrik den Datensatz von OSM heruntergeladen. Von diesem Datensatz möchte ich jetzt nur die Autobahnen weiterverwenden. Wie geht das?

  1. der bz2-Datensatz ist extrahiert 13GB groß, damit kann man nix anfangen
  2. wie wird eine pbf Datei weiterverarbeitet? Im OSM wiki ist da zwar was erklärt aber sehr mangelhaft und meiner Meinung nach nicht verständlich.
  3. Die Programme, die dort vorgeschlagen werden verstehe ich auch nicht. Sind auch nicht wirklich erklärt.
  4. Anscheinend geht das mit dem Programm osmosis. Eine anständige Anleitung ist ebenfalls nicht vorhanden. Das geht irgendwie mit Konsoleneingabe oder so, aber wo gibt man das ein? Nirgendwo ist ein Wort dazu geschrieben.
  5. Welche Software brauche ich um mein Vorhaben zu erfüllen?

Schon mal vielen Dank

zu 1. Du kannst Dir doch auch nur Deutschland oder Europa herunterladen, könnte doch schon reichen, oder?

zu 3.
http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#XML_Tasks
http://wiki.openstreetmap.org/wiki/DE:HowtoMinutelyHstore#Hstore_Abfragen

zu 2. pbf ist von osmosis direkt lesbar, siehe Schalter --read-pbf (–rb)

zu 4. eine lokale postgresql-DB, in der Du entweder über osmosis direkt den Import machst (siehe Doku z.T. bei Details_Usage), das ist dann das osmos simple Schema.
Oder Import in osm2pgsql DB Schema, mach dazu eine Suche im osm Wiki.
Ersteres Schema ist näher an Original osm DB-Struktur, letztere Struktur ist in Richtung Rendern (mapnik) besser.

Vergleich der beiden DB-Schemata gabs auch vor kurzem hier im Forum und/oder auf talk-de.

Viele Grüße

Dietmar

Ich habe ja auch nur den Deutschlandsatz heruntergeladen. Habe ich vergessen zu schreiben.

Was muss da jetzt genau konkret machen. Verstehe da kein Wort. Den Befehl irgendwo eingeben? Ist da irgendwo ne Datei oder wie geht das?

Du musst osmosis mit den Parametern aufrufen. Ist doch auf den Hilfeseiten im wiki alles erklärt.

bspw.

–rb file=germany.osm.pbf --tf … --rx file=autobahn.osm

Beim tagfilter musst du dann mal im wiki schauen, wie du das löst.

Lies dir am besten mal die Anleitung von osmosis durch

http://wiki.openstreetmap.org/wiki/DE:Osmosis

Dort ist auch ein Beispiel für deine Aufgabenstellung, die Befehlszeile könnte dann z.B so aussehen

osmosis --rb germany.osm.pbf --way-key-value keyValueList=“highway.motorway, highway.motorway_link” --used-node --wx motorways.osm.gz

Insgesamt hast du aber recht: Das Filtern ganz gezielter Sachen aus den OSM Daten ist bisher leider nicht so gut geregelt und möglich. Die OSM Daten werden ja immer umfangreicher mittlerweile wird ja jeder Gullideckel und jeder Baum in der Stadt gemappt :slight_smile:

Es fehlt aber noch die Möglichkeit einzelne Daten schnell und gezielt zu filtern. Evt. sollte man langsam mal überlegen, die Daten in verschiedene “Layer” aufzuteilen, z.B ein Layer mit Flächen, einer mit Infrastrukturdaten und ein weiterer für andere Sachen.

So könnte man sich je nach Bedarf nur die Landnutzungsdaten, nur die Straßen, nur die administrativen Grenzen oder was auch immer man haben möchte, schnell besorgen.

Momentan geht das (besonders wenn man nur bestimmte Daten … diese aber weltweit haben möchte) nur wenn man sich eine lokale DB mit dem kompletten planet File anlegt oder viel Zeit hat und die Daten aus der planet.osm filtern.

Für kleinere Gegenden geht das noch einigermassen problemlos mit den Funktionen von osmosis.

Das ganze ist ziemlich auf die Bedürfnisse von Linux-Nutzern zugeschnitten, die am liebsten alles mit Kommandozeilenbefehlen machen.

Unter Windows XP kommst du mit Start/Ausführen/cmd dorthin. Dann musst du mit DOS-Befehlen zum passenden Verzeichnis wechseln, und die Befehle eintippen. Wenn es einmal läuft, helfen selbsterstellte batch-Dateien weiter.

Ich hab hier mal ein paar Beispiele zusammengetragen;
http://wiki.openstreetmap.org/wiki/User:Ajoessen/Osmosis

Am besten bearbeitest du die batchdateien mit notepad++, und das CommandWindowHere-Powertoy ist für WindowsXP ganz hilfreich. Mit Windows7 muß man auf andere Hilfsmittel zurückgreifen.

gruß,
ajoessen