QGIS によるオープンデータの分析入門［実習編］

2014 年 10 月 31 日
合同会社緑ＩＴ事務所

小池 隆

目次
実習環境 ........................................................................................................................................................ 2
QGIS のバージョン ..........................................................................................................................................2
データファイル .................................................................................................................................................2
用語 ...................................................................................................................................................................3
ハンズオン概要.............................................................................................................................................. 5
目標 ...................................................................................................................................................................5
手順 ...................................................................................................................................................................5
横浜市全域のシェープファイル作成 .............................................................................................................. 9
神奈川県のシェープファイルの読み込み .........................................................................................................9
横浜市の抽出 ................................................................................................................................................. 11
シェープファイルの保存 ............................................................................................................................... 13
図書館のカバー領域のシェープファイル作成 .............................................................................................. 16
CSV ファイルの読み込み .............................................................................................................................. 16
ベクタ形式への変換....................................................................................................................................... 19
バッファの作成 .............................................................................................................................................. 20
プロジェクトの設定と保存 .......................................................................................................................... 22
プロジェクトの CRS の設定 .......................................................................................................................... 22
プロジェクトの保存....................................................................................................................................... 22
図書館の非カバー領域のシェープファイル作成 ........................................................................................... 23
行政区毎の図書館の面積カバー率の算出 ..................................................................................................... 25
人口メッシュのシェープファイル作成 ......................................................................................................... 27
シェープファイルと CSV ファイルの結合 .................................................................................................... 27
複数のシェープファイルの結合 .................................................................................................................... 30
スタイルの変更 .............................................................................................................................................. 32
ポリゴンからポイントへの変換 .................................................................................................................... 34
横浜市の人口のシェープファイル作成 ......................................................................................................... 35
横浜市全域の人口のシェープファイル作成 .................................................................................................. 35
図書館の非カバー領域の人口のシェープファイル作成 ................................................................................ 38
行政区毎の図書館の人口カバー率の算出 ..................................................................................................... 40
演習課題 ...................................................................................................................................................... 42p. 1

実習環境
QGIS のバージョン
QGIS は Version 2.4 を使用します。このテキストでは、Windows 7（64bit 版）における操作方法を記載します。他の環境では、操作方法が異なる可能性がありますが、あらかじめご了承下さい。

データファイル
以下のデータファイルを使用します。ファイルの入手方法・作成方法については、事前準備編を参照して下さい。
YokohamaLib.csv

SagamiharaLib.csv

KS-META-N03-14_14_140401.xml

N03-14_14_140401.dbf

N03-14_14_140401.prj

N03-14_14_140401.sbn

N03-14_14_140401.sbx

N03-14_14_140401.shpN03-14_14_140401.shx

N03-14_14_140401.xml



tblT000609H52390.txt

tblT000609H53390.txt



MESH05239.dbf



MESH05239.prj



MESH05239.shp



MESH05239.shx



MESH05339.dbf



MESH05339.prj



MESH05339.shp



MESH05339.shx

各データファイルは、
c:\hands-on
フォルダ内にあるものとします。

p. 2

用語
QGIS の操作方法を説明する際に使用する「メニューバー」「レイヤパネル」「マップキャンバス」とは以下のとおりです。

メニューバー

レイヤパネル

マップキャンバス

p. 3

パネルには、レイヤパネル以外に数種類あり、任意のパネルを表示することができます。
メニューバーから［ビュー］→［パネル］を選択し、パネル名の左にあるチェックボックスでパネルの表示／非表示を選択することができます。
今回のハンズオンでは、レイヤパネルだけ表示しておけば良いでしょう。

p. 4

ハンズオン概要
目標
ハンズオンの目標は、横浜市の図書館の面積カバー率と人口カバー率を、18 ある行政区毎に算出することです。ここでは、図書館から半径 1.5Km の領域を図書館のカバー領域と定義します。
時間があれば、同様の手順で相模原市の図書館の面積カバー率と人口カバー率を、3 つの行政区毎に求めます。

手順
おおまかな流れは以下のとおりです。
① 横浜市全域のシェープファイルを作成します。

シェープファイルは、ベクタ形式による GIS データファイルの標準的なフォーマットです。
空間要素をポイント、ライン、ポリゴンで定義し、空間要素に任意の属性を付加することができます。

p. 5

② 図書館のカバー領域（半径 1.5Km 圏）のシェープファイルを作成します。

③ ①と②から、図書館の非カバー領域のシェープファイルを作成します。

④ 行政区毎に図書館の面積カバー率を算出します。
（①の面積－③の面積）／①の面積

p. 6

⑤ 人口メッシュのシェープファイルを作成します。

⑥ 横浜市全域の人口のシェープファイルを作成します。

p. 7

⑦ 図書館の非カバー領域の人口のシェープファイルを作成します。

⑧ 行政区毎に図書館の人口カバー率を算出します。
（⑥の人口－⑦の人口）／⑥の人口

p. 8

横浜市全域のシェープファイル作成
神奈川県のシェープファイルの読み込み
国土交通省の「国土数値情報 行政区域データ」から入手した神奈川県のシェープファイルを QGISに読み込みます。
QGIS を起動し、メニューバーから［レイヤ］→［ベクタレイヤの追加...］を選択します。

「ベクタレイヤの追加」ダイアログボックスが表示されます。

エンコーディンクは「Shift_JIS」を選択し、［ブラウズ］ボタンをクリックして神奈川県のシェープファイル「N03-14_14_140401.shp」を選択し、［開く］ボタンをクリックします。

このハンズオンで使用するデータファイルのエンコーディングはすべて「Shift_JIS」で統一していますが、QGIS はさまざまなエンコーディングに対応しています。

p. 9

マップキャンバスに神奈川県全域の地図が表示されます。
新たにレイヤを追加したときにマップに表示される色は、その時によって変わります。
色を変更する場合は、レイヤパネルでレイヤ名を右クリックして［プロパティ］メニューを選択して「レイヤプロパティ」ダイアログボックスを表示します。「スタイル」タブパネルで、塗りつぶしや境界線の色やスタイルについて詳細に指定することができます。

p. 10

横浜市の抽出
レイヤパネルで「N03-14_14_140401」レイヤを右クリックし、［フィルタ...］メニューを選択して［クエリビルダ］ダイアログボックスを表示します。

［クエリビルダ］ダイアログボックスの「フィールド」で「N03_003」を選択し、［サンプル］ボタンをクリックして「値」に「横浜市」が含まれることを確認します。
以下の手順で「プロバイダ特有フィルタ式」に"N03_003" = "横浜市"と入力します。
「フィールド」の「N03_003」をダブルクリック

「演算子」の「=」クリック

「値」の「横浜市」をダブルクリック

p. 11

［OK］をクリックすると、横浜市だけが抽出されてマップキャンバスに表示されます。

p. 12

シェープファイルの保存
レイヤパネルで「N03-14_14_140401」レイヤを右クリックし、［名前を付けて保存...］メニューを選択します。
「ベクタレイヤに名前をつけて保存する...」ダイアログボックスで以下の指定をして［OK］ボタンをクリックします。
形式：ESRI Shapefile

名前を付けて保存：c:/hands-on/Yokohama.shp

CRS：選択された CRS
JGD2000 / Japan Plane Rectangular CS IX



エンコーディング：Shift_JIS

「保存されたファイルを地図に追加する」にチェック

CRS（Coordinate Reference System：座標系）の選択は、［ブラウズ］ボタンをクリックして「空間参照システム選択」ダイアログボックスの「フィルター」に「JGD2000」と入力し、「JGD2000 /Japan Plane Rectangular CS IX」（EPSG:2451）を選択して［OK］ボタンをクリックします。

p. 13

「JGD2000 / Japan Plane Rectangular CS IX」は、平面直角座標系の系番号 IX を意味します。平面直角座標系では日本を 19 の系に分けており、地域によって異なる系を適用します。神奈川
県には系番号 IX を適用します。
緯度と経度で位置を表す地理座標系では単位が「度」であるため、「半径 1.5Km 以内」というような処理には適しません。そのため、このハンズオンの例題では「メートル」を単位とする平面直角座標系を使用します。

p. 14

レイヤパネルでは、レイヤの表示／非表示、表示順などを変更することができます。
レイヤ名の左のチェックを外すと、そのレイヤはマップキャンバスに表示されなくなります。
レイヤ名をドラッグ＆ドロップすると、レイヤの表示順序が変わります。レイヤパネルで上に表示されるレイヤが、マップキャンバスでも上に重なって表示されます。
レイヤパネルで「N03-14_14_140401」レイヤを右クリックし、［フィルタ...］メニューを選択して［クエリビルダ］ダイアログボックスを表示し、［クリア］ボタンをクリックすると再び神奈川県全域が表示されます。
この状態で、2 つのレイヤの表示／非表示、重なり方を変更してみましょう。

p. 15

図書館のカバー領域のシェープファイル作成
CSV ファイルの読み込み
メニューバーから［レイヤ］→［デリミテッドテキストレイヤを追加...］を選択し、横浜市の図書館一覧の CSV ファイル「YokohamaLib.csv」を読み込みます。

「最初のレコードはフィールド名を保持している」のチェックを付け、「ジオメトリ定義」は「ポイント座標」を選択し、
X フィールド：fXY フィールド：fYを指定して［OK］ボタンをクリックします。
「空間参照システムの選択」ダイアログボックスが表示されるので、「フィルター」に「WGS 84」と入力し、「WGS 84」（EPSG:4326）を選択して［OK］ボタンをクリックします。

p. 16

横浜市の図書館の位置が 18 個の小さな丸でマップキャンバスに表示されます。他のレイヤの下になって表示されない場合は、レイヤパネルで「YokohamaLib」レイヤを一番上にドラッグ＆ドロップします。
レイヤパネルで「YokohamaLib」レイヤを右クリックし、［属性テーブルを開く］メニューを選択
すると、読み込んだデータを確認することができます。

p. 17

p. 18ベクタ形式への変換
横浜市の図書館一覧のレイヤをシェープファイルとして保存し、ベクタレイヤとして扱えるようにします。
レイヤパネルで「YokohamaLib」レイヤを右クリックし、［名前を付けて保存...］メニューを選択します。

「ベクタレイヤに名前をつけて保存する…」ダイアログボックスで以下の指定をして［OK］ボタンをクリックします。
形式：ESRI Shapefile

名前を付けて保存：c:/hands-on/YokohamaLibShape.shp

CRS：選択された CRSJGD2000 / Japan Plane Rectangular CS IX



エンコーディング：Shift_JIS

「保存されたファイルを地図に追加する」にチェック

p. 19

バッファの作成
図書館のカバー領域（半径 1.5Km 圏）のシェープファイルを作成します。
メニューバーから［ベクタ］→［空間演算ツール］→［バッファ］を選択し、「バッファ」ダイアロ
グボックスを表示します。

以下の指定をして、［OK］ボタンをクリックします。


入力ベクタレイヤ：YokohamaLibShape

円を近似させる線分の数：32

バッファ距離：1500



出力シェープファイル：YokohamaLibBuf.shp

「結果をキャンバスに追加する」にチェック

レイヤパネルでレイヤを「YokohamaLibShape」「YokohamaLibBuf」「Yokohama」の順に変更し、他のレイヤは非表示にすると、横浜市の地図の上に図書館のカバー領域を表す円が表示され、その中心に図書館を表す小さな丸が表示されます。

p. 20

図書館のカバー領域を表す円が歪んで表示されている場合は、プロジェクトの CRS（CoordinateReference System：座標系）とレイヤの CRS が合っていません。上の図では、プロジェクトの CRSは「EPSG4612」となっていますが、レイヤの CRS は「JGD2000 / Japan Plane Rectangular CSIX」（EPSG:2451）です。

QGIS では、作業の対象としている複数のレイヤについての情報を、「プロジェクト」としてまとめて管理します。QGIS を起動するときは、新規のプロジェクトを作成するか、既存のプロジェクトを開きます。
プロジェクトとして管理する情報には、個々のレイヤについての情報のほかに、プロジェクトのCRS のように、プロジェクト全体に関わる情報も含まれます。

p. 21

プロジェクトの設定と保存
プロジェクトの CRS の設定
メニューバーから［プロジェクト］→［プロジェクトのプロパティ...］を選択し、「プロジェクトのプロパティ」ダイアログボックスの「CRS」タブパネルを開きます。「JGD2000 / Japan Plane
Rectangular CS IX」（EPSG2451）を選択して［OK］ボタンをクリックします。

プロジェクトの保存
プロジェクトを保存するときは、メニューバーから［プロジェクト］→［名前をつけて保存］を選択します。

p. 22

図書館の非カバー領域のシェープファイル作成
メニューバーから［ベクタ］→［空間演算ツール］→［差分］を選択し、「差分」ダイアログボック
スを表示します。

以下の指定をして、［OK］ボタンをクリックします

入力ベクタレイヤ：Yokohama

差分レイヤ：YokohamaLibBuf

出力シェープファイル：c:/hands-on/YokohamaNoLib.shp

「結果をキャンバスに追加する」にチェック

レイヤパネルで「YokohamaNoLib」以外のレイヤのチェックを外すと、図書館のカバー領域が切り取られた、図書館の非カバー領域を表す地図がマップキャンバスに表示されます。

p. 23

p. 24

行政区毎の図書館の面積カバー率の算出
GroupStats プラグインで横浜市の行政区毎に図書館の非カバー領域の面積と総面積を集計し、表計算ソフトを使用して面積カバー率を算出します。
メニューバーから［ベクタ］→［Group Stats］→［GroupStats］を選択し、「Group Stats」ダイ
アログボックスを表示します。
「Layers」で「YokohamaNoLib」レイヤを選択し、「Fields」から「Rows」へ「N03_004」を、「Value」へ「sum」と「Area」をドラッグ＆ドロップして［Calculate］ボタンをクリックします。

横浜市の行政区毎の図書館非カバー領域の面積が得られます。「Group Stats」ダイアログボックスの［Data］→［Copy all to clipboard］メニューでコピーし、表計算ソフトの A～B 列にペーストします。

p. 25同様に、「Layers」で「Yokohama」レイヤを選択し、「Fields」から「Rows」へ「N03_004」を、「Value」へ「sum」と「Area」をドラッグ＆ドロップして［Calculate］ボタンをクリックします。

横浜市の行政区毎の総面積が得られます。「Group Stats」ダイアログボックスの［Data］→［Copy all to clipboard］メニューでコピーし、表計算ソフトの C～D 列にペーストします。
表計算ソフトの E 列に「D 列-B 列」、F 列に「E 列/D 列」の式を入力し、横浜市の行政区毎の図書館の面積カバー率を算出します。

p. 26

人口メッシュのシェープファイル作成
シェープファイルと CSV ファイルの結合「e-stat 政府統計の総合窓口」で提供される人口メッシュは、「統計データ」の CSV ファイルと「境界データ」のシェープファイルに分かれています。また、横浜市全域をカバーするには 2 つの領域の人口メッシュが必要になります。そのため、統計データと境界データを 2 セット使用することになります。
はじめに、メニューバーの［レイヤ］→［ベクタレイヤの追加…］を選択し、「MESH05239.shp」を読み込みます。

「MESH05339.shp」も同様に読み込みます。
次に、メニューバーの［レイヤ］→［デリミテッドテキストレイヤを追加…］を選択し、「tblT000609H52390.txt」を読み込みます。

p. 27

「デリミテッドテキストファイルからレイヤを作成」ダイアログボックスで以下の指定をし、［OK］
ボタンをクリックします。


無視するヘッダー行数: 2

「最初のレコードはフィールド名を保持している」のチェックは外す「ジオメトリなし」にチェック「tblT000609H53390.txt」も同様に読み込みます。
「MESH05239」レイヤと「MESH05339」レイヤはメッシュのポリゴンを定義し、「tblT000609H52390」レイヤと「tblT000609H53390」レイヤはメッシュ ID 毎の人口データを保持しています。そこで「MESH05239」レイヤと「tblT000609H52390」レイヤを、「MESH05339」レイヤと「tblT000609H53390」レイヤをメッシュ ID で結合することにより、メッシュのポリゴンに人口データを付加することができます。
レイヤパネルで「MESH05239」レイヤを右クリックして［プロパティ］メニューを選択し、「レイヤプロパティ」ダイアログボックスを表示します。

「結合」タブパネルの「＋」をクリックして「ベクタ結合の追加」ダイアログボックスを表示し、以下の指定をします。


結合するレイヤ：tblT000609H52390



結合フィールド：field_1

ターゲットフィールド：KEY_CODE

p. 28

［OK］ボタンをクリックすると「MESH05239」レイヤと「tblT000609H52390」レイヤが結合されます。同様に、「MESH05339」レイヤと「tblT000609H53390」レイヤを結合します。
レイヤパネルで「MESH05239」レイヤを右クリックし、「名前を付けて保存...」メニューを選択します。
「ベクタレイヤに名前をつけて保存する…」ダイアログボックスで以下の指定をし、「mesh」サブフォルダに保存します（後の作業のために、必ずサブファルダに保存します）。


名前を付けて保存：c:/hands-on/mesh/MESH05239.shp

ＣＲＳ：選択されたＣＲＳ
JGD2000 / Japan Plane Rectangular CS IX

同様に、「MESH05339」レイヤを「mesh」サブフォルダに保存します。

p. 29

複数のシェープファイルの結合「mesh」サブフォルダに保存した「MESH05239.shp」ファイルと「MESH05339.shp」ファイルを 1 つのシェープファイルに結合します。
メニューバーから［ベクタ］→［データマネジメントツール］→［複数のシェープファイルを１つに結合する］を選択し、「シェープファイルの結合」ダイアログボックスで以下の指定をして［OK］ボタンをクリックします。


入力ディレクトリ：c:\hands-on\mesh

出力シェープファイル c:/hands-on/Mesh.shp「マップキャンバスに結果を追加する」にチェック

レイヤパネルで「Mesh」レイヤ以外のチェックを外し、メニューバーから［ビュー］→［レイヤの領域にズーム］を選択すると、以下のような地図が表示されます。

p. 30

p. 31

スタイルの変更「Mesh」レイヤは、CSV ファイルと結合することによって人口のデータを含んでいます。そこで、人口の多寡を色の濃淡によって表現してみます。
レイヤパネルで「Mesh」レイヤを右クリックして［プロパティ］メニューを選択し、「レイヤプロパティ」ダイアログボックスを表示します。「スタイル」タブパネルで以下の指定をします。
「段階に分けられた」を選択

カラム：tblT000609



分類数：10

さらに、「シンボル」の横の［変更...］ボタンをクリックし、「シンボルセレクタ」ダイアログボックスを表示します。

p. 32

「シンプル塗りつぶし」を選択し、「ボータースタイル」で「ペン無し」を選択します。
「シンボルセレクタ」ダイアログボックスの［OK］ボタンをクリックし、「レイヤプロパティ」ダイアログボックスの［OK］ボタンをクリックします。
レイヤパネルで「Mesh」レイヤ以外のチェックを外し、メニューバーから［ビュー］→［レイヤの領域にズーム］を選択します。以下のように表示されれば、人口メッシュのシェープファイルの作成に成功しています。

p. 33

ポリゴンからポイントへの変換「Mesh」レイヤは、矩形のポリゴンが縦横に並び、各ポリゴンが人口の値を持っています。図書館の非カバー領域に含まれるかどうかを判定する際、ポリゴンでは一部のみが重なることがあり、その場合にどう判定するかという問題があります。そこで、各ポリゴンの中心点を求め、各ポイントに人口の値を持たせることにします。

メニューバーから［ベクタ］→［ジオメトリツール］→［ポリゴンの重心］を選択し、「ポリゴンの中心点」ダイアログボックスで以下の指定をして［OK］ボタンをクリックします。


入力ポリゴンベクタレイヤ：Mesh

点を出力するシェープファイル：c:/hands-on/Point.shp

「結果をキャンバスに追加する」にチェック

p. 34

横浜市の人口のシェープファイル作成
横浜市全域の人口のシェープファイル作成
横浜市のシェープファイルと、人口メッシュのシェープファイルから、人口の値を持つ横浜市のシェープファイルを作成します。
メニューバーから［ベクタ］→［空間演算ツール］→［交差］を選択し、「交差」ダイアログボック
スで以下の指定をして［OK］ボタンをクリックします。


入力ベクタレイヤ：Point

交差レイヤ：Yokohama

出力シェープファイル：YokohamaPop.shp

「結果をキャンバスに追加する」にチェック

レイヤパネルで「YokohamaPop」レイヤ以外のチェックを外すと、人口の値を持つ点による横浜市の地図が表示されます。

p. 35

レイヤパネルで「YokohamaPop」レイヤを右クリックし、［属性テーブルを開く］メニューを選択
すると、作成したシェープファイルのデータを確認することができます。
「MESH1_ID」から「KEY_CODE」までは人口メッシュの境界データ、「tblT000609」から「tblT006_3」までは人口メッシュの統計データ、「N03_001」から「N03_007」までは国土数値情報の行政区域データに由来するデータです。これによって、行政区毎の人口の集計が可能であることが分かります。

人口データ

行政区域データp. 36

人口データは、
tblT000609 総人口



tblT0006-1 男性人口



tblT0006-2 女性人口

tblT0006-3 世帯数となっています。

p. 37

図書館の非カバー領域の人口のシェープファイル作成
図書館の非カバー領域のシェープファイルと、人口メッシュのシェープファイルから、人口の値を持つ図書館の非カバー領域のシェープファイルを作成します。
メニューバーから［ベクタ］→［空間演算ツール］→［交差］を選択し、「交差」ダイアログボック
スで以下の指定をして［OK］ボタンをクリックします。


入力ベクタレイヤ：Point

交差レイヤ：YokohamaNoLib

出力シェープファイル：YokohamaNoLibPop.shp

「結果をキャンバスに追加する」にチェック

レイヤパネルで「YokohamaNoLibPop」レイヤ以外のチェックを外すと、人口の値を持つ点による図書館の非カバー領域の地図が表示されます。

p. 38

p. 39

行政区毎の図書館の人口カバー率の算出
GroupStats プラグインで横浜市の行政区毎に図書館の非カバー領域の人口と総人口を集計し、表計算ソフトを使用して人口カバー率を算出します。
メニューバーから［ベクタ］→［Group Stats］→［GroupStats］を選択し、「Group Stats」ダイアログボックスを表示します。
Layers で「YokohamaNoLibPop」レイヤを選択し、Fields から Rows へ「N03_004」を、Valueへ「sum」と「tblT000609」をドラッグ＆ドロップして［Calculate］ボタンをクリックします。

横浜市の行政区毎の図書館非カバー領域の人口が得られます。「Group Stats」ダイアログボックスの［Data］→［Copy all to clipboard］メニューでコピーし、表計算ソフトの A～B 列にペーストします。

p. 40同様に、Layers で「YokohamaPop」レイヤを選択し、Fields から Rows へ「N03_004」を、Value へ「sum」と「tblT000609」をドラッグ＆ドロップして［Calculate］ボタンをクリックします。

横浜市の行政区毎の総人口が得られます。「Group Stats」ダイアログボックスの［Data］→［Copy all to clipboard］メニューでコピーし、表計算ソフトの C～D 列にペーストします。
表計算ソフトの E 列に「D 列-B 列」、F 列に「E 列/D 列」の式を入力し、横浜市の行政区毎の図書館の人口カバー率を算出します。

p. 41

演習課題
相模原市の図書館一覧の CSV ファイル「SagamiharaLib.csv」を用いて、相模原市の図書館の面積カバー率と人口カバー率を、3 つの行政区毎に算出してみましょう。
相模原市全域のシェープファイルは、神奈川県のシェープファイル「N03-14_14_130401.shp」から抽出して作成します。
人口メッシュのシェープファイル「Point.shp」は、相模原市全域をカバーしているため、そのまま利用することができます。

p. 42