見出し画像

【実習編】非専門家のためのQGIS ~地形のグラデーションを描こう~

I. はじめに

QGISでは、「XYZ Tiles」に登録した地理院地図の標高や陰影起伏を呼び出すことで、簡単に地形を描くことができます。下図は「【実習編】非専門家のためのQGIS ~山の分布図を描こう~」で作成したマップです。このマップでは地理院地図のタイル画像を使いました。

画像1

しかし、タイル画像はユーザが自由に配色を設定できないという欠点があります。地理院地図を使うと、単色の濃淡で地形表現を描くことはできますが、マルチカラーによるグラデーションを設定することは難しいです。
地形表現を自由にデザインするためには、地形データを自分で用意しなければなりません。

「基盤地図情報を使った地図の作成」で利用した「基盤地図情報ダウンロードサービス」では、数値標高モデル(DEM)と呼ばれる地形データを入手できます(※1)。今回はDEMを用いて、鮮やかな地形図を作成してみましょう。

※1 DEMは、Degital Elevation Model の略で、「デム」と呼びます(海外ではディーイーエム)。DEMは標高をある一定の間隔で数値化したデータで、その間隔は 5m、10m、1km など幾つかあります。間隔が短いほど高精度ですが、データ容量が莫大に跳ね上がります。似たようなデータに、DSM(数値表層モデル:Digital Surface Model)というものもあります。こちらは「ディーエスエム」と呼ばれます。DSMは地表に建物や木などがあった場合、その高さを含んだ地表面の高さを数値化したデータです。


II. 地形データの準備

1. 基盤地図情報DEMデータのダウンロード

基盤地図情報ダウンロードサービスからDEMデータを入手します。下記URLから基盤地図情報ウェブサイトにアクセスします。データのダウンロードにはログインが必要なので、ログインしておきましょう。アカウントが無い場合は先に新規登録を済ませておきます。

数値標高モデル」の[ファイル選択へ]ボタンをクリックし、次のページに進みます。

画像2

地図から、ダウンロードする地域の範囲を含むメッシュを選択します。
このnoteでは、隠岐諸島の島後(東の丸い島)を対象としました。下図のように島後を含む10個のメッシュを選択します。

メッシュを選択できたら、[ ダウンロードファイル確認へ ] ボタンをクリックして次に進みます。

画像3

[ 全てをチェック ] ボタン →  [ このページをまとめてダウンロード ] ボタンの順でクリックし、選択肢した全ファイルをダウンロードします。

画像4

ダウンロードファイルはzip形式で圧縮されています。zipファイルを解凍し、xmlファイルを1つのファイル内にまとめておきましょう。

画像5

---   ---   ---   ---   ---   ---   ---   ---

2. xmlファイルをgeotiffに変換

基盤地図情報の基本項目はxmlのままQGISに読み込むことができましたが、数値標高xmlはそのままの形式では読み込むことができません。
したがって、数値標高xmlを利用するためには、QGISで読み込み可能な形式への変換が必要です。

ここで、株式会社エコリスが公開している「基盤地図情報 標高DEMデータ変換ツール」を利用します。
標高DEMデータ変換ツールは、xmlをgeotiffという画像ファイルに変換します(※2)。さらに、複数のxmlを指定した場合は、それらを結合して1つのgeotiffにしてくれます。また、陰影起伏図も同時に出力されます(※3)。
まず、エコリスのウェブサイトから変換ツールをダウンロードします。zipファイルでダウンロードされるので解凍しましょう。

※2 ラスターファイル(画像)のファイルフォーマットとして有名なものには、png や jpeg などがあります。同じように、tiff と呼ばれるラスター形式もあり、拡張子は「.tif 」になります。tiff のうち、座標値情報をメタデータに持っているファイルのことを、GIS 界隈ではgeotiffと呼んで区別しています。しかし、geotiff も拡張子は「.tif 」で見た目に差はなく、GIS ソフト以外で開く場合は普通のtiffと同じように扱われます。
※3 geotiff の結合や陰影起伏図の作成は、QGIS でも行うことができます。正確に言えば、変換ツールも QGIS も「 GDAL 」というライブラリを使って画像処理を行っています。GDAL が使える環境を用意すれば、コマンドプロンプトでも R でも実行できます。

画像6

解凍フォルダの中の「変換結合.vbs」というファイルで、変換操作を実行します。「変換結合.vbs」をダブルクリックしツールを実行しましょう。

画像7

まず、作成するラスターの座標系を選択します。標高は距離で定義される値なので、座標系も距離で定義される投影座標系を選択したほうが無難です(※4)。ここでは平面直角座標系を用いるため「2」を、続いて隠岐は第III系なので「3」を指定します。

※4 作成したラスターで地図を描くだけならば、地理座標系でも問題ありません。しかし、標高データは距離に基づく様々なラスター解析に発展させられるデータであり、そのような分析を実行するには投影座標系で定義しておくことが推奨されています。

画像8

陰影起伏図を作成する場合は [ はい ] を選択します。続いて、xmlファイルが入ったフォルダを指定します。

画像9

海域の標高を設定します。基盤地図情報の標高データは陸地部分しかありません。一方、ラスターはその作成領域のピクセル全てに値を持つので、基盤地図情報の値の無い部分、すなわち海域部分にダミーで値を入れなければなりません。このとき、「0」や「-9999」がよく利用されます。「0」にすると、陸域で海抜ゼロメートル地帯があると海域と区別がつきにくくなるので、「-9999」の方が良いと思います。
したがって、[ いいえ ] をクリックして海域に「-9999」が入るように指定します。次のボックスで [ OK ] をクリックし、変換を実行しましょう。

画像10

変換が終了すると、xmlを保存していたフォルダ内に、各XMLに対応するgeotiffと、全領域を結合した「merge.tif」、陰影起伏図を作成した場合は「merge_shade.tif」も新しく作成されています。
以降は「merge.tif」と「merge_shade.tif」があれば良いので、他のファイルは削除してしまって問題ありません。


III. QGISで地形データを表示する

1. ラスターデータの読み込み

それでは、QGISを起動し「merge.tif」と「merge_shade.tif」を開きましょう。「メニューバー」の「レイヤ」から「レイヤの追加」→「ラスタレイヤの追加」を選択し、ラスタの追加ウィンドウを開きます。そして「merge.tif」と「merge_shade.tif」を選択し、[追加]ボタンをクリックします(※5)。

※5 [ Ctrl ] + [ Shift ] + [ R ] のショートカットコマンドでも開きます。また、ブラウザから選択したり、tiff ファイルアイコンを QGIS 上にドラッグ&ドロップしたりしてもデータを追加できます。

画像11

tiffが読み込まれると、QGIS上にグレースケールで描かれた標高画像と陰影起伏図が描かれます(※6)。陰影起伏図だけでも地形の様子が分かったような気になれますが、ここから配色やレイヤー合成などの設定を変更し、より綺麗な地図にしてみましょう。

※6 2つのラスターは重なって表示されるので、上位に読み込まれたレイヤーのみ見えています。レイヤーパネルで重なり順を変更したり、表示チェックを外したりするれば、下に隠れたラスターを確認できます。下図は、陰影起伏図を表示したものです。

画像13

---   ---   ---   ---   ---   ---   ---   ---

2. 陰影起伏図の設定

地形の起伏を綺麗に表現するには、標高や陰影起伏図、傾斜図、曲率図といった複数の画像を用意し、それぞれ配色やレイヤー合成の手法などを調整し、オーバーレイして仕上げます。今回は、標高や陰影起伏図の2つの画像で地形を描きます。

まず、レイヤーの表示順について、「merge_shade.tif」が一番上に、続いて「merge.tif」が来るようにします。
次に、「merge_shade.tif」のプロパティを開き、「シンボロジ」を選択します。ウィンドウ中段にあるカラーレンダリングで、混合モードを「オーバーレイ」に変更します。
オーバーレイは、明るい部分はより明るく、暗い部分はより暗くなるよう描画されます。ソフトライトとハードライトも強調の度合いが異なるだけで同じような効果を示すので、好みに応じて変更して下さい(※7)。

※7 下に置くレイヤーの配色が明るいと、オーバーレイを設定すると明るくなりすぎることがあります。この場合は、乗算や焼き込みの方が見やすくなるかもしれません。また、混合モードは通常のまま、シンボロジの「透過性」で不透明度を40%程度にすると地形を表現できることもあります。混合モードの種類と透過性の設定の組み合わせを色々試し、調節しながら最適解を探しましょう。

画像12

---   ---   ---   ---   ---   ---   ---   ---

3. 標高図の設定

◆ デフォルト設定の適用

merge.tif」では、標高値に応じたグラデーションを設定しましょう。まず、プロパティの「シンボロジ」で、レンダリングタイプを「単バンド疑似カラー」に変更します。そして、カラーランプを選択します。ここでは「Viridis」というデータサイエンス界隈でよく見るカラーランプを選択してみました。

画像14

配色とレイヤー合成を変えた結果が下図になります。地形の状況を鮮やかに描くことができました。ただ、配色について「地形表現として適切か?」と、思う人もいるかもしれません(※8)。

※8 「地形表現として適切な配色」というものが存在するのかどうか分かりませんが。無難な配色であれば、低地は水色や薄黄色、平野は緑~濃緑、山地や高地では茶色、灰色、白といった感じでしょうか。実際には、地図に載せる他の情報(道路や建物、統計シンボル、注記など)の見やすさも配慮して配色を設定します。

画像15


◆ カタログ設定の適用

カラーランプのプルダウンメニューから「新しいカラーランプを作成」を選択すると、いろいろなカラー階調を適用できます。カラーランプの作成では、自分で階調を設定したり、QGISに登録された階調を読み込んだりできます。

「新しいカラーランプを作成」では、最初に作成するタイプを選択します。5つのタイプが用意されており、自作する場合は「グラデーション」などを、他のユーザのカラーランプを使用する場合は「カタログ:cpt-city」を選択します。

カタログ:cpt-city」には、テーマごとにさまざまなカラーパレットが用意されています。Topographyには、地形表現に合ったカラーパレットがあるので、選択して [ OK ] ボタンをクリックします。

画像16


◆ カラーパレットの自作

グラデーション」タイプを選択すると、カラー設定のウィンドウが開きます。グラデーションの両端の色は、「色1」、「色2」でそれぞれ設定します。また、カラーバーをダブルクリックするとカラー分岐点を追加して新しい色を指定できます。カラー分岐点はスライドで移動させることもできます(※9)。また、[ delete ] キーで分岐点を削除できます。設定が完了したら、[OK]ボタンをクリックしましょう。

※9 平野と山地の分布のバランスをみながらトライ&エラーでカラー分岐点の位置を調節します。

画像17

グラデーションを作成できたら、シンボロジに戻って標高データへの適用方法を設定します。補間の設定を「線形」にすると、滑らかなグラデーションで標高が描かれます。

画像18

補間の設定を「個別の」、分類モードを「等分位」にすると、指定した区間を等間隔で色分けできます。区間をキリのいい数字に設定しクラス数を調整すれば、100m間隔で色分けできます。
隠岐島(島後)のDEMでは、標高の最小値は-0.4、最大値は607.0です。そこで、最小値・最大値をキリよくそれぞれ「0」、「600」として、クラスを「6」に設定すると、100m未満、100~200m、・・・、500m以上の100m間隔の6段階で標高を描くことができます。

画像19

---   ---   ---   ---   ---   ---   ---   ---

3. 隠岐島の地図を仕上げる

最後に、地形表現に河川情報を加えたり、レイアウト設定でラベルを加えたりして「隠岐島の地図」として仕上げましょう。

まず、国土数値情報ウェブサイトから島根県の「河川」と「行政区域」のシェープファイルをダウンロードし、QGISに追加します。

河川データには、1級河川や2級河川といった区間種別を表すコードが入ったフィールド「W05_003」があります。シンボロジの設定で、1級河川や2級河川は太く、指定区間外の河川は細く描かれるように設定します。
具体的には、隠岐の島に1級河川はないので、2級河川を示すコード「3」を太くすればOKです。

画像20


行政区域にはアウトグローという効果を設定します。行政区域のプロパティからシンボロジを開き、ウィンドウ下部にある描画効果にチェックを入れその右のボタンをクリックします。効果のプロパティでは、アウターグローをチェック&選択します。下の各種設定で、広がりやぼかし半径、単一色などを変更しましょう。ここでは、色を暗めの青色(HTML表記法:#05272c)に設定しています。

画像21

アウトグローによって、行政区域(海岸線)から海側に向かってぼかし効果が表示されました。

画像22


QGISは、地図キャンバスの背景色を変更できます。メニューバーの「プロジェクト」から「プロパティ」を開きます(または、[ Ctrl ]+[ Shift ]+[ P ] )。
プロパティウィンドウの「一般情報」にある「背景色」を変更し [ 適用 ] ボタンをクリックすれば、地図キャンバスの背景色が変わります。ここでは海っぽく、また島とのコントラストをはっきりさせるため暗めの青(HTML表記法:#004462)を指定しました。

画像23

最後に、レイアウトモードで方位記号や縮尺、ラベルなどを追加して地図を完成させましょう。QGISのラベル機能は貧弱なので、できれば文字の追加はIllustrator上で仕上げたいですね。

画像24


IV. おわりに

今回は、基盤地図情報のDEMを用いて地形表現用のデータを作成し、グラデーションの設定を行いました。きれいな地形表現の作成はセンスが問われ、難しいですね。センスは一長一短で磨かれるものではありませんが、世界中のデザイナーが日々SNSに素晴らしいマップを投稿していますので、そのマップを参考にカラーランプのバリエーションを増やしていくのが上達への近道になるでしょう。
今回は標高値と陰影起伏図を用いましたが、DEMからは等高線や傾斜図、曲率図、傾斜角図、傾斜方向図なども作成することができ、これらを利用することで更に地形表現を工夫することができます。等高線等の作成方法は別のnoteで紹介したいと思います。

記事の内容でもそれ以外でも、地理やGISに関して疑問な点があれば、可能な限りお答えしたいと思います。