路網のラインレイヤを、縦断勾配(%)で色分けしたいです

500 views
Skip to first unread message

bookm...@gmail.com

unread,
Nov 17, 2022, 1:11:27 AM11/17/22
to QGIS初心者質問グループ
林業技術者向け研修で、林内に路網を計画する演習をQGIS3.22で行っています。

路網のラインレイヤ(キャプチャ画像の青色破線)を、一定区間ごとに縦断勾配(%)で色分けしたいですのですがプロセシングツールなどで可能でしょうか?
レイヤの属性テーブルには勾配のの情報はありませんが、別途DEMデータはあります。

ご教示いただきたく、よろしくお願いいたします。

キャプチャ_新規路線案.png

福岡

unread,
Nov 17, 2022, 3:27:16 AM11/17/22
to QGIS初心者質問グループ
こんにちは

ラインを細切れにし、ライン端の標高をDEMから得て勾配を計算するくらいしか思いつきません。
全部検証はしていないのですが、ポイント間隔と切断したライン端が一致することやIDがペアになるところだけは確認しました。
ちょっと手数が多いので、他の方のアイディアもお聞きしたいです。

1 ライン上に等間隔でポイントを生成
 プロセッシングツールの「ベクタジオメトリ - ジオメトリに沿った等間隔点群」でポイントを生成します。

2 ポイントへ標高データを付与する
 プロセッシングツールの「ラスタ解析 - ベクタレイヤにラスタ値を付加」で標高値を付与します。

3 ポイントへIDを付与する
 フィールド計算機で「$id」を使って、IDを振ります。

3 ポイントデータを表計算ソフトへ貼り付けて生成
 1列目にID、2列目に標高、3列目に1行ずらした標高、といったように整形して、CSVとして保存します。

4 ラインを分割
 プロセッシングツールの「ベクタジオメトリ - 最大長で線を切断」でポイントと同間隔で切断します。

5 ラインへIDを付与する
 フィールド計算機で「$id」を使って、IDを振ります。
 ライン、ポイント共に、始点からIDが振られるようですので、ペアになると思います。

6 ラインへポイントデータを結合
 IDをキーにして、テーブル結合させます。

7 フィールド計算機を使って勾配計算
 標高差を「$length」で除して、勾配を得ます。

2022年11月17日木曜日 15:11:27 UTC+9 bookm...@gmail.com:

bookm...@gmail.com

unread,
Nov 17, 2022, 6:28:49 AM11/17/22
to QGIS初心者質問グループ
福岡様

さっそくご教示いただき、ありがとうございます。
10m刻みで手順に従いテストしてみたところ、スムーズに勾配を得るところまでできました。
より少ない手順でできる方法があれば、ぜひお願いいたします。

本多拝

2022年11月17日木曜日 17:27:16 UTC+9 福岡:

mooya

unread,
Nov 17, 2022, 6:59:33 AM11/17/22
to QGIS初心者質問グループ
こんにちは、

 まちがえて、投稿者のみに返信してしまったので、再投稿します。


1 ラインを分割
 プロセッシングツールの「ベクタジオメトリ - 最大長で線を切断」で切断します。

2 フィールド計算機
 起終点のラスタ値を取得して差をとり、延長で除します。ここで、'DEM'は標高ラスタのレイヤ名です。
---------------------------------------------------------
 (raster_value( 'DEM',1, end_point(  $geometry  )  )
 - raster_value( 'DEM',1, start_point(  $geometry  )  ) )
 / $length * 100
---------------------------------------------------------



2022年11月17日木曜日 20:28:49 UTC+9 bookm...@gmail.com:

福岡

unread,
Nov 17, 2022, 7:31:16 PM11/17/22
to QGIS初心者質問グループ
mooya 様

「raster_value」を使うと、大幅に手数が減って便利ですね。
この機会に「ラスタ」に分類されている「raster_statistic」も、どのような挙動をするか確認してみました。

勉強になりました。
ありがとうございます。m(__)m

2022年11月17日木曜日 20:59:33 UTC+9 mooya:
Reply all
Reply to author
Forward
0 new messages