特定の範囲のデータ(地物)を切り取ったり、抽出したりする方法を解説します。
QGISに取り込んだ国勢調査結果を様々な条件で抽出するでは、フィルター機能を使用して属性値によるデータの抽出方法を紹介しました。
今回解説する方法は、地図上で範囲を指定してデータを抽出する方法になります。

範囲を指定してデータを抽出する方法の種類

範囲を指定してデータを抽出する方法はいくつかやり方がありますが、今回は3種類の方法を紹介します。

一つ目は、ある地点から一定範囲のデータを抽出する方法です。
ある地点から半径〇kmの範囲に含まれる地域を抽出するときなどに利用できます。
一定範囲に含まれる地域は、形を保ったまま抽出されます。

001 min
一定範囲のデータを抽出した例

この方法の手順はある地点から一定範囲のデータを抽出する方法です。

二つ目は、同じくある地点から一定範囲のデータを抽出する方法ですが、データを切り抜く方法です。
先に抽出したデータを見てみましょう。

002 min 1
一定範囲のデータを切り抜いて抽出した例

このように、指定した範囲でデータがバッサリと切り抜かれています。

この方法の手順はある地点から一定範囲のデータを切り抜く方法です。

三つめは、自治体の形状など既存の形状に合わせてて抽出する方法です。 上で紹介したように、一定距離を作るのではなく自治体の形状などを使用して抽出することもできます。

003 min
既存の形状に合わせて切り抜いた例

QGIS処理の仕組みは上の二つと同様で、半径〇kmの円の代わりに自治体の形状などを使用しているだけです。
円の場合と同様に、切り取らない抽出方法と切り取る抽出方法が選べます。
上で例として示した画像は、東京都豊島区の形状を山手線の形状に合わせて切り抜いて抽出したものです。

この方法の手順は市町村等の自治体の形状で範囲を選択して抽出する方法です。

それでは、ここからQGISでこれら3つの方法を使用してデータを抽出する方法を解説してきます。

範囲を指定してデータを抽出する手順

今回は、東京都の国勢調査小地域境界データを各手段で抽出しながら手順を解説します。
東京都の小地域のポリゴン、豊島区の外郭ライン、池袋駅のポイント、山手線ラインの4つのデータを例として使用します。

 ここからダウンロードすることもできます 
上記ファイルに含まれるデータ一覧は以下の4つです。

  • 「東京都本土部.gpkg」:東京都(本土部)の国勢調査小地域境界データ(国勢調査小地域データを加工して作成)
  • 池袋駅.gpkg」:池袋駅の位置(地図上で大まかな位置を参照し作成)
  • 山手線.gpkg」:山手線の形状(国土数値情報H30年鉄道データを加工して作成)
  • 豊島区.gpkg」:豊島区の形状(国勢調査小地域データを加工して作成)

プロジェクトの空間座標系を設定する

QGISを起動してメニューから「新規作成」を選択し新たな作業ファイルを作成します。

初めに空間座標系を設定します。 今回解説する内容では、範囲を指定する際に半径〇kmと実際の距離を指定します。 このように、距離を扱う場合は空間座標系に平面直角座標系などの座標系(緯度経度で位置を指定しない座標系)を指定する必要があります。

国土数値情報のデータをQGISで表示する手順を画像で解説の中で空間座標系をファイル単位で指定する方法を解説しましたが、空間座標系はプロジェクト全体に対しても設定することができます。 プロジェクトとはこれから作業するQGISファイル全体を管理するシステムです。 この項目の最初で行ったように、普段QGISで作業する場合に新規ファイルを作成しますがそのファイルのことをプロジェクトと言います。

プロジェクト自体も空間座標系の指定があり、初期状態では”EPSG:4326 世界測地系 WGS84 地理座標系”が指定されています。 これは緯度経度で位置を表す空間座標系で、日常的な距離を扱うあるためには適していません。

参考:(補足)座標参照系とは

プロジェクトの空間座標系を平面直角座標系に変更します。 今回のように東京都(本土部)が含まれるデータ扱うときは平面直角座標系(Ⅸ)です。
※他の地域で作業を行う場合は平面直角座標系のEPSGコード一覧表から該当する系番号とEPSGコードを探してください。

QGISウインドウの右下にあるEPSGの文字列をクリックします。 ここからプロジェクトの空間座標系を設定できます。

004 min 1
プロジェクトの空間座標系を設定する場所

すると「プロジェクトのプロパティ|空間座標系」というウインドウが表示されます。
空間座標系にはEPSGという固有の番号が割り当てられており、平面直角座標系(Ⅸ)(JGD2011)のEPSGは「6677」です。

上部にある「フィルター」欄に、「6677」と入力すると、中央下の「あらかじめ定義されたCRS」という欄に「JGD2011 / Japan Plane Rectangular CS IX EPSG:6677」と表示されますので、その文字列を選択して「OK」をクリックしましょう。

005 min 1
「プロジェクトのプロパティ|空間座標系」というウインドウで適切な空間座標系(今回の例ではEPSG6677)を選択した状態で「OK」を選ぶ

元のウインドウに戻ります。
これでプロジェクトの空間座標系の設定が完了していて、右下のEPSGが今設定したものに変わっています。

この設定が無事にできたら実際にデータを抽出する手順に進みます。

ある地点から一定範囲のデータを抽出する方法(場所による選択)

この方法では池袋駅から半径2kmの範囲に含まれる小地域を抽出します。
2kmの範囲内に少しでも含まれる小地域が全て抽出されるので、ほとんどが範囲外の小地域も含まれる可能性があります。

この例では、小地域境界のポリゴンデータ(東京都本土部.gpkg)と池袋駅のポイントデータ(池袋駅.gpkg)を使用します。
以下の手順でQGISに読み込みます。
メニューバーの「レイヤ」から「レイヤを追加」を選択し、出てくるメニューの中から「ベクタレイヤを追加」を選択します。

ダウンロードしたデータから小地域境界のポリゴンデータである「東京都本土部.gpkg」と池袋駅のポイントデータである「池袋駅.gpkg」を選択します。
そして「開く」をクリックします。
元のウインドウに戻ってきたら下にある「追加」ボタンをクリックします。

地図の画面に戻ると東京都本土部の形状と、一つの点が表示されていると思います。
取り込んだデータは自動的に着色されるので、色の組み合わせによっては点がわかりづらい場合があるかもしれません。
レイヤのプロパティからわかりやすい色に変更しましょう。

以下の例では、小地域境界データは輪郭を黒色にして薄い灰色で塗りつぶしました。
池袋駅は赤色に着色して形状を少し大きくしました。

006 min 1
境界データと池袋駅の位置をQGISに読み込んだ

続いて、池袋駅から半径2kmの範囲を示すバッファを発生させます。

ポイントからのバッファを発生させる

バッファはGISで分析作業を行う際によく使用される処理です。
ポイントデータから特定距離の円を新規のポリゴンデータとして作成します。
今回の例では池袋駅を示すポイントデータから半径2kmの円を新規のポリゴンデータとして作成します。

メニューバーの「ベクタ」から「空間演算ツール」を選択し、出てくるメニューを中から「バッファ」を選択します。

007 min 1
メニューからバッファを選択する

すると「バッファ」というウインドウが表示されます。
このウインドウでは、バッファの起点となるデータの選択、バッファ距離の指定、バッファの円の滑らかさの設定、作成したバッファを保存するファイル名の設定を行います。

まず、バッファの起点となるデータの選択を行います。
一番上にある「入力レイヤ」欄の右側にある▼をクリックし、表示される文字列の中からポイントデータのレイヤを選択します。
今回の例では「池袋駅」です。

入力レイヤに池袋駅のポリゴンデータが入力されます。

008 min
入力レイヤに池袋駅のポリゴンデータを選択した

続いてバッファ距離の指定を行います。
上から2つ目の「距離」欄に距離の数値と距離の単位を入力して指定します。
初期状態では、左側の欄に「10.000000」、右側の欄に「メートル」と入力されています。
この設定では、入力レイヤを起点に半径10メートルの円が作成されます。
今回は、半径2.0kmの円を作成したいので、左側の欄に「2000」と入力し、右側の欄はそのまま「メートル」とします。
単位は他にも選べますので「キロメートル」を選んだ場合は、左側の欄には「2.0」と入力します。

009 min 1
距離欄に2000メートルと入力した

次はバッファの円の滑らかさの設定を行います。
上から3つ目の「セグメント数」欄に数値を入力して設定します。
作成されるバッファの円は、「セグメント数」の数値が大きいほど滑らかな円になり数値が小さいとカクカクの円になります。
ここでは「20」と入力します。
なお、これは円の1/4を何本の線で描くかの設定なので「1」と入力すると四角形のバッファが作成されます。

010 min 1
セグメント数欄を20に設定した

最後に、作成したバッファを保存する場所とファイル名の設定を行います。
一番下の「出力レイヤ」欄の右端にある点が3つ並んだところをクリックすると出てくるメニューから「ファイルに保存」を選択します。
ファイルを保存する場所を設定するウインドウが出現するので、好きなフォルダを選び、好きなファイル名を付けて「保存」をクリックします。
ファイル名は「池袋駅-バッファ2km」など後から見てもわかりやすい名前が良いでしょう。
「形式」の選択メニューは「GPKG files」を選びます。

出力レイヤ欄の下にある「アルゴリズムの実行後に出力ファイルを開く」のチェックボックスにチェックが入っていることを確認します。

ここまで設定し「実行」をクリックすると、バッファを生成する処理が開始されウインドウの表示が変わります。
たくさんの文字列が表示されますが、その下の方に「アルゴリズム ‘バッファ’が終了しました」と記載されていれば処理が完了しています。ほとんどの環境で処理は一瞬で終了すると思います。
処理が完了したら「閉じる」をクリックして地図の画面に戻りましょう。

地図の画面に戻ると先ほどはなかった大きな円が出現しています。
これが池袋駅から半径2kmの範囲を示すポリゴンデータです。

011 min
池袋駅から半径2kmの円が出現した

出現した円は1色で塗りつぶされた色で表示されています。
このままだと下の情報が見えづらいので、レイヤのプロパティから「輪郭だけの表示」や「メッシュ表示」など下に重なった情報がわかりやすい表示方法に変更しましょう。

この例では、以下のように「outline red」という標準で用意されている見た目に変更します。
また、バッファ周辺にズームしました。

012 min 1
バッファ円の見た目を「outline red」に変更した

バッファに重なる小地域を抽出する

それでは、この円を使用して小地域を抽出します。

メニューバーの「ベクタ」から「調査ツール」を選択し、出てくるメニューを中から「場所による選択」を選択します。

013 min
「場所による選択」を選択する

すると「場所による選択」というウインドウが表示されます。
このウインドウで、抽出元のデータ(今回の例では小地域境界データ)の選択、抽出の仕方の設定、抽出する範囲の設定を行います。

まず、抽出元のデータの選択を行います。
一番上の「選択する地物のあるレイヤ」欄の右側にある▼をクリックし、抽出元のデータがあるレイヤを選択します。
今回の例では東京都本土部の小地域境界データを抽出元とするので選択するレイヤは「東京都本土部」です。

続いて抽出の仕方の設定を行います。
上から2つ目の「空間的関係」欄のチェックボックスで指定します。
いくつかありますが今回は「交わる(intersect)」を選択します。
「交わる(intersect)」という文字列の左側のチェックボックスをクリックし、チェックマークが記載された状態にします。※最新版のQGISでは「交わる(intersect)」は「交差する(intersect)」に名称が変更されています。

最後に抽出する範囲の設定を行います。
上から3つ目の「比較対象の地物のあるレイヤ」欄の右側にある▼をクリックし、抽出する範囲のデータがあるレイヤを選択します。
抽出する範囲は池袋駅から半径2kmなので、選択するのは先ほど作成したバッファレイヤ(今回の例では「池袋駅-バッファ2km」)です。

014 min 1
「選択する地物のあるレイヤ」に小地域境界のポリゴンデータを選択、「交わる(intersect)」にチェックを入れて「比較対象の地物のあるレイヤ」にバッファレイヤを選択した

ここまで設定できたら「実行」をクリックします。
一瞬表示が変わった後、元に戻るので「閉じる」をクリックして地図の画面に戻ります。

すると、バッファに重なる小地域が黄色に表示され、今設定した内容でバッファに重なる小地域が選択された状態になっています。
この状態のまま、以下の方法で選択された小地域だけを新たなファイルに保存しなおすことで、指定した範囲で小地域が抽出されたファイルが作成できます。

ファイルを保存するには、レイヤパネルの小地域が選択されているレイヤ名(今回の例では「東京都本土部」)の上で右クリックし、出てきたメニューから「エクスポート」を選択し、さらに「選択地物の保存」を選択します。

※QGISのバージョンによっては「新規ファイルに選択地物を保存」という表記になっている

015 min 1
「選択地物の保存」を選択する。QGISのバージョンによっては「新規ファイルに選択地物を保存」という表記になっている

すると、「ベクタレイヤを名前を付けて保存」ウインドウが表示されますのでこれまでと同様にファイル名と保存場所を設定して保存します。
ファイル名は「池袋駅から2km圏の小地域」などあとから見てもわかりやすい名前が良いでしょう。
ファイル名と保存場所を設定したらOKをクリックして地図の画面に戻ります。

すると、先ほど黄色で表示され選択状態にあった小地域のみのレイヤが新規のレイヤとして出現しています。

016 min 1
抽出した小地域のみのレイヤが出現した

これで池袋駅から2kmの範囲に含まれる小地域を抽出することができました。
始めにも述べたとおり2km範囲に少しでも含まれる小地域が全て抽出されるので、小地域の面積のうちほとんどの部分が2km範囲外に位置する小地域も抽出されています。

ある地点から一定範囲のデータを切り抜く方法(Clip)

この方法では、バッファの範囲で小地域の切り抜き(clip)を行います。

上から続けて作業を進める場合は、以下の手順で小地域の選択状態を解除します。

  • 選択状態にある地物(この例では「東京都本土部」)があるレイヤ名をクリックする
  • ウインドウ上部の黄色の四角に白い矢印が載っているアイコン(「地物選択」アイコン)をクリックする
  • 地図上の何もないところをクリックする
  • 黄色の選択状態が解除されたのを確認して、同じくウインドウ上部にある手のひらアイコン(「地図を移動」アイコン)をクリックする。
017 min
「地物選択」アイコンと、「地図を移動」アイコンの場所

選択状態が解除されたら、切り抜きを行う手順に進みます。
ここでも上と同じく小地域境界データを池袋駅から2kmの範囲で切り抜きます。

メニューバーの「ベクタ」から「空間演算ツール」を選択し、出てくるメニューを中から「切り抜き(clip)」を選択します。

018 min
「切り抜き(clip)」を選択する

すると「切り抜き(clip)」というウインドウが表示されます。
このウインドウでは、切り抜き元のデータ(今回の例では小地域境界データ)の選択、切り抜く範囲の設定(今回の例では2kmのバッファ)、切り抜いたデータを保存するファイル名の設定を行います。

まず、切り抜き元のデータの選択を行います。
一番上の「入力レイヤ」欄の右側にある▼をクリックし、切り抜き元のデータがあるレイヤを選択します。
今回の例では東京都本土部の小地域境界データを切り抜き元とするので選択するレイヤは「東京都本土部」です。

019 min
「入力レイヤ」に小地域境界のポリゴンデータを選択した

続いて切り抜く範囲の設定を行います。
上から2つ目の「オーバーレイレイヤ」欄の右側にある▼をクリックし、切り抜く範囲のデータがあるレイヤを選択します。
切り抜く範囲は池袋駅から半径2kmなので、選択するのは上で作成したバッファレイヤ(今回の例では「池袋駅-バッファ2km」)です。

020 min
「オーバーレイレイヤ」にバッファレイヤを選択した

最後に、作成したバッファを保存するファイル名の設定を行います。
手順は上の方法と同様です。 一番下の「出力レイヤ」欄の右端にある点が3つ並んだところをクリックすると出てくるメニューから「ファイルに保存」を選択します。
すると、「ベクタレイヤを名前を付けて保存」ウインドウが表示されますのでこれまでと同様にファイル名と保存場所を設定して保存します。
ファイル名は「池袋駅から2km圏の小地域clip」などあとから見てもわかりやすい名前が良いでしょう。
ファイル名と保存場所を設定したら「保存」をクリックします。

出力レイヤ欄の下にある「アルゴリズムの実行後に出力ファイルを開く」のチェックボックスにチェックが入っていることを確認します。

ここまで設定できたら「実行」をクリックして、処理が完了したら「閉じる」をクリックして地図の画面に戻ります。
この手順も、ほとんどの環境で処理は一瞬で終了すると思われます。
「実行」をクリックした直後にウインドウの表示が変わり、たくさんの文字列が表示されてその下の方に「アルゴリズム ‘切り抜き(clip)’が終了しました」とあれば処理が完了しています。

切り抜かれた小地域のみのレイヤが新規のレイヤとして出現しています。

021 min
切り抜かれた小地域のみのレイヤが出現した

これで池袋駅から2kmの範囲に含まれる小地域を切り抜いて抽出することができました。
上で紹介した抽出方法と異なり2kmの円でバッサリと小地域が切り抜かれています。

切り抜きされているのでバッファの境界上の小地域は複数に分断されています。

データの集計を行う場合は注意が必要です。
バッファの境界上の小地域は複数に分断されていますが、分断後の各小地域が持つ属性値はそのまま保持されているからです。
人口を属性値の例とすると、境界上にある小地域の人口が100人だった場合、切り抜きによって二つの地域に分断されますが、分断後の二つの小地域が両方とも人口が100人の小地域として扱われます。
実際は面積が小さくなった分だけ人口も少なくなっていると可能性が高いです。
そのため、データの集計を行う場合には、面積按分を行うなどの処理を施す必要があります。

市町村等の自治体の形状で範囲を選択して抽出する方法

上で紹介した二つの方法では新たに作成したバッファを使用して範囲を抽出しましたが、新たに作成したバッファではなく既存のポリゴンデータがあれば同様のことができます。
この方法では特定の自治体に含まれる範囲や、特定の鉄道路線に囲まれる範囲などで地物を抽出できます。

手順は同じなので抽出後の画像だけ紹介します。
上で使用した小地域境界データの他に山手線の形状のデータ(山手線.gpkg)と東京都豊島区の形状のデータ(豊島区.gpkg)を使用します。

最初に紹介した方法をバッファ円の代わりに山手線の形状で行うと以下のようになります。

022 min
山手線に交わる小地域だけ抽出

緑色の線路マークが山手線です。
使用したデータ(山手線.gpkg)は、国土数値情報の鉄道データ(平成30年度)を元に加工して作成したポリゴンデータです。
そこに重なる小地域を薄い緑色で示しました。

続いて、2番目に紹介した切り抜く方法と同じ手順で東京都豊島区の形状を山手線で切り抜いてみます。
豊島区の形状は国勢調査の小地域境界データを元に加工して作成したポリゴンデータです。

023 min
東京都豊島区を山手線で切り抜いた

水色の部分が山手線の内側の豊島区の範囲です。
緑色の線路マークが山手線、黒線で囲まれているのが豊島区の外郭線です。

まとめ

いかがでしたでしょうか?
今回は特定の範囲でデータを切り取ったり、抽出したりする方法を紹介しました。

ある地点からバッファを発生させてデータを抽出する手順は、GISでのデータ分析でよく使用されます。
また、不要な部分を切り抜くことができるクリップ処理は、データの不要な部分を削除する目的でも利用できます。
例えば、ある市のデータのみが必要なのにダウンロードできるデータが日本全国のデータのみであるケースなどでは、必要な部分のみをクリップ処理で切り抜くことでその他の不要な部分を取り除くことができます。

抽出する方法は今回紹介した以外にもあります。
例えば、抽出の仕方では「空間的関係」として「交わる」を選択しましたがその他に抽出の仕方を選べますし、属性値の扱いを考慮した抽出方法を選ぶことができます。

これらについても今後紹介を行う予定です。
また次回以降よろしくお願いいたします。

使用したデータ