令和になってからQGISを使っている..ではじまるQGISの記事を別のブログからこちらに転載します。元の記事は2020年5月に書いたものです。
河川の縦断面図をつくりたくて試行錯誤した。縦断面図という表現で合っているかわからないけど、河口からの距離と標高のグラフのやつ。よく、ヨーロッパのセーヌ川なんかに比べると日本の川は滝だ、という表現で示されるあれ。
今回はQGISと国土数値情報を使って作成した。ここに方法をメモしておく。
おおまかには、国土数値情報のシェープファイルをラスタ化して、QGISのプラグインである「Plofile tool」や「qProf」で河川等の任意の断面図を作成する。
ちなみに、国土地理院の基盤地図情報をダウンロードして、フリーのツールでDEMにして…という方法もあるみたいだけど、国土数値情報だけでできました。まぁ、元データは同じだろうから変換の過程が違うだけだろう(詳しいことは知らない)。
手順
-
まずはデータの準備。国土数値情報ダウンロードから標高・傾斜度3次メッシュデータをダウンロードする。ダウンロードしたZIPファイルを展開する。そして、QGISで表示する。
-
ベクタレイヤのマージを行う。(しなくてもよいがしておくと便利)
-
「プロセッシングツールボックス」-「ベクタテーブル」-「文字列を浮動小数点に変換」で、標高のフィールド(この例ではG04a_002)を文字列から数値に変換する。これをせず文字列のままだと、ラスタ化できない。
-
「ラスタ」-「変換」-「ベクタのラスタ化」を実行する。オプションは次の通り;
出力ラスタの単位:地理単位
水平方向の解像度:0.001
鉛直方向の解像度:0.001
ちなみに、解像度を適切な値にしないとうまくいかない(ここでハマりました)。地理単位が度なのかkm(キロメートル)なのかによっても違うと思うので、留意されたい。
-
QGISの画面右下のアイコンをクリックして、プロジェクトの座標参照系を「JGD200/Japan Plane Rectangular CSⅧ」あたりにする。これをすることで、距離の単位を度からkmにかえる(最初、距離が度でしか表示されず、ハマりました)。
-
プラグイン「Profile tool」を起動して、作成した標高のレイヤ(ラスタ)を追加する。あとはProfile toolを操作して必要な断面を指定、表示する。
豆知識
- 自分でレイヤを作成するには、CSV形式データを読み込む機能を利用する。
- フィールドを文字列(String)から数値(Integer)に変更するには、「プロセッシングツールボックス」-「属性のリファクタリング」という方法もある。