GISで傾斜と日射量解析

調査

前回

 

目標

・自分の土地の傾斜の解析

・周辺地形を考慮した自分の土地の日射量の解析

※住所分かっても秘密にしてね!
スーパーハカー(意味違)なプロGISユーザーなら分かりそうだ

 

標高データの入手と変換

地形解析を自前で行う場合、基本的に標高メッシュデータ(ラスタデータ)が必要となります。
行と列のcsvやdbf上でも行列演算を使って解析が出来るし昔はそうしていたようですが、今はGISソフト上でやったほうが楽だよ…。

なお、標高メッシュデータ(以降DEM:Digital Elevation Model)は直角座標系にすると地形解析がやりやすくなりますので、出来ればそうしておいたほうが良いです。
緯度経度座標系はメッシュの形が若干台形になっていたりしそうですが、平面直角座標系はちゃんと正方形になっていますから、行列演算もしやすくてGISソフトでもエラーが出にくかったりします。
国土地理院のページにもDEMの説明があるよ!こんなものを学ぼうとするKIDSなんているのか!?

国土地理院の基盤地図情報ダウンロードサービスでDEMがダウンロードできます。
5mメッシュと10mメッシュがありますが、5mのほうが細かく表示・解析できるので、遅いPCを使っているとかでないなら基本的にメッシュサイズは小さい方が良いのではないでしょうか。
自分の土地のものをダウンロードして適当なフォルダに保存。

平面直角座標系は球面(正確には楕円体)の地球表面を各地で無理やり正方形に戻したものなので、日本の各地で座標系も少し異なります。
国土地理院のページに自分が調査しようとする場所の番号が載っているので、ご参考に。

QGISでもベクターポイントデータをラスターデータに変換できるかもしれませんがなぜかよくエラーが出たので、今回は株式会社エコリスが配布している「基盤地図情報 標高DEM変換ツール」を使用しました。
「平面直角座標」を選択し、「座標系番号」を入力、ダウンロードしたJPGIS(GML)データを選択して変換開始。
しばらくすると結合前のデータと結合後の「merge.tif」というデータが出来上がるので、QGISで無事表示完了。

 

地図の表示と地形解析

そのまま表示すると白黒で少々見づらいので、データのプロパティで「スタイル」タブの「レンダータイプ」を「単バンド疑似カラー」にして、「色」を「Spectral」に変更。
更に前回ダウンロードした基盤地図情報の「道路縁」のデータも重ね合わせて自分の土地を見つけやすくする、と!

 

※青が高いところで、赤のほうにいくと標高が低くなります。
凡例・方位・縮尺表示は面倒なのでご勘弁。

更に「ラスタ」タブの「地形解析」で初歩的な地形解析が出来ますので、とりあえず「傾斜」と「陰影図」を作成してみましょう。
出力レイヤを適当に設定して、デフォルト値で出力。
入出力データのディレクトリ名やファイル名に日本語が含まれていたり、地図データが緯度経度座標系になっていたりするとエラーが出やすいですよ!

 

傾斜地図。赤が濃いところほど傾斜が急です。
ブラタモリなどでもたまに出てくる赤色立体地図もこういう感じで作られてるよ!傾斜だけでなく地上開度とかも考慮しているらしいですが。

自分の土地内を適当に「地物表示」でポチポチ調べてみたら、傾斜は最大で40度ほどでした。

陰影図は他の解析で使用するようなものではないですが、見ていて面白いものです。
せっかくだから「透過率」を60%ほどに設定して、標高と重ね合わせ。

 

大分面白くて分かりやすい地図になってきましたね。
閲覧だけならここまでで十分かもしれない。

 

日射量の解析

QGIS自体には地形解析コマンドが少なく、上述の傾斜などの解析くらいしかできません。
しかし他の優秀なフリーGISソフト「GRASS」や「SAGA」と連携することで、より詳細な解析が出来るようになっています。
QGISはベクターデータに強いのでベクターの解析はQGISで、ラスターデータは他のGISソフトの機能を使った方が良いでしょう。
QGISはフリーのGISソフトのプラットフォームみたいになっていて、力を合わせればArcGISにも敵うかもしれない。

QGISの「プロセッシング」タブの「ツールボックス」から、QGIS上で直接コマンド出来ます。
ただしGRASSやSAGAはニッチな方なので、ツールのタイトルやヘルプが英語のままだったりするので、専門用語が分からないとなかなか難しいかも。

基本的に日射量関連の解析は、GRASSの「r.sun」ツールで行います。
カッパの生息適地マップ作成」という妙な解析の例がネット上にありますが、なかなか参考になります。
日射量解析の入力データにはオプションとして色々入力できますが、最低限必要なデータは標高データ(elevation)、傾斜(slope)と斜面方位(aspect)です。

斜面方位はなぜかQGISだと180度が南、GRASSだと270度が南となっています。
QGISで作成してからラスタ計算機で数値を直しても良いでしょうが、最初からGRASSツールの「aspect」で算出した方が楽かも。
季節によって太陽高度も変わって地形を考慮した日射量も変わりますので、平均的な春分の日の日射量を算出することにしましょう。
春分は毎年3月20日頃なので、31+28+20=79日くらい。
「No.of day of the year」は年初め(1月1日)から〇日目の日射量を算出するというオプションなので、これを「79」と入力。

その3つをとりあえず作成しておいて、コマンドでその3つを入力してr.sun開始。
色々オプションがあり地表面の反射とか大気の状態とか入力できますが、大ざっぱな値だけで良いならそのままで良いんじゃないかな?
緯度データである「latitude」は入力するか悩む。データにはすでに座標系など規定しているからソフト側で勝手に計算してくれるんだろうか(と、よく分からずに期待)

…計算はなかなか成功しませんでした。
r.sunがいつまで経っても終わらないときが多々ありました。
もしかして、元データが大きすぎたのか?と思って、周辺地形をもっと狭めてみることにしました。
解析が終わっていませんが、強制終了して色々試行。

「ラスタ」、「抽出」の「クリッパー」で適当な範囲を囲ってやってみようとしますが、出来ない!

エラー① フリーハンドで四角形を選択して抽出するときにDEMの座標系(JGD2000 平面直角座標系)とプロジェクトの座標系(WGS84)が合ってなかったので合わせる。

エラー② 入出力ラスタデータの内どれか一つでもマルチバイト文字(日本語など)が含まれると出来ない。
両方ともアルファベットのみの名称とディレクトリにする。

エラー③ 一応クリップ処理は終わったものの、出力DEMが全部「0」となる。
そこで、近くの標高高い山が入るような簡単なマスク(面)ベクターレイヤを作成。
「新規シェープファイル」、「ポリゴン」、CRSを「JGD2000 Japan Plane Rectangular」に設定して、フリーハンドでポチポチクリックして作成。
作成したものをクリッパーでマスクレイヤとして使うと、上手く抽出できました!

そのままだとやっぱり見づらいので、「ラスタ」の「抽出」の「等高線」で5m等高線を作成
「総日射量」を赤ほど多く、青ほど少なくなるように色を変更。

 

地図を見てみると、やはり北向きの谷が最も日射量が少なく、南向きの尾根が最も多いようですね。
斜面下部でもそれなりに日射量はあるようなので、水と光が存分に必要なものは南向き斜面下部に、じめじめした場所が好きな植物は北向き谷斜面にでも育てた方が良いのかも。
道路近くの小屋周辺はものすごく日射量が多い、というわけでは無さそうです。
更に西側の南向き斜面のほうが植物の成長は良さそうか?

日射量が最も多い場所で約7800Wh/m^2/day、最も少ない場所では約2500Wh/m^2/dayくらい。
一応総日射量だけでなく、直進日射・散乱日射・反射日射も算出してみましたが、やはり直進日射が総日射量の2/3~6/7くらいを占めており、次に散乱日射、反射日射はほとんど影響無しのようでした。

 

これらのデータを上手く活用できる日はいつになることだろうか…。

4