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
これは「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(ネットエディット) を使って、交差点や信号、レーンの設定など、よりリアルな道路ネットワークに仕上げていく操作を一つひとつ紹介していきます。
どうぞ楽しみにしていてください。
サンプルクエリに不具合があったようなので更新しました。