【実習編】非専門家のためのQGIS ~白地図を描こう_都道府県界~
I. はじめに
「白地図を描こう」の第2弾です。今回は日本全体を描いた、都道府県界の白地図を作成します。前回の市区町村界の作成や、それ以前の世界地図の作成よりも需要のありそうな内容ですね。むしろ、何故これを1番最初の記事にしなかったのか?というくらい、GISを使って作業をするにあたって重要な内容かもしれません。
ここで、なぜ「都道府県界の白地図の作成」が重要なのか、なぜ1番最初の記事にしなかったのかを簡単に記しておきます。
まず、なぜ重要なのか。
1. 都道府県界の白地図の汎用性が高い。
2. 都道府県界のGISデータの汎用性がメチャクチャ高い。
この2点なのですが、2番目の方が圧倒的に重要です。つまり都道府県界のGISデータは白地図を描くために使えるのはもちろん、コロプレスマップにも使えるし、都道府県界を何らかの地図の背景図として使うこともできます。都道府県単位の空間的な検索や集計、マスキング等にも使えます。とにかく、あらゆる場面で利用するGISデータになります。
それでは、そこまで重要なGISデータをなぜ1番最初に取り上げなかったのでしょうか。それは...
1. 「都道府県界の」GISデータを提供しているところがない(※1)
これまでの記事では、ウェブ上からGISデータをダウンロードしたら、それをQGISに読み込むだけで目的の地図を描くことができました(座標系やスタイルの変更はしましたが)。しかし、都道府県界はウェブから入手したGISデータそのものを加工する作業を経ないと作成できません。
GISデータの世界は、基本的に「小は大を兼ねる(※2)」です。小地域の詳細データを積み重ねれば広域のデータにできるけど、その逆の手順である広域データから小地域を作ることは困難です。それなら、とりあえず小地域データを公開しておけば問題ないだろ?という具合です。都道府県界のような「大」のデータは自分で「小」から作らなければなりません。
そのような理由で、これまでの内容より一段高いレベルの内容となるので、ここまで引き伸ばしてきました。とはいえ、決して難しい作業が発生するというわけではありませんし、ここで行う内容を身に付けることができれば、ウェブ上にあるGISデータの活用の幅が広がります。
※1 1.データ形式がシェープファイルでなくてもいい、2.公共性の高い機関からの入手でなくてもいい、3.(公共性は高いが)GISデータの入手先として皆が薦める教科書的なウェブサイトでなくても構わない、のであればもちろん都道府県界を入手できる場所はありますが。
1.はGeoJSONやKMLなど。
2.はRやPythonでGISをやる人向けのデータ公開リンク、個人がGitHubなどで公開しているものなど。
3.は最近流行りのオープンデータサイトなど。
※2 言い換えれば、細は粗を兼ねる。大縮尺は小縮尺を兼ねる。
II. シェープファイルの準備
今回用意するGISデータは、全国市区町村界データになります。このGISデータを入手できる主要なウェブサイトは3つあります。
1. ESRIジャパン 全国市区町村界データ
2. 国土数値情報 行政区域
3. 地図で見る統計(統計GIS)
1.はArcGISで知られるESRIが提供する無料で使えるGISデータです。GISソフトで扱いやすいようクレンジングされており、属性テーブルには簡単な人口統計も付与されています。この3つの中では一番扱いやすGISデータです。しかし、ArcGIS以外のGISソフトでは使用不可という使用規定が定められているため、このnoteでは利用できません。
しかし、大切なことなのでもう一度書きます。この3つの中では一番扱いやすGISデータです。
2.は大阪の白地図を描く際に使った国土数値情報 行政区域データの全国版です。今回もこのデータを使って作業を進めます。
3.はe-Statという政府統計ポータルサイトの中で公開されているGISデータです。過去の都道府県境界データは独自の県境・海岸線が引かれたデータとなっていますが、2015年国勢調査データから県境・海岸線は国土数値情報とぴったり重なるデータになりました。行政界の最小単位が町丁目単位となっており細かい地域区分が特徴です。また、e-Statで公開されている各種統計データと結びつけて利用できることが利点です。欠点は、全国のデータを一括でダウンロードできない点です。
--- --- --- --- --- --- --- ---
それでは、国土数値情報ウェブサイト( → リンク )にアクセスしましょう。政策区域カテゴリから「行政区域」を選択を選択し、ダウンロードページに進みます。
続いて、ダウンロードするデータの選択から「全国」を選択し、全国データの最新版をダウンロードします。ファイルサイズが約400MBとやや大きいので注意して下さい(※3)。ダウンロードファイルはzip圧縮されているので、展開しておきます。
※3 最新データは、県境や海岸線のデータ精度が詳細になっている一方、ファイルサイズも激増しています。ファイルサイズが大きいと、単に扱いづらいだけでなく、QGISで行う様々な処理(これから行うディゾルブなど)で余計に時間が掛かったり、QGISが予期せぬエラーで強制終了する原因になったりします。また、海岸線が黒く塗りつぶされむしろ汚く見えます(このnoteの最後のにある完成図を確認ください)。今回描こうとしている全国レベルの縮尺では、最新データが持つような精度は不要なので(どうせ見えない)、より軽いファイルを選んでも問題ないと思います。
III. Shapefileの読み込み
QGISを立ち上げ、データソースマネージャからダウンロードしてきたシェープファイルを読み込みましょう。メニューバーから「レイヤ」→「レイヤの追加」→「ベクタレイヤの追加」を選択します(または、[Shift] + [Ctrl] + [V])。エンコーディングは「Shift-JIS」に設定します。
シェープファイルを追加すると、下図のように全国の市区町村界を描いたマップが表示されます。次章では、このGISデータから都道府県界のGISデータを作成します。
IV. 同じ属性のフィーチャを融合(ディゾルブ)
市区町村界のデータを都道府県界データに加工するには、同じ都道府県に属するフィーチャを1つにまとめて結合できればよさそうです(※4)。フィーチャが持つ情報(属性値)は属性テーブルから確認できます。レイヤを右クリックし「属性テーブルを開く」を選択して属性テーブルを開きましょう。
※4 フィーチャ(feature)とは、地理情報科学(GIScience)において地図上に表現される事象・現象のことを意味する概念的な用語です。日本語では「地物(ちぶつ)」とも呼ばれます。道路や川のように実在するもののほか、行政界のような実在しない概念的なもの、ポイントデータで表す建物代表点のような抽象化されたものもフィーチャに含みます。GISソフト上では、形状と属性情報からなるデータ(主にベクトルデータ)の要素1つ1つがフィーチャに該当すると思って問題ないでしょう。例えば、市区町村界データでは、市区町村の1つ1つがフィーチャです。
属性テーブルをみると、「N03_001」というフィールド(列)に、各フィーチャが属する都道府県の情報が書かれています。このフィールドの属性値が同じもの同士を1つに結合できれば、都道府県界のデータが作成できたことになります。
属性テーブルを確認できたら、右上の [×] から属性テーブルを閉じます。
QGISには、同じ属性値を持つフィーチャを1つにまとめる融合(ディゾルブ)という機能があります(※5)。今回は、この機能を使って市区町村に分かれたデータを都道府県単位にまとめて結合します。
ディゾルブは「メニューバー」の「ベクタ」から「空間演算ツール」→「融合(dissolve)」で呼び出すことができます。
※5 QGISでは「融合」という名前で呼ばれていますが、GISの世界ではArcGISの機能名である「ディゾルブ」で呼ぶことの方が一般的です。「ディゾルブ」で慣れる方が良いと思いますので、この記事でも「ディゾルブ」で表します。
ディゾルブウィンドウで設定する項目は3つあります。
1つ目は、ディゾルブするレイヤの選択です。QGISに読み込んでいるレイヤが市町村界データのみであれば、自動でそれが選択されます。QGISに複数のレイヤを表示しており、市町村界データ以外のレイヤが選択されている場合は、ドロップダウンから市町村界データを選択します。
2つ目は、ディゾルブフィールドの設定です。「基準となる属性(複数可)」の右にあるボタンをクリックし、設定ウィンドウを開きます。ここで、「N03_001」にチェックを入れ[OK]ボタンをクリックします。これは、先ほど属性テーブルで確認したように、都道府県名が記入されているフィールド名です。同じもの同士を結合したい情報が含まれているフィールド名を選択します。
3つ目は出力レイヤの設定です。ディゾルブされたGISデータは、新規のファイルとして出力されるため、保存先やファイル名を指定します。右のボタンから「ファイルに保存」を選び、シェープファイル形式で出力先を指定しましょう(※6)。
すべて設定できたらウィンドウ下部にある[実行]をクリックします。
※6 「仮レイヤの作成」(一時レイヤの作成)とは、実行データをファイルとして出力せず、メモリ上に仮置きする設定です。QGISで作業している間はファイル出力した時と同様に扱えますが、QGISを閉じると仮レイヤも消えます。QGISは「強制終了しやすい」ソフトウェアであることから、仮レイヤではなくファイル出力した方が良いと思います。
実行を開始すると、下図のように進捗バーが少しずつ進みます。QGISのディゾルブはかなり時間がかかります。今回の場合、20~30分は待たされます!!気長に待ちましょう。
ディゾルブ実行中のウィンドウ画面
V. 座標系の修正
1. 座標系の確認
ディゾルブが完了すると、下図のように都道府県単位で結合されたレイヤが新しく追加・描画されます。このGISデータを用いて、都道府県界の白地図を描くのですが、その前に座標系を確認しましょう。
今回表示されている地図も、なんとなく東西方向(横方向)に引き伸ばされている気がしませんか?ウィンドウ右下にある座標系コードを見ると、「EPSG:4019」となっています。これはGRS80楕円体地理座標系でした。これを適切な投影座標系に変更しましょう。どんな座標系を適用すればよいでしょうか?
前回、大阪の白地図を描くときに使用した平面直角座標系は、大縮尺の地図に適した座標系であり、日本全国を対象とするような小縮尺の地図には向きません。
そこで今回は、かつて日本全国の天気図などにも利用されていた(※7)、ランベルト正角円錐図法を利用します。ただし、日本を中心に描くためにはパラメータの変更が必要です。
※7 現在は、ポーラーステレオ図法が使われています。
--- --- --- --- --- --- --- ---
2. 座標系を定義
日本列島の描画に適したランベルト正角円錐図法の座標系を定義するため、「メニューバー」の「設定」→「カスタム投影法...」から「カスタム座標系の定義」ウィンドウを開きます。続いて、ウィンドウの右にある[+]ボタンをクリックして新規CRSを追加し、ウィンドウ右下のパラメータの設定ボタンから「座標系の選択」ウィンドウを開きます。
フィルターに「asia_lambert」と入力して、世界の座標参照系から「Asia_Lambert_Conformal_Conic」を選択し[OK]をクリックします。
パラメータの数値を変更します。今回変更するのは、次の4つの値です。
+lat_1:標準緯線の1つ。北緯25度に設定。
+lat_2:標準緯線の1つ。北緯45度に設定。
+lat_0:中心緯度。北緯35度に設定。
+lon_0:中心経度。北緯135度に設定。
ここで、標準緯線とは、距離のひずみが無くなる緯線のことで、この値から離れるにつれ歪みが大きくなります。今回は日本の最南端、最北端の緯度の少し手前になるように数値を決めましたが、これが最適であるという根拠はありません。この設定で描かれた地図を見て、不具合があれば修正しましょう。
# 変更前
+proj=lcc +lat_1=30 +lat_2=62 +lat_0=0 +lon_0=105 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
# 変更後
+proj=lcc +lat_1=25 +lat_2=45 +lat_0=35 +lon_0=135 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
--- --- --- --- --- --- --- ---
3. 定義した座標系を適用
新しい座標設定を追加できたら、その設定を現在表示している地図に反映させましょう。QGISウィンドウの右下にあるEPSGをクリックして「プロジェクトプロパティ」を開き、先ほど作成した座標系を選択します。
下図がカスタマイズしたランベルト正角円錐図法を適用した日本地図です。横に伸びていた日本の形状が、見慣れた姿に直りました。
VI. スタイルを白地図に変更
最後に、スタイルを変更して白地図にしましょう。ディゾルブによって作成された都道府県界レイヤをダブルクリックして、「レイヤプロパティ」を開きます。レイヤプロパティの左のメニューから「シンボロジ」を選択し、シンボルの設定画面に切り替えましょう。
シンボルレイヤタイプのプルダウンメニューから「アウトライン:シンプルライン」を選択します。
スタイルをアウトラインのみ表示する設定にすると、下図のように白地図が出来上がります。これを画像やPDF形式で出力すれば、都道府県界の白地図の完成です。
VII. 沖縄県、離島の表示位置
日本全図をそのままの位置で描くと、小縮尺になってしまいがちです。天気図や本・雑誌に載っている地図では、沖縄や伊豆諸島などの離島の位置を日本海などの空いた位置に移動させ、全体の縮尺を大きく描くことがあります。
離島の表示位置の移動は、Illustrator上で作業する方が楽ですが、QGISでも印刷レイアウトの設定から行うことができるので、その方法を紹介します。
--- --- --- --- --- --- --- ---
1. 地図アイテムの追加
「メニューバー」の「プロジェクト」から「新規印刷レイアウト」を選択し、レイアウトウィンドウを開きます。そして、レイアウトウィンドウの「アイテムの追加」から「地図を追加」を選び、下図のように地図アイテムを2つ追加します。キャンバス範囲は1つ目の地図アイテムを追加した時に、縦長に変更しています。
--- --- --- --- --- --- --- ---
2. 本土の描画範囲を調整
まず、メインとなる地図アイテムの描画範囲を設定します。ツールバーの「アイテムのコンテンツを移動」ツールを使って、日本地図の移動や拡大・縮小を行います。また、アイテムプロパティの「縮尺」から数値を指定して微調整します。
--- --- --- --- --- --- --- ---
3. 沖縄県の配置、描画範囲を調整
続いて、地図2の描画範囲を調整します。地図2には沖縄県を表示させましょう。沖縄県の縮尺は、地図1に合わせる場合と、より大縮尺にして見やすくする場合があります。今回は前者を採用します。
最初に「アイテムを選択/移動」ツールで枠の大きさを調整し、次に空きスペースに配置します。そして、地図1の縮尺の値をコピーして、地図2の縮尺に貼り付け、縮尺を合わせます。最後に「アイテムのコンテンツを移動」ツールで沖縄県が表示されるように地図を移動します。
--- --- --- --- --- --- --- ---
4. 区切り線を追加
沖縄県と本土の間に区切り線を追加し、沖縄県を本来の位置関係とは異なる場所に配置していることを示しましょう。「アイテムを追加」から「ノードアイテムを追加」→「ポリラインを追加」を選択します。カーソルが十字に変わります。ラインの頂点位置(開始、折れ線、終了)でクリックして線の形状を決定し、最後に右クリックして確定します。
--- --- --- --- --- --- --- ---
5. 都道府県界の白地図完成
全国市区町村界データから都道府県界の白地図が完成しました。今回は沖縄の位置だけ変更しましたが、小笠原諸島や北海道の位置を移動し、縮尺を大きくすることもあります。
VIII. おわりに
今回のnoteでは、都道府県界の白地図を作成しました。その作業の中で、「ディゾルブ」という同じ属性値を持つフィーチャを1つにまとめる空間演算ツールを使い、市区町村界に分かれた境界線を都道府県界でまとめました。ここで作成された都道府県界のシェープファイルは、白地図のみならず様々な場面で利用できます。
レイアウト設定では、1つの日本列島のレイヤを本土と沖縄県の2つの地図アイテムに割り当て、分けて描くことによって、大縮尺の日本地図を描くというテクニックを紹介しました。
このような、1つのGISデータを複数の地図アイテムに使いまわし、地図のレイアウトを構成していくというテクニックもよく使われます。例えば、下図では、拡大した表示範囲(大阪府)が日本全体のどこに位置しているのかを2つの地図アイテムを用いて表しています。
いろいろな小技を駆使できるようになると、作図作業が楽しくなり、地図表現もますます豊かになります。今後も、このような小技を紹介していくので、ぜひ身に付けて地図デザインに活用してください。