Fehlende Straßen aus OpenStreetMap-Daten mit Osmose

9

Ich versuche derzeit, Straßennetze aus OpenStreetMap-Dumps zu extrahieren, die auf Geofabrik heruntergeladen wurden . Ich verwende den folgenden Befehl für die Osmose (Version 0.45), um Straßen zu extrahieren:

osmosis \
--rbf input.osm.pbf \
--tf reject-relations \
--tf accept-ways highway=motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,secondary_link,tertiary,tertiary_link,unclassified,residential \
--tf reject-ways highway=construction \
--lp --wb output_roads.osm.pbf

Dies sollte eine Datei zurückgeben, die alle Autostraßen außer Nebenstraßen enthält.

Es fehlen jedoch einige (und manchmal viele) Straßen. Ich habe diesen Befehl an 3 Eingabedateien ausprobiert:

  • Französische Region "Midi-Pyrénées": Das Straßennetz scheint fast vollständig zu sein. Die Attributtabelle enthält 72010 Elemente.
  • ganz Frankreich: viele Straßen fehlen. Die Attributtabelle enthält nur 65803 Elemente (weniger als eine einzelne Region). Alle Arten von Autobahnen sind betroffen: primär zu Wohngebieten. Es gibt kein offensichtliches Muster für die fehlenden Straßen.
  • ganz Europa: Fast alle Straßen fehlen. Die Attributtabelle enthält 62092 Elemente (weniger als ganz Frankreich ...).

Ich denke, es gibt einige Einschränkungen, die mir weder beim Befehl osmosis noch bei der Ausgabedatei bekannt sind. Was mache ich hier falsch?

Dies mag nicht zusammenhängen, aber ich habe versucht, die --used-nodeOption zu verwenden, um die Größe der Ausgabedateien zu reduzieren, aber dies erzeugt immer einen Fehler ( org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create object stream writing to temporary file null.). Ich habe keine Idee warum.

Update 29/08/2018: Ich habe auch versucht, osmfilter( input.o5m --keep="highway=" > output_roads.osm) zu verwenden, mit den gleichen Ergebnissen. Ich habe Osmose und Osmfilter sowohl unter Windows 7 als auch unter Debian 9.5 (beide 64 Bit) ausprobiert.

ArMoraer
quelle
Verwenden Sie also "--tf accept-way autobahn = * \". In Ihrem Beispiel berücksichtigen Sie nicht alle Straßentypen.
Obchardon
1
Führen Sie eine aktuelle Version von Osmose aus? Und haben Sie genug freien Speicherplatz auf der Festplatte?
AndreJ
1
Klingt in Ordnung. haben Sie versucht --rb?
AndreJ
2
your suggestion gives almost the sames results (65356 elements for France): Dies hat meine Aufmerksamkeit erregt: 65356 ist genau eine 16-Bit-Werteinschränkung (2 ^ 16), wie ein Int16-Maximalwert. Ich denke, das muss die Einschränkung sein, nach der Sie suchen. Möglicherweise können Sie nicht mehr als 2 ^ 16 maximale Funktionen erhalten.
Gisnside
2
65356 ist ein roter Hering, 2 ^ 16 ist 65536.
bugmenot123

Antworten:

1

Ich würde Ihnen empfehlen, die HOT-Site zum Herunterladen von OSM-Daten zu verwenden. Sie können Daten für einen bestimmten Ort herunterladen oder sogar eine Grenze für einen Bereich zeichnen. und nur die Straße herunterladen.

https://export.hotosm.org/en/v3/exports/new/describe

yvvazsua
quelle
Ich bin mir nicht sicher, ob dies die Frage beantwortet, wie dies in der Osmose zu tun ist, aber wenn die Antwort lautet, dass Sie es nicht in der Osmose und in HOT tun können, müssen Sie zumindest zeigen, wie vergleichbare Abfragen durchzuführen sind an diejenigen in der Frage mit der Anzahl der zurückgegebenen Ergebnisse.
nmtoken