見出し画像

【実習編】非専門家のためのQGIS ~DEMから等高線を描く~

I. はじめに

地図上で地形の様子を表現する手法として最も一般的なものが等高線でしょう。等高線とは、同じ標高の場所を線で結んで描いたもので、一般に、一定の標高間隔ごとに描きます。QGISでは、DEMがあれば等高線を簡単に作成できます。このnoteでは、等高線の作成と、その描画設定について紹介してきます。


II. DEMデータの準備

DEMデータは基盤地図情報ウェブサイトからダウンロードし、株式会社エコリスの「基盤地図情報 標高DEMデータ変換ツール」を使用してgeotiffに変換しておきます。手順の詳細は別記事「【実習編】非専門家のためのQGIS ~地形のグラデーションを描こう~」で紹介しています。ここでは、隠岐諸島の島後を対象としてDEMデータを用意しました。

また、(国研)農研機構が運営しているラスターデータ配信サービスでもDEMデータを取得できます。こちらは10mメッシュのみの提供となっていますが、ブラウザ上の操作だけでgeotiffが取得できます。下記URLから農研機構のページにアクセスし、ウェブサイトの真ん中にある「切り取りアプリ」をクリックします。

画像1

ボタンをクリックすると日本地図が表示されます。まず、データを取得したい地域まで日本地図を拡大しましょう。次に、ダウンロードしたい場所で地図上をクリックすると枠が表示されます。枠の大きさはブラウザ左下の「横」、「縦」で調節できます。ただし、指定できる枠サイズの幅は最大で1024まで、画像サイズは262144(512×512相当)という制約があり、そのサイズで収まらない場合は複数回に分けてダウンロードしなければなりません(※1)。ダウンロードしたい範囲を枠で囲うことができたら、[ ダウンロード ]ボタンをクリックします。

※1 非常に狭い範囲なので、広域のDEMデータが必要な場合は、基盤地図情報ウェブサイトを利用した方が無難です。

画像2


III. 等高線の作成

QGISを立ち上げ、DEMデータを読み込みましょう。[ Ctrl ] + [ Shift ] + [ R ] のショートカットキーでデータソースマネージャのラスター読み込みウィンドウを開き、読み込むgeotiffを指定します。

続いて、等高線の作成ウィンドウを開きます。メニューバーの「ラスタ」から「抽出」→「等高線(contour)」を選択します。

画像3

「等高線ウィンドウ」では、作成する等高線の間隔を指定します。間隔を小さくすると大量の等高線が作成され、ごちゃごちゃとして見にくくなったり、描画処理が重くなったりするため、国土地理院の地形図に倣って10mや20mあたりを設定するのが良いと思います(※2)。
保存先を指定して[ 実行 ]ボタンをクリックすると、プログラムが実行され、作成された等高線がレイヤーに新しく追加されます。

※2 等高線を作成する範囲の地形状況や作成目的にも依りますが。
例えば、平野における旧河道を等高線で描く場合は、1~2m程度の狭い間隔を指定しないと微地形を表現することはできません。

画像4

画像5


IV. 等高線を使った地形表現

1. 一定の標高間隔で線を太くする

国土地理院の地形図では、例えば5万分1地形図では、等高線は細い線で描かれた20m間隔の主曲線と、太い線で描かれた100m間隔の計曲線の2種類の線で描かれています。同じように、これをQGIS上で描くにはどうすれば良いでしょうか。

生成した等高線は属性情報に標高値を持っているので、シンボロジの分類から100の倍数の等高線に対して太く描かれるように設定すれば描けそうですが・・・。

画像6


しかし、等高線の設定を1本ずつ設定していくのは面倒臭いですね。特に、線の太さや色を変更したくなった時、1つ1つ設定をやり直さなければなりません。

もっと手っ取り早い方法があります。それは、100m間隔の等高線も別に作成し、太線のシンボルを指定してレイヤーの上位に重ね合わせてしまうことです(※3)。

もう一度、等高線の作成ウィンドウを開き、間隔を「100」とした等高線を作成しましょう(※4)。そして、作成した100m間隔の等高線のプロパティを開き、ストローク太さを20m間隔の等高線よりも若干太くなるよう数値を調整します。

※3 どうしても1つのシェープファイル内で設定を済ませたい場合は、描画用の別フィールドを用意し、そのフィールドの値を用いて線の太さを場合分けします。フィールド値は、フィールド演算で「if( EVEV % 100 = 0, 1 ,0)」のような演算式を用いて算出します。つまり、標高を100で割ったときの余りが0ならフィールド値に1を、そうでなければ0を代入させます。フィールド値が算出できたら、「1」の値を持つ等高線に対して太く設定すればOKですね。
※4 最初に等高線を10m間隔で作成している場合は、ここで設定する間隔は「50」です。

画像7

設定を変更した結果が下の図です。20m間隔の等高線の太さはデフォルト値(0.26ミリメートル)、100m間隔の等高線の太さは0.46ミリメートルとしました。また、線の色を地形図の等高線っぽく茶色に合わせています。これだけでも、等高線って感じが出たマップになっていますね。

画像8

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

2. 等高線にラベルを表示する

現在の等高線図では、どの線が標高何メートルを表しているのか分かりにくいですね。QGIS上であれば、「地物情報表示」カーソルを使って属性情報から標高値を確認することもできますが、もし、このまま画像ファイルとして出力したらそうもいきません。そこで、等高線にラベルを表示させてみましょう。

100m間隔の等高線のプロパティを開き、左のメニューから「ラベル」を選択します。「ラベル」を開くと、最初はドロップダウンで「ラベルなし」が設定されており、ウィンドウ上に何も情報が表示されていません。これを「単一のラベル」に変更します。

画像9

「単一のラベル」に変更すると、ウィンドウの表示が変わり、様々な設定項目が現れます。いろいろとこだわったラベルを設定することができますが、今回、標高値ラベルを表示するにあたり重要な設定項目は3つあります。

まず第1に、ラベルに使う情報の選択。ラベルはGISデータの属性値を使って表示されます。ウィンドウ最上部にある「ラベル」から、標高値が入ったフィールドを選択しましょう。QGISの機能で等高線を作成した場合、デフォルトでは「ELEV」フィールドに標高値が入っています。

第2に、テキストバッファの設定。ごちゃごちゃした等高線の上にラベルを描いても、余計に煩雑になり見難くなってしまいます。そこで、ラベルテキストの周りにバッファを描画し、文字の周りを白く塗りつぶすことでラベルの可読性を良くします。

第3に、ラベルの表示場所。デフォルトでは「ラインより少し上」となっていますが、等高線の場合はライン上にラベルを表示させた方が、等高線とラベルの対応が分かりやすいと思います。したがって、許容される位置を「ライン上」のみチェックして設定を適用します。

画像10

ラベル設定を適用すると、下図のようになります。100m間隔の線に対し、その線上に標高値が表示されました。また、バッファが効いているので、文字と等高線の交差もあまり気にならないと思います。

ただし、ラベルは地図の縮尺に関係なく設定したフォントサイズで描画されます。したがって、下図のように大縮尺に合わせて設定したラベルは小縮尺には合わないので、最終的に描く地図に縮尺に合わせてラベルの設定を行いましょう。

画像11


V. おわりに

今回は、DEMから等高線を作成し、国土地理院の地形図のような描画設定にする方法を紹介しました。地形図の読図は小・中学生の頃に社会の授業でやっていると思いますので(読図できるかどうかはともかく)、馴染みのある地図表現となったのではないでしょうか。
このほか、背景や線の色を変更したり、他のデータと組み合わせたりすることで様々なデザインを生み出すことができると思います。地形図風の描画設定が作れたら、ぜひオリジナルな描画設定を追及してみてください。



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