私は現在、GeofabrikにダウンロードされたOpenStreetMapダンプから道路ネットワークを抽出しようとしています。次のosmosis(バージョン0.45)コマンドを使用して道路を抽出しています:
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
これにより、サービス道路を除くすべての自動車道路を含むファイルが返されます。
ただし、一部の(場合によっては多くの)道路がありません。私は3つの入力ファイルでこのコマンドを試しました:
- 「ミディピレネー」フランスの地域:道路網はほぼ完成しているようです。属性テーブルには72010要素が含まれています。
- フランス全体:多くの道路がありません。属性テーブルには65803要素のみが含まれます(単一の領域未満)。すべてのタイプの高速道路が影響を受けます。行方不明の道路には明らかなパターンはありません。
- ヨーロッパ全体:ほとんどすべての道路が欠落しています。属性テーブルには、62092の要素が含まれています(フランスのすべてより少ない...)。
osmosisコマンドにも出力ファイルにも、私が気付いていないいくつかの制限があると思います。ここで何が悪いのですか?
これは無関係である可能性があり--used-node
ますが、出力ファイルのサイズを減らすためにオプションを使用しようとしましたが、これは常にエラー(org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create object stream writing to temporary file null.
)を生成します。なぜか分かりません。
2018年8月osmfilter
29 input.o5m --keep="highway=" > output_roads.osm
日更新:()を使用しても同じ結果が得られました。Windows 7とDebian 9.5(両方とも64ビット)でosmosisとosmfilterを試しました。
--rb
か?
your suggestion gives almost the sames results (65356 elements for France)
:これは私の注意を引きました:65356は、Int16の最大値のように、値(2 ^ 16)の16ビット制限です。それはあなたが探している制限だと思います。たぶん、あなたは2 ^ 16の最大機能を超えることができないでしょう。