QGIS演習#02 | 施設の生活圏の空間的判定(バッファ分析)

city-data

前回の演習では、国勢調査の小地域データをもとに、「総人口」「高齢者人口」「高齢化率」を地図上に可視化しました。単純な人口の多さだけでなく、割合を見ることで、地域ごとの特徴がどのように分布しているかを確認できたと思います。

今回はそこから一歩進んで、「ある施設に着目したとき、その周辺にどのような人が住んでいるのか」という観点で分析を行います(このような分析について、徒歩5分圏=施設から半径400mなどの定義を設けて「徒歩圏分析」と呼ぶ場合もあります)。ここでいう施設とは、例えば図書館や病院などの公共施設、商業施設やイベントホールといった集客施設、駅やバス停などの交通結節点などを想定しています。

本記事では、

施設データの読み込み → 前処理(座標系の変換) → バッファの作成 → 生活圏の可視化

という一連の流れで進めていきます。なお、ここで「座標系」や「バッファ」といった用語が出てきていますが、これらは後ほど順を追って説明していきます。

前回の演習で作成した人口データに加えて、今回は施設データ(ポイントデータ)を使用します。本記事では、施設から一定距離圏を「生活圏」と定義し、施設を起点として範囲を作り、その中にどのような地域が含まれるかを確認していきます。

今回のテーマ

今回扱うのは「施設からの距離」をもとにした分析です。

例えば、

  • 病院から近い地域の人口・高齢化率はどうか?
  • 高齢化率の高いエリアは駅から徒歩圏に入っているか
  • 生活に必要な施設にアクセスしやすいか

といった視点は、まちづくりや交通の検討においてよく使われます。このような分析を行う際の基本となるのが、「バッファ」と呼ばれる処理です。

バッファとは

先にイメージをお伝えすると、バッファとは、ある地点や線から一定距離の範囲を作る処理のことです。例えば「施設から半径1km」「駅から800m」といった範囲を面として作成し、「生活圏」または「徒歩圏」として扱います。

実務では道路距離を使うケースもありますが、まずはGISの基本として、直線距離で範囲を捉えるところから始めます。

徒歩圏について

徒歩圏とは、ある施設に対して徒歩でアクセス可能と考えられる範囲のことで、一般的には距離で定義されます。ただし、その距離は用途や前提によって異なります。例えば、自治体で交通や立地の分析を行う際には、以下のような基準がよく使われます。

-鉄道駅:800m~1000m程度
-バス停:300m~500m程度

これらはあくまで目安ですが、都市や交通政策を立てる際は、このような距離をもとに「その施設がどの範囲の人をカバーしているか」を考えます。

施設情報

バッファ処理を行う際の起点となる施設は、分析の目的によって変わりますが、例えば以下のようなものがよく使われます。

  • 図書館や病院などの公共施設
  • 商業施設やイベントホールといった集客施設
  • 駅やバス停などの交通結節点

バッファ分析を行う際には、こうした施設の所在地データが必須となりますが、近年ではオープンデータとして公開されているケースも多く、比較的入手しやすくなっています。分析の目的に応じて、適切なデータを選択することが重要です。

代表的な入手先としては、例えば以下があります。

国土数値情報は整備されたデータが多く、まずはここから探すのが扱いやすいです(今回の演習でもこちらのデータを使用します)。一方で、OpenStreetMapは用途によっては細かい施設情報を取得できる場合があります。OpenStreetMapから特定の施設データを取得する方法は下記記事を参考にしていただければと思います。

QGISでOSMデータを取得・表示(QuickOSM入門)
QGISで地図データを扱う際、「道路や建物のGISデータを手軽に取得したい」ときに便利なのが、OpenStreetMap(OSM)のデータです。本記事では、QGIS上でOSMデータを取得・表示する方法…

なお、データの網羅性や更新状況はデータソースによって差があるため、実務で利用する際には内容の確認もあわせて行うようにしてください。

① 施設データの読み込み

まずは施設データをQGISに読み込みます。今回は国土数値情報(国交省)の「市区町村役場等及び公的集会施設データ1」を例にバッファ分析を行います。

国土数値情報 | 市町村役場等及び公的集会施設データ

都道府県を指定し、最新のデータのダウンロードを行います。

ダウンロードしたデータをQGISにドラッグ&ドロップすると、下図のように表示されます。
国土数値情報のデータは、ZIPファイル内にshapefileやGeoJSONなど複数の形式で収録されている場合がありますが、基本的にはいずれも同じ内容のデータです。本記事では、特にこだわりがないため扱いやすいGeoJSON形式を使用して進めます。

② 前処理(座標系の変換)

次に、バッファ作成の準備として「座標系の変換」を行います。詳しく説明すると専門的な用語が増えてくるため、本記事では敢えて端折りながら説明しますが(そのため注釈が多くなりますが)、最初のうちは「バッファ作成にはお決まりの作業なんだな」と捉えていただければ問題ありません

今回使用する施設データは、位置情報を緯度経度2の形で持つデータです。実は緯度経度は距離を計算するには少々扱いにくいデータ形式です。そのため扱いやすいデータ形式に変える必要があります。

緯度経度とは…

地球上の特定の位置を、「地球の中心(正確には地球楕円体の中心)から見た角度」で表す仕組みです。GoogleMapsをはじめ、さまざまな地図サービスで採用されており、世界中の位置を一つのルールで表現できるのが特徴です。

一方で、距離を扱うという観点では少し扱いにくい側面もあります。緯度経度はあくまで「角度」で位置を表しているため、「何メートル離れているか」といった計算は、そのままでは直感的に扱えません(実際には距離を求める計算式は存在しますが、少し複雑になります)。

少しイメージしてみると、「今いる場所から50m先」を表現する場合、「地球の中心を基準に、東に〇度、北に〇度移動する」と考えることになります。このように考えると、距離をベースにした操作にはあまり向いていないことが分かると思います。

日本国内では、このように距離を扱う目的でデータ形式を変換する際、平面直角座標系を使用することが一般的です。平面直角座標系とは、日本国内を19のブロック(これを「系」と呼びます)に分けて、それぞれの地域ごとに座標を定義したものです。特に行政が作成する地図などで広く利用されており、距離計算に適した座標系です。

例えば広島県の場合は「第3系」に該当するため、この座標系(平面直角座標系 3系)に変換する必要があります。どの地域がどの系に該当するかは国によって定められているため、対象エリアに応じて適切な系を選択します。詳細は以下も参考にしてください。

日本の平面直角座標系(19系)とEPSGコードを整理する
GISで迷わないための基礎知識GISや地図データを扱っていると、「このデータの座標系は何だろう?」「EPSGコードって結局どれを使えばいいの?」と迷う場面が必ず出てきます。特に日本では、平面直角座標系…

平面直角座標系への変換

QGISで座標系を変換するには、既存のレイヤを「別の座標系で保存」します。
操作としては、「別名で保存」と同じイメージですが、保存時に座標系を変更する点がポイントです。

まず、対象のレイヤを右クリックし、「エクスポート」→「新規ファイルに地物を保存」を選択します。表示されたダイアログで、保存形式(GeoJSONなど)と保存先を指定したうえで、「CRS(座標系)」の設定を変更します。

右側の選択ボタンから座標系一覧を開き、フィルタに「JGD2011 / Japan Plane Rectangular」と入力してください。すると、平面直角座標系が19種類並びます。末尾の「Ⅰ~ⅩⅨ」がそれぞれの系番号です。

どの系を選べばよいか分からない場合は、ウィンドウ右下の地図で対象エリアが赤く表示されるので、該当範囲を確認しながら選択します。今回は広島県のため、「JGD2011 / Japan Plane Rectangular CS Ⅲ(EPSG:6671)」を選択します。

設定が完了したら、そのまま「OK」→「OK」を押してください。

すると、新しいレイヤが追加されます。座標系の変換は内部的なデータの変更のため、見た目は元のレイヤと変わりません(同じ位置に重なって表示されます)。ただし、内部的には異なる座標系に変換されており、今回保存したレイヤはバッファ処理などの距離計算に適した形式になっています。

② バッファの作成

次に、施設から一定距離の範囲を作成します。

「ベクタ」→「空間演算ツール」から「バッファ」を選択し、以下の設定で実行します。

  • 入力レイヤ:施設ポイント(下図ではP05-22_34_3kei[EPSG:6671])
  • 距離:バッファとして指定したい距離(例:1000m)
  • セグメント:円の滑らかさを指定する値(QGISでは、バッファは実際には円ではなく多角形で表現されます。例えば「8」を指定した場合は八角形に近い形で作成されます。通常は8~16程度で問題ありません)
  • 出力レイヤ:作成したバッファをどのように保存するか(デフォルトでは「一時レイヤ」となります。一時レイヤはQGIS終了時に消えるため、必要に応じて保存してください)

設定が完了したら「OK」を押してください。

実行すると、施設を中心とした円形のポリゴンが生成されます。この円が、今回の分析における「生活圏」となります。

なお、下図では円の中心を分かりやすくするため、バッファ処理結果の「出力レイヤ」の色を60%透過にしています。元の施設ポイントを起点として、周囲に円形のバッファが作成されていることが分かるかと思います。

ポリゴンの融合

なお、生活圏を分析するときは、

  • 「施設A・Bそれぞれについて、個別に生活圏人口を知りたい」のか
  • 「施設が近くにある人口全体を知りたい」のか

を最初に意識しておく必要があります。

後者の場合、バッファ円が重なったままだと扱いづらいことがあります。例えば「バス停徒歩圏人口」を知りたい場合、多くのケースでは「どのバス停の徒歩圏か」を厳密に区別する必要はないはずです。この状態でバス停ごとに徒歩圏人口を集計し、あとから単純に合計すると、複数のバス停圏内に入っている住民を重複して数えてしまい、実態と合わない値になります。

このような場合は、重なったバッファを一つのポリゴンとしてまとめる「融合(Dissolve)」を行います。

施設ごとの分析をしたい場合は融合を行わないバッファを、単純に「施設にアクセス可能な範囲」を知りたい場合は融合後のバッファを使うことが多いです。

融合後のバッファを使用したい場合は、先ほどのバッファ作成処理時の設定画面で「結果を融合する」にチェックを入れます。

すると、重なっていたポリゴンが一つのポリゴンとして結合されることが分かるかと思います。

このポリゴンを使うことで、重なっている部分を重複して扱わずに、「施設が近くに存在する範囲」そのものを一つの生活圏ポリゴンとして表現できるようになります。分析によっては、施設ごとの生活圏を個別に扱いたい場合もあれば、このように「生活圏全体」を一つの面として扱いたい場合もあります。目的に応じて使い分けるようにしましょう。

③ 生活圏の可視化

ここまでで、施設を起点とした生活圏ポリゴンを作成できました。
最後に、地図として見やすいように表示を調整していきます。

GISでは分析そのものだけでなく、「どう見せるか」も重要です。特に今回のような生活圏分析では、背景地図や透過率を調整することで、分かりやすさがかなり変わります。

背景地図の表示

まず、位置関係を分かりやすくするため、背景地図としてOpenStreetMapを表示します。

ブラウザパネルから、「XYZ Tiles」→「OpenStreetMap」をダブルクリックすると、背景地図として追加できます。道路や市街地の位置関係が見えるようになるため、生活圏の広がりが直感的に把握しやすくなります。

なお、背景地図を利用する際は、著作権表示(クレジット表記)を行うことを常に意識してください。
OpenStreetMapを使用する場合は、一般的には以下のような表記を行います。

© OpenStreetMap contributors

バッファレイヤの色を調整

次に、作成した生活圏ポリゴン(バッファ)の見た目を調整します。レイヤを右クリックし、「プロパティ」→「シンボロジ」を開きます。下図では、

  • 塗りつぶし:青
  • 不透明度:60%程度
  • 境界線:なし

としています。

施設ポイントを前面に表示

生活圏ポリゴンだけでは、どの施設を起点にしているか分かりづらいため、施設ポイントも表示しておきます。ポイントレイヤについては、サイズを小さめにし、濃い色で表示するのがお勧めです。今回のように施設数が多い場合は、点を主張しすぎないほうが全体像を把握しやすくなります。

表示を調整することで、

  • 生活圏が密集しているエリア
  • 生活圏が途切れているエリア
  • 沿岸部や主要道路沿いに施設が集中していること

などが視覚的に見えてきます。

この段階ではまだ人口を重ねていませんが、「どこがカバーされていそうか」という空間的な傾向を把握することができます。

今回のまとめ

今回は、バッファによって生活圏を作成するという処理を行いました。これにより「施設の周辺にどの範囲が含まれるのか」をシンプルに把握することができるようになりました。地図として可視化することで、生活圏の広がりや、施設が分布している傾向が見えてきたかと思います。

一方で、この段階ではまだ「どれくらいの人が含まれているか」は分かりません。次回は、このバッファを使って、「バッファ内にどれくらいの人口が存在するか」を計算していきます。「どれくらいの人をカバーできているのか」を数として把握することで、より実務に近い分析に進んでいきます。

  1. 国土数値情報 市町村役場等及び公的集会施設データ(CC_BY_4.0)。本記事内で挿絵として使用。 ↩︎
  2. 正確には世界測地系JGD2011の緯度経度座標(EPSG:6668) ↩︎