見出し画像

QGISとFlourishで地図をつくろう

  以下の文書は、日本記者クラブによる勉強会「土曜記者ゼミIT講座」で今日(2022/12/10)お話ししたことのレジュメです。QGISというソフトとFlourishというウェブサービスを使って、国が提供するデータを地図に示すというもので、朝日新聞に掲載された「東京の限界集落」も基本、私の同僚がこれを活用しました。
 QGISもFlourishも個人的にはわりと取っつきづらい印象がありますが、以下のマニュアルを読んだだけで一応ゴールまで行ける、ことになっています。私も触り始めたのはたった数カ月前ですが、いずれもなかなか便利でしかも無料!! みなさま是非是非。


1. QGISでデータを加工して地図にする

1-1. データをゲット

 国土数値情報のウェブサイトに行き、「GML(JPGIS2.1)シェープファイル」→「2.政策区域」→「行政区域(ポリゴン)」と進む。

 地図にしたい場所(今回は神奈川県)の最新の地図(令和4年版)をダウンロードする(赤丸で囲ったところをクリック)。このzipファイルを展開し、このなかから拡張子が「shp」となっているもの(いわゆる「シェープファイル」は複数のファイル群で構成されるが、専門家によると、このうち拡張子がshpのやつが「ゴレンジャーで言うところのアカレンジャー」に相当するとされる)を、フリーの地図解析ソフトQGISのウィンドーにドラッグ&ドロップする(zipファイルを展開=解凍しないままだと、こうした処理ができないので注意)。

 また、最新の国勢調査をもとにした、市区町村ごとの人口などのデータが詰まったcsvファイル「国勢調査データ」も、同様にドラッグ&ドロップすると、以下のような状態になる。

1-2. 国勢調査のデータを地図データに合体する

 政府サイトからダウンロードした「N03-22_14_220101」には、土地の形状を表すデータが入っている。これを、各市区町村に割り振られたコードを手がかりに、国勢調査データと突合し、合体させる。

 上図の右上にある赤い丸で囲んだボタンを押すと「属性テーブル」というエクセルの表のようなものが出てきて、データの中身を確認できる。「N03-22_14_220101」では、このコードが「N03_007」という列に入っていて「国勢調査データ」のほうでは「コード」という列に入っている。

 突合作業をするために、左下の「レイヤ」の枠内にある地図データ「N03-22_14_220101」を右クリックしてプロパティ→テーブル結合へと進み、緑色のプラスマーク(下図の左下)をクリックする。

 突合の手がかりとなるデータとして、「結合基準の属性」には「コード」を、「ターゲット属性」には「N03_007」をそれぞれ選び、OKする。

 もとの画面に戻って属性テーブルを開くと、上図のように突合ができていることが確認できる。

1-3. データ分析の結果を地図に表現する

 このデータを使って、たとえば各市区町村の「高齢化率」を算出してみよう。上にある「フィールド計算機を開く」のボタン(赤丸で囲ったところ)をクリックし、新たな列を加える。

 高齢者の人口を全体の人口で割ったものが高齢者の比率なので、左下の「式」のところに以下の数式を書き込む。

"国勢調査データ_65歳以上" / "国勢調査データ_総数"

 データの形式を示す「フィールド型」は、「小数点付き数値」にしておくのを忘れないように(「整数」ではダメ)。出力する属性の名前は、何でもいいが、「高齢者比率」としておく。これでOKを押す。

 再び属性テーブルを開くと、右端に「高齢者比率」の列が加わったことが確認できる。

 次にこれを地図上に表現する。

 もとの画面に戻り、左下の「レイヤ」の枠内にある地図データ「N03-22_14_220101」を右クリックして、プロパティ→シンボロジ、と進む。データの種類を「連続値による定義」に変更し(上図の赤丸)、その中からさらに「高齢者比率」を選び(青丸)、モード(下のほうにある黄色丸)を「自然分類」に変えてOKする。

 上図のように、高齢者の比率が高いほど赤色が濃いエリアとして示される地図を作れた。

1-4. データを軽量化する

 さらにこのデータをウェブサービス「Flourish」で「動いて触れる地図」に変えたいが、このサービスは動きが重い。このため、データをあらかじめ軽量化しておくとよい。

 QGISウィンドーの上のほうに並んでいるメニューから「ベクタ」をクリックし、ジオメトリツール→ジオメトリの簡素化へと進み、「許容範囲」のところを例えば0.001に設定して、「実行」する。これは簡素化の程度を示す数値で、大きいほどデータを軽くできるが、かわりに境界線を示す点が間引かれて、すき間がだんだん増えてくる(とはいえ0.001程度ならほとんど目立たない)。

 軽量化された地図データが「出力レイヤ」という名前で作られた。

1-5. データを出力する

 左下にあるレイヤの枠にある、先ほど作った「出力レイヤ」を右クリックして、エクスポート→地物の保存へと進む。

 形式に「GeoJSON」を選び、適当なファイル名(上記例では「かながわ.geojson」)をつけてOKし、エクスポートする。これでデータが出力、保存できた。

2. Flourishで触れる地図をつくる

 Flourishにログインし、New visualisationというボタン(赤丸)をクリックする。

 折れ線グラフや棒グラフなどのひな型をスルーしてスクロールダウンし、「Projection map」の中にある「Blank」というひな型を選ぶ。

 上の方にあるDataタブ(①)をクリックし、さらに、その下にあるRegionsタブ(②)をクリックしたうえで、Upload dataのボタン(③)をクリックして、先ほど作ったファイル(かながわ.geojson)を選択してインポートする。次に、Regions geometryのタブ(④)をクリックしてからUpload dataボタン(③)をクリックして、もういちど同じファイルをインポートする。

 Regionsのほうは地図に表現したいデータ、Regions geometryのほうは地図にする土地の形状データをそれぞれ置いておく場所になっている。今回は両方が「かながわ.geojson」ファイルにまとめて入っているので、同じものを2回インポートした。

 インポートしたデータから、地図に使うものを選んでいく。Regionsのタブをクリックし、RegionsとRegions geometryのデータ突合の鍵になる「Geo region key」にはAを、Nameには市区町村名を表すEを、地図に色で表現するデータ「Color by」には高齢者比率を示すGを入力する。(2023/4/27追記:仕様の変更で「Geo region key」は「ID」に変わった模様)

 もうひとつのRegions geometryのタブをクリックし、土地の形状を示すGeoJSON geometryと、データ突合に使うGeo region keyの両方にAを入力する。(2023/4/27追記:同じく「Geo region key」は「IDs to match」に変わった模様)

 Previewのタブをクリックし、右にあるProjectionのBoundsをAutoにすると、神奈川県の地図が上のように描画される(そのままだとWorld=世界全体が描かれるので、神奈川県は小さすぎて見えない)。高齢者比率の高いところが濃い青色で表現されている。

 さらに左上にある、矢印が向かい合ったボタンをクリックすると、全画面でプレビューできる。気に入ったら編集画面に戻り、右上のExport & publishボタンを押せば、完成版をウェブ上に公開できる。

 お疲れ様でした!

この記事が気に入ったらサポートをしてみませんか?