エアロトヨタコラムColumn
- エアロトヨタ株式会社 TOPページ
- 知る・楽しむ
- エアロトヨタコラム
- QGISでネットワーク解析「到達圏解析」
QGIS
QGISでネットワーク解析「到達圏解析」
地図上に避難所があり、その避難所まで500mの範囲を表示しようとする場合に用いられるGIS機能はバッファですね。
けれども、このバッファに囲まれた範囲のどこからでも500mで避難所にたどり着けるかというと、それは違いますね。
人は鳥のように目標とする場所にまっすぐに飛んで行けるわけもなく、道路や通路などを曲がり曲がって歩いて向かいます。じゃあバッファに囲まれた範囲は、運(?)が良ければ500mで避難所にたどりつけるし、そうでなけりゃもっと長い道のりを歩かないといけません。
道に沿って500mを計算して図示してくれれば?
そんな機能があればいいですよね。それがQGISのネットワーク解析「到達圏解析」です。
QGISのネットワーク解析(Network Analysis)は、道路や鉄道などのネットワークでルート検索や最短経路探索、到達圏(サービスエリア)解析などを行う機能です。
ネットワーク解析の主な解析機能として以下の機能があります。
1、最短経路探索(Shortest Path)
出発点から目的地までの最短ルートを検索し表示します。
2、到達圏(サービスエリア)解析
指定した地点から、一定距離や時間内で到達できる範囲を検索し表示します。
これは便利ですね。QGISのネットワーク解析を使えば、道沿いに500m歩けば避難所に到達できる範囲を表示することができます。これは地域の皆さんにもわかりやすい地図ができますね。
しかし、ここで残念なお知らせがあります。
最近は自治体や国交省等の行政機関が様々な地図を公開されていて、それらを無償で自由に使えるようになってきてはいるのですが、QGISのネットワーク解析を利用するには、ネットワーク構造になった道路データが必要です。
ネットワーク構造というのは、単に道路中心線が交わって描かれているのではなくて、交差点が「接続点(Node)」として描かれ、道路そのものは「接続点をつなぐ線(Link/Edge)」として描かれている必要があります。
行政機関で作成し公開されている道路の多くは「道路縁」で、それは道路の範囲を示す区域を図示したもので、道路のつながりを示したものではありません。道路台帳の路線図は道路を線で表していますが接続点がなく、道路同士のつながりはありません。
そこで私がお勧めする地図がOpenStreetMapです。最近ではOpenStreetMapも有名になってきて、皆さんも様々な機会に目にされることが増えてきたと思います。OpenStreetMapは誰もが自由に使える無償の地図というだけでなく、地図のデータそのものを簡単に取り出して利用できます。そしてOpenStreetMapの道路はNodeとLinkでできた道路ネットワークなのです。
では、OpenStreetMapから道路ネットワークを取り出す方法を説明します。
ブラウザでOpenStreetMap(https://www.openstreetmap.org/export#map)を開き、取得したい地域の地図を表示します。
上段のエクスポートを選択、青地白抜き文字の「エクスポート」を選択します。広い範囲をエクスポートする場合はその下のOverpass APIを選択します。
「map.osm」がエクスポートファイルですので、それを任意の場所に保存します。
次に、QGISを開きエクスポートしたmap.osmをドラッグ&ドロップします。そうすると道路だけでなく建物や鉄道などのエクスポートした範囲のすべての地物が表示されていることが確認できます。
1 表示されているレイヤの中から「map ― lines」だけを表示する。
2 「map ― lines」のプロパティを開く。
3 「地物のシンボロジを調整」で、シンボルの定義を「単一定義」から「カテゴリ値による定義」に変更する。
4 カテゴリ値に「highway」を選択して「分類」ボタンを押す。
5 分類された値リストの最下段の「その他の値」のチェックを外して「OK」を押す。
これで道路(highway)データだけがQGIS上に表示されます。
表示された道路をすべて選択して、そのレイヤをエクスポート(新規ファイルに「選択地物」を保存)して、GeoJSON等の形式に平面直角座標系(距離で解析を行うデータは平面直角座標系にします)で保存します。
なお、OpenStreetMapに道路が十分に描かれていない場合は、あなた自身がマッパーとなって道路を描くことができます。(https://openstreetmap.jp)
道路のネットワークデータが手に入れば、QGISのプロセッシングツールの中にある、「ネットワーク解析」を使い、今回は「サービスエリア(始点レイヤ)」で避難所という「レイヤ」に格納された各避難所への到達点をすべて解析します。
ネットワーク解析を実行すると新しく「サービスエリア(線)」というレイヤが作成されます。これが避難所までの500m以内の道路となります。サービスエリア(線)レイヤの線の太さを調整していただくと見やすい地図になります。
バッファ500mの範囲内にも、500mでは避難所にたどり着けない部分が沢山あることがわかりますね。
ただし、地形の登り下りなどの勾配は考慮されていないので、その部分は注意が必要です
自分で使いたいデータを自分で作って、それがオープンデータ(OpenStreetMap)として誰かの役に立つというのも、おつですよ。