OpenStreetMap データおよび ESRI Shape データの入手と切り出し

【概要】GIS(地理情報システム)で利用する地図データの入手方法を解説する。OpenStreetMap データと ESRI Shape データを対象に、Planet.osm、GEOFABRIK、OpenStreetMap API v0.6、QGIS サンプルデータセットからのダウンロード方法と、osmium-tool を用いたデータ切り出し手順を、Windows パソコンで動作する範囲で説明する。

【本資料の前提】

【目次】

  1. 全世界データ:Planet.osm
  2. 国・地域別データ:GEOFABRIK
  3. 必要範囲のデータ切り出し(Windows)
  4. 小範囲データ:OpenStreetMap API v0.6
  5. 学習用 Shape データ:QGIS サンプルデータセット
  6. 関連情報

用途に応じた入手方法の選択

OpenStreetMap データの構成要素

OpenStreetMap データは、node、way、relation の3種類の要素で構成され、これらを組み合わせて地理情報を表現する。

全世界データ:Planet.osm

Planet.osm は、OpenStreetMap の全世界の地図データを1つのファイルにまとめたものである。全データを一括で入手できるが、ファイルサイズが大きい(.osm.pbf 形式でも 80GB 前後)。特定の国・地域だけが必要な場合は、次節の GEOFABRIK を利用する。

サーバ負荷への配慮: 多くの利用者が共有するサーバであるため、不必要なダウンロードは避けること。

  1. Planet.osm の Web ページを開く https://wiki.openstreetmap.org/wiki/Planet.osm
  2. ミラーサイトからダウンロードする。本家サイトへの負荷軽減のためミラーサイトを利用する。利用可能なミラーの一覧は日本語版のページ https://wiki.openstreetmap.org/wiki/JA:Planet.osm で確認できる。

国・地域別データ:GEOFABRIK

GEOFABRIK は、OpenStreetMap データを大陸別・国別に分割して配布している。必要な地域のデータのみをダウンロードできるため、Planet.osm より効率的である。

以下のファイル形式から選択できる。

サーバ負荷への配慮: 多くの利用者が共有するサーバであるため、不必要なダウンロードは避けること。

  1. ライセンス条項を確認する。データを利用する前に、https://www.geofabrik.de/data/download.html に記載のライセンス条項を確認する。OpenStreetMap データは ODbL(Open Database License、利用時に出典表示が必要なオープンデータライセンス)の下で提供されている。
  2. データをダウンロードする。アジア地域のデータは以下の URL から入手できる。日本のデータは「japan」のリンクからたどれる。

    https://download.geofabrik.de/asia/

    GEOFABRIK のダウンロードページ

本資料では、ここで入手した .osm.pbf(例:japan-latest.osm.pbf)を次節「データ切り出し」の入力として使い、切り出した結果を QGIS で表示する流れで進める。

必要範囲のデータ切り出し(Windows)

GEOFABRIK や Planet.osm からダウンロードした .osm.pbf から、必要な範囲(市町村など)のみを抽出できる。ここでは Windows 上で動作する osmium-tool を使用した方法を説明する。osmium-tool は .osm.pbf を直接処理でき、圧縮・展開の中間操作を必要としない。

osmium-tool の入手

osmium-tool は OpenStreetMap データを処理するコマンドラインツールである。Windows では事前にインストールが必要で、パッケージ管理ツール conda(プログラムやその動作環境をまとめて導入・管理する仕組み)を使う。conda が未導入の場合は、先に Miniforge(conda を含む軽量な配布版。https://conda-forge.org/download/ から Windows 用インストーラを入手)をインストールする。導入後、スタートメニューから「Miniforge Prompt」を開き、以下を実行する。

conda install -c conda-forge osmium-tool

「Miniforge Prompt」で osmium --version を実行し、バージョンが表示されれば利用できる。

切り出し範囲の座標を調べる

切り出しには、対象範囲を囲む座標(bounding box=境界ボックス。範囲を囲む長方形を、西・南・東・北の4辺の経度・緯度で表したもの)が必要である。座標は openstreetmap.org の地図画面右側「エクスポート」で範囲を指定すると読み取れる。JOSM(Java OpenStreetMap Editor)でも地図上で座標を確認できる。

同じ bounding box を表す座標は、ツールによって書式が異なる。指す方角は同じであり、対応は次のとおりである。

方角意味osmium / API の並び順osmosis のキー
西端経度(小さい方)1番目left
南端緯度(小さい方)2番目bottom
東端経度(大きい方)3番目right
北端緯度(大きい方)4番目top

osmium と API は「西,南,東,北」の順にカンマ区切りで並べ、osmosis は left/bottom/right/top のキーで個別に指定する。

コマンドの構文

「Miniforge Prompt」を開き、.osm.pbf を置いたフォルダに移動してから実行する。osmium extract は、--bbox オプションに「西,南,東,北」を経度・緯度のカンマ区切りで指定し、入力ファイルから範囲を切り出して出力ファイル(-o で指定)に書き出す。

osmium extract --bbox 西,南,東,北 japan-latest.osm.pbf -o 出力ファイル.osm.pbf

コマンド操作の例1(福岡県糸島市)

「Miniforge Prompt」を開き、.osm.pbf を置いたフォルダに移動してから実行する。ファイルサイズによっては処理に数分かかる。

osmium extract --bbox 130.0355,33.4643,130.2938,33.6690 japan-latest.osm.pbf -o itoshima-city.osm.pbf

コマンド操作の例2(福岡県福岡市)

「Miniforge Prompt」を開き、.osm.pbf を置いたフォルダに移動してから実行する。

osmium extract --bbox 130.2037,33.4308,130.5053,33.7147 japan-latest.osm.pbf -o fukuoka-city.osm.pbf

コマンド操作の例3(大分県臼杵市)

「Miniforge Prompt」を開き、.osm.pbf を置いたフォルダに移動してから実行する。

osmium extract --bbox 131.6271,32.9533,131.9218,33.2336 japan-latest.osm.pbf -o usuki-city.osm.pbf

切り出した .osm.pbf は、次節で扱う QGIS で開いて確認できる。

osmium によるデータ切り出し結果

補足:osmosis を使う場合

Java 製ツール osmosis でも切り出しは可能だが、Windows で .osm.bz2 を扱う際は標準入力の指定方法が特殊で、osmium-tool より低速である。osmosis を使う場合、標準入力に対して Windows では file=- ではなく file=CONIN$ を指定する(OpenStreetMap Wiki に記載)。.osm.pbf を直接読めば中間操作は不要になる。下記は .osm.pbf を入力とする例である。

osmosis --read-pbf file=japan-latest.osm.pbf --bounding-box left=130.0355 bottom=33.4643 right=130.2938 top=33.6690 --write-xml file=itoshima-city.osm

小範囲データ:OpenStreetMap API v0.6

OpenStreetMap API v0.6 を使用すると、別途ツールを介さず、指定した範囲のデータを直接取得できる。小範囲のデータを手軽に入手したい場合に適している。得られる形式は .osm(XML)であり、.osm.pbf とは異なるが、QGIS は両形式とも読み込める。

サーバ負荷への配慮: 多くの利用者が共有するリソースであるため、頻繁なダウンロードは避けること。

このダウンロードには範囲・件数の制限がある。bounding box は概ね 0.5 度 × 0.5 度以内で、取得できるノード数にも上限がある。広範囲のデータが必要な場合は GEOFABRIK を利用する。

取得用の URL は、bbox パラメータに「西,南,東,北」の経度・緯度をカンマ区切りで指定する(前節の対応表と同じ並び順)。下記の URL をブラウザのアドレスバーに入力すると、その範囲の .osm(XML)データがダウンロードされる。

https://api.openstreetmap.org/api/0.6/map?bbox=130.1879883,33.5219339,130.32119749999998,33.594031099999995

学習用 Shape データ:QGIS サンプルデータセット

QGIS は、本資料でデータ表示にも用いる無償の GIS ソフトウェアである。その QGIS が、操作を学ぶためのサンプルデータセット(Alaska dataset)を配布している。ESRI Shape 形式のデータが含まれており、ダウンロードと展開の後すぐに QGIS で開くことができる。前節までで切り出した .osm.pbf も、同じ QGIS で表示・確認できる。

  1. QGIS 公式サイト https://qgis.org/ を開く
  2. Download をクリックする
    QGIS 公式サイトの Download ボタン
  3. Alaska の箇所の「download the dataset」をクリックする
    Alaska サンプルデータセットのダウンロードリンク
  4. ダウンロードした zip ファイルを展開(解凍)する。Windows ではエクスプローラーで zip ファイルを右クリックし「すべて展開」を選ぶ
    展開後のサンプルデータセットのフォルダ構成

データセットの詳細は、展開後のフォルダ内にある README.html に記載されている。

OpenStreetMap データは、Garmin 製 GPS 機器向けの形式に変換して利用することもできる。

Garmin 形式 https://wiki.openstreetmap.org/wiki/JA:OSM_Map_On_Garmin