【SUMO利用ガイド7】Overpass Turboを使用した地図データ読込み

1. Overpass Turboとは?

Overpass Turbo(オーバーパス・ターボ)は、
OpenStreetMap(OSM)という地図データから、必要な情報だけを取り出せる無料のツールです。

  • ブラウザで https://overpass-turbo.eu/ を開くだけで使える
  • ほしい地物(道路、建物、コンビニ、学校など)を選んでデータ化できる
  • 抽出したデータをパソコンに保存して、研究やシミュレーションに活用できる

「地図から必要な情報だけサッと取り出せる魔法の虫眼鏡」みたいなツールです。


2. 「クエリ」ってなに?

Overpass Turboでは、「クエリ」というお願い文を入力してデータを取り出します。
クエリとはつまり、
👉 「こんな条件で探してね」とコンピュータに伝える指示文です。

たとえば:

  • 「高速道路だけ見せて」
  • 「主要道路だけ欲しい」
  • 「バス停の位置を全部表示して」

こういう条件を文字で書いたものがクエリです。

以下はデフォルトで入力されているサンプルのクエリです。

/*
This is an example Overpass query.
Try it out by pressing the Run button above!
You can find more examples with the Load tool.
*/
node
[amenity=drinking_water]
({{bbox}});
out;

これは、「水飲み場を抽出して」という意味のクエリです。

左上の実行ボタンを押すと

このように水飲み場を抽出してくれます。


3. クエリの例

ちょっと難しそうですが、最初はコピーして使うだけで大丈夫です。

[out:xml][timeout:180];
(
  // 高速・幹線国道(ランプ付き)
  way["highway"~"^(motorway|trunk|primary)(_link)?$"]({{bbox}});

  // 県道・市道
  way["highway"~"^(secondary|tertiary)$"]({{bbox}});

  // 細街路
  way["highway"~"^(residential|unclassified)$"]({{bbox}});
);
out body;
>;
out skel qt;

これが意味しているのは:

👉[out:xml]:出力を OSM XML形式 にする指定

👉[timeout:180]:処理制限を180秒に延長。広域検索向け。市街地だけなら省略可

👉way:道路(線データ)を対象
[“highway”~”…”]:…の道路を抽出

  motorway=高速
  trunk=幹線国道
  primary=国道
   (_link)?=ランプも含む
  secondary=県道主要路線
  tertiary=市道など幹線
  residential = 住宅街道路
  unclassified = 集落内の生活道路   

👉({{bbox}}):抽出範囲を画面に表示されている範囲のみに限定

👉out geom tags:形状(座標列)+属性(道路名等)を出力

つまり「表示中の地図範囲で、これらの道路だけを取り出してね」というお願い文です。


広域ネットワークを抽出するときは下記のようにクエリを調整します。

[out:xml][timeout:180];
(
// 高速本線+ランプ
way["highway"~"^motorway(_link)?$"]({{bbox}});

// 国道系(trunk/primary)+ランプ
way["highway"~"^(trunk|primary)(_link)?$"]({{bbox}});

);
out body;
>;
out skel qt;

余計な細街路を外して高速+国道系+ランプだけに絞ります。

4.データ抽出

ブラウザで Overpass Turbo を開く

1.地図を動かして欲しいエリアを表示する

2.左の入力欄に上のクエリをコピー&ペースト

3.上の ▶(実行ボタン)をクリック

4.地図上に青く道路が表示されたら成功!

5.「エクスポート」ボタン → 「OSM生データ」→ export.osm として保存

ダウンロードしたデータは、下記のように作業フォルダに移動します。


データ数が多いと、大きな負荷がかかるという警告がでることもありますが、「そのまま続行」を押すと頑張って抽出してくれます。

5. データを整える

Overpass Turboから出力したファイルは、そのままではSUMOがうまく読めません。
そこで、要素の並びを整える簡単なPythonスクリプト(道路ラボオリジナル)を使います。

1.Pythonをインストール(→別記事「Pythonの入れ方」参照)

2.「ordered.py 」を会員専用ページ ー ダウンロード のページから入手し、同じフォルダに保存してください。(完全無料なのでご安心を)

3.コマンドプロンプトを開いて次を実行

これは「Pythonというプログラム実行環境を使って、ordered.py というスクリプトを実行する」という意味です。まぁ、細かいことは気にせずに、そのまま打ち込んでください。

4.export_ordered.osm ができれば準備完了!

6.SUMO用ネットワークファイルに変換

最後に、SUMOに付属している netconvert を使います。

コマンドプロンプトに続けて、下記をコピペして実行してください。

netconvert --osm-files export_ordered.osm -o network.net.xml --lefthand --speed-in-kmh --junctions.join --tls.guess-signals --sidewalks.guess.from-permissions --crossings.guess

また、エラーがたくさん出ていますが、最後に「Success.」と出ているので成功です。

これで export_ordered.net.xml が生成されます。

出来た「export_orderedi.net.xml」をNETEDITからファイルオープンしてみて下さい。
幹線道路ネットワークの下地が出来上がりです 🚗💨


できましたね!ついに道路ネットワークが形になりました。最初に地図が描き出された瞬間は感動だったと思います。

でも、拡大してよく見てください。交差点の接続が甘かったり、余分な線が飛び出していたり、信号機も右折レーンもありません。これはまだ“下地”が出来上がった段階にすぎません。

この章はここで一区切りです。次の章では NETEDIT(ネットエディット) を使って、交差点や信号、レーンの設定など、よりリアルな道路ネットワークに仕上げていく操作を一つひとつ紹介していきます。

どうぞ楽しみにしていてください。

道路ラボをフォローすることで
新しい記事が公開されたときに、メールでお知らせします。

是非フォローしてください。

お預かりしたメールアドレスに対して、無断で広告メールをお送りすることは一切ございません。
個人情報の取扱いについては、[プライバシーポリシー]をご参照ください。

「【SUMO利用ガイド7】Overpass Turboを使用した地図データ読込み」への1件のフィードバック

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール