見出し画像

【実習編】非専門家のためのQGIS ~OpenStreetMapのデータを入手しよう~

I. はじめに

QGISではOpenStreetMap(OSM)のタイルサーバを登録することで、OSMの地図をQGIS上に表示することができます(登録方法の解説はこちら)。

画像1

しかしながら、表示されるデータは画像形式なので、表示された地図についてユーザ側で色を変えたり、個々のフィーチャの表示を切り替えたりすることはできません。背景図として利用するには便利ですが、分析やオリジナルの地図作成に利用するには不向きです。自由な加工を求めると、シェープファイルやGeoJSONといったGISデータが必要になります。

実は、OSMは、タイル画像の提供だけでなくその画像の基であるGISデータも公開しています。というより、そもそもOSMのプロジェクトが「みんなで作る地図」なので、誰でもOSMのデータを入手・閲覧して、加工や修正を行い、アップロードできるような仕組みや権利体制になっています。

そこで、今回は、OSMのGISデータを入手しQGISで表示する方法を紹介します。


II. OSMデータを入手しよう

1. OSMデータの入手方法

それでは、OSMデータを入手してみましょう。OSMデータの入手方法は大まかに3つあります。

1. マップ上から範囲を指定してダウンロード
2. データ配布サイトからダウンロード
3. プログラミングによってダウンロード

1. のマップ上から範囲を指定してダウンロードする方法は、1番お手軽です。ただし、1度に入手できるダウンロードサイズに制限が掛かるため、広域を取得することはできません。

2. の方法について、「Planet OSM」というウェブサイトで全世界データを公開しています(※1)。
しかし、Planet OSMデータは非常に膨大(圧縮されたXML形式で84GB:2020年1月時点。展開すればその10倍以上のサイズになる?)なため、OSMを扱う企業によって地域別に分割したファイルが提供されています。有名どころは、GeoFabrikという海外サイトで、国・地方単位でデータを提供しています。また、提供ファイルがOSMの更新を素早くキャッチアップしている点もポイントです(※2)。GeoFabrikについては、この記事の最後に補足として紹介しています。

3. の方法は、プログラム内で入手するデータの種類や範囲といった条件を指定し、自動でダウンロードできる点が強みです。pythonであれば「overpy」やネットワーク解析に特化した「osmnx」といったパッケージが用意されています。また、「overpass turbo」という、ウェブ上でクエリを書いてデータを取得できるサービスもあります(こちらの記事でoverpass turboを使った例を示しています)。

今回は1.の方法でデータを入手してみましょう。

※1 ミラーサイトも複数あります。
※2 他所のダウンロードサイトでは、OSMの更新がなかなか反映されず、入手できるデータが最新の状態ではないものもあります。

---   ---   ---   ---   ---   ---   ---   ---

2. マップ上からOSMデータを入手する方法

まず、下記のリンクからOSMのページにアクセスしましょう。
Google等の検索サイトからアクセスする場合の注意点として、日本のOSM団体が運営するURLが「openstreetmap.jp/」となっている方ではなく、本家の「openstreetmap.org/」にアクセスします。

下図のようなページが表示されればOKです。

画像2

続いて、ページ上部にある「エクスポート」をクリックし、サイドバーを表示させます。
サイドバーの上部には、出力範囲を示す座標値が表示されています。しかし、座標値ではどの範囲をダウンロード対象としているのかよく分かりません。そこで、その下にある「ドラッグして別の領域を選択」をクリックし、入手したい範囲を再設定しましょう。

画像3

範囲を指定したら、[ エクスポート ] ボタンをクリックします。すると、「map.osm」というファイルのダウンロードが開始されます。
このとき、指定範囲が広すぎると次のようなページに移行しダウンロードが実行されません。ここで、制限の対象であるノード数は、言い換えれば情報量のようなものなので、農村部では少なく都市部では多くなります。したがって、農村部では広範囲を一度にダウンロードできますが、都市部では範囲を狭めなければ制限に引っ掛かってしまいます。一度にどのくらいの領域をダウンロードできるかを見積もることは難しいので、トライ&エラーで範囲を指定しましょう。

画像4


III. OSMデータをQGISで表示させよう

これまで扱ってきたGISデータといえばシェープファイルでしたが、今回入手したファイルは拡張子が「.osm」という見慣れない形式になっています。でも心配ありません。最新のQGISでは「.osm」形式の読み込みに対応しているため、シェープファイルの読み込みと同じような操作で、地図を表示させることができます。
ちなみに、osmファイルをテキストエディタで開いて中身を見ると、XML形式をベースとして情報がコーディングされていることを確認できます。

QGISを起動し、[ Ctrl ] + [ Shift ] + [ V ]でデータソースマネージャのベクタウィンドウを開きます。エンコードで「UTF-8」を指定、ソースから先ほどダウンロードした「map.osm」を選択し、追加しましょう。このとき、追加するベクタレイヤの選択を聞かれます。とりあえず、[ 全てを選択 ] して [ OK ] をクリックしましょう。

画像5

下図のように、OSMのデータをQGISに表示させることができました。

画像6

QGISで読み込んだOSMデータは、さまざまなフィーチャがジオメトリごとにまとめてレイヤー化されています(※3)。
例えば、「map_points」レイヤには商店やバス停、ポスト、街路樹などがごちゃまぜに入っています。どのポイントが何を表しているかは、属性テーブルを開いて確認できます。
OSMデータを「使えるデータ」にするには、このごちゃまぜのデータに対して選択&抽出、フィルタリング、カテゴリによるシンボルの塗分けなどを駆使し、用途に合わせて情報を整理することが必要そうですね。

※3 ここでいうフィーチャ(地物)とは、道路や商店、緑地、建物領域といった地理空間上にある各々のオブジェクトのこと。ジオメトリは、ポイント、ライン、ポリゴンのこと。

画像7

上図は「map_points」レイヤの属性テーブル。「name」や「other_tags」の情報をうまく拾うことで、必要な情報を抽出できそうです。


ここでは例として、ポストを表すポイントを抽出してみましょう。
属性テーブルを確認すると、「other_tags」フィールドに、「"amenity"=>"post_box"」という情報が入力されていることが分かります。そこで、属性検索を利用して「other_tags」フィールドに「post_box」が含まれるポイントを選択します。

画像8

属性検索の方法について、別の記事では条件式を指定して行う方法を紹介しましたが、今回はフォームを使った検索を行ってみましょう。属性テーブルのメニューの中から [ フォームを使った地物選択/フィルタ ] ボタンをクリックします( [ Ctrl ] + [ F ] でもOK)。

画像9

ボタンをクリックすると、下図のようにウィンドウが切り替わります。ここで、「other_tags」のボックスに「post_box」と入力、検索条件を「含む」とし(ボックスに検索ワードを入力すると自動で「含む」になります)、[ 地物の選択 ] ボタンを押して検索を実行しましょう。

検索実行後は、このウィンドウは閉じて構いません。また、属性テーブルのウィンドウに戻すには、ウィンドウ右下のボタンをクリックして切り替えます。

画像10

属性検索によって、ポストを示すポイントが選択されました(下図では赤点で示しています)。

画像18

この状態で、レイヤから「エクスポート」→「選択地物の保存」とすれば、ポストのみのポイントデータが得られます。
このとき、データの出力形式をシェープファイルやGeoJSONなどに指定すれば、osm形式からGISでおなじみのファイル形式に変換することもできます。
つまり、osm形式のデータが対応していないシステムやプログラムを使うときは、QGISをフォーマット変換ツールとして利用できます(※4)。

※4 QGISでosm形式を他のGIS形式に変換できるということは、すなわちGDALで変換できるということですね。
$ ogr2ogr -f "ESRI Shapefile" file_name map.osm
という感じでコマンドを実行すれば、QGISを立ち上げなくてもosmファイルをシェープファイルに変更できます。"ESRI Shapefile"の記述を変更すれば、他の形式にも変換できます。

画像12


IV. おわりに

今回はOSMデータの入手方法とQGISへの取り込みについて紹介しました。言い換えれば、OSMの世界への入り口を示しました。OSMは、日本だけでなく全世界で整備され使用されているデータであるため、その利用事例も世界中のユーザが紹介しています。その事例記事の中には、OSMだけでなくQGISの習熟にも参考になる記事がたくさんあります。OSM×QGISで地理情報のスキルを獲得していきましょう。


補足:OSMのデータ配布サイト「GeoFabrik」

GeoFabrikにアクセスすると次のようなページが開きます。データのダウンロードページは「Maps & Data」の先にあります。

画像13

次のページでは、「Downloads」をクリックします。

画像14

更に、ダウンロードサーバーページへのリンクをクリックします。

画像15

次のページの左下の表から、データをダウンロードできます。「Sub Region」の各地域のリンクをクリックすると、その地域の国別ダウンロードページに移り、さらに国名のリンクをクリックすると国内の地域別ダウンロードページに移動します。

画像16

日本の地方別ダウンロードページの場合、ダウンロードできるファイル形式は、pbf形式、シェープファイル形式、osmを圧縮したbz2形式の3種類あります。pbf形式はバイナリ化されたファイルで、圧縮されたbz2形式よりもファイルサイズが小さくなっています。QGISはpbf形式にも対応しているので、そのままQGISに追加できます。

画像17

記事の内容でもそれ以外でも、地理やGISに関して疑問な点があれば、可能な限りお答えしたいと思います。