傾斜分布について

388 views
Skip to first unread message

おいど

unread,
Aug 8, 2018, 9:09:17 PM8/8/18
to QGIS初心者質問グループ
QGIS2.28.22を利用しております。
ある特定のポリゴンに傾斜区分図を重ねて一定範囲ごとの面積割合をはじき出すことは可能でしょうか。
例えば1haのポリゴンの場合に
0~10度      0.2ha
10~20度  0.1ha、、、、

可能であればご指南お願いいたします。

sakuya_izayoi

unread,
Aug 9, 2018, 12:24:02 AM8/9/18
to QGIS初心者質問グループ
おいど さま
こちらsakuya_izayoiのizayoiです。

傾斜区分図がどのような形式なのかが分からないので、なんとも言えませんが、
傾斜区分図がベクターデータ(ポリゴンデータ)などの場合であれば、

ベクタ→データマネジメントツール→属性の結合で傾斜区分図に特定のポリゴンの属性を転写してやればできそうな気もします。
この転写させた傾斜区分図のポリゴン当たりの面積を求め、特定のポリゴンの名前が入っている部分の面積を合計したのが、合計面積で、あとは角度ごとに小計し、割合を出すという考え方です。

データの形状や図形の形状が分からない状態なのでざっくりとした事しか言えず、申し訳ありませんが、私ならば上記までのように実施しております。

もっと簡単な方法があれば私も知りたいです。

なお傾斜区分図がラスタデータの状態でしたら
①ラスタの解像度(ピクセルあたりの長さ)に合わせたポリゴン格子を作成する。下記べくベストアンサーである福岡さまの手順1を参照。

②ラスタデータを一度ポイントデータに変換する。下記参照。

③ ①で作成したポリゴンに対して②で作成したポイントデータをプラグイン「point sampling tool」を利用してデータを結合する。
同じく、福岡さまの手順4を参考
下記は「point sampling tool」についてのizayoiの追加記述。

④ ③までを実行することにより、ラスタデータをベクタデータに変換する事ができます。

私の場合はこの作業をやってから計算になるためにすごく時間のかかる方法です。少しでも参考になれば幸いです。

adachi

unread,
Aug 9, 2018, 1:54:11 AM8/9/18
to QGIS初心者質問グループ
おいど様

どのような方法があるかいろいろ考えてみました。
需要のありそうな操作ですがなかなかスッキリとはいかなさそうですね。。

傾斜区分図がラスタである、という前提での話ですが
最終的に面積の計算が含まれるのであれば、izayoi様の仰るようにベクタデータにしたほうがよいかと思いました。
izayoi様のご提案をベースに、少し手間の減りそうなヒントとして

■ポリゴン化するまえに傾斜区分図ラスタをreclassifyする
 プロセッシングツール > SAGA > Raster tools > Reclassify Values を起動
 いろいろ項目がありややこしいですが、中ほどにある「operator (for range)」の下の「Lookup table」の右端の「…」をクリックするとテーブルが現れ
 新しい範囲を指定できます(たとえばラスタ値 0 ~ 10 の範囲に対して新たに10という値を割り当てる、といったイメージ)
 これによってラスタがかなり簡素化されるのではないかと。

■ラスタのポリゴン化
 izayoi様の方法は「ラスタを格子状のままポリゴン化したい」場合に有効かと思いますが
 おいど様の作業内容としては格子状である必要はないかな?と思いますので
 そのまま「ラスタのベクタ化」で良いかと思いました。


なお我ながらあまり参考にならない(非常にめんどくさそうな)方法ですが、ラスタのままやろうとする場合

・「ラスタ計算機」を使って必要な区分ごとにラスタを生成する(例えば傾斜値「0以上10未満」で1枚、「10以上20未満」で1枚)
・プロセッシングツールの「地域統計」を使って、生成したラスタの「count」数をどんどんポリゴンにくっつけていく
・このカウント数に1セルあたりの面積をかけて面積を算出

このぐらいしか思いつきませんでした…

adachi

unread,
Aug 9, 2018, 2:15:55 AM8/9/18
to QGIS初心者質問グループ
自分のコメントへの補足になってしまい恐縮ですが…

後半の「ラスタのままやる場合」についてですが、QGISバージョン3.2ではプロセッシングツールに「Zonal histogram」なるものが追加されていました。
これだとラスタ計算機で1枚1枚分けなくでも、「Reclassify」で簡素化したラスタをベースに一発でできそうです。

・インプットラスターとしてreclassifyしたラスタを指定
・地域ベクタレイヤにポリゴンを指定

結果としてポリゴンが生成され、属性テーブルにそのポリゴン内に含まれるセル値ごとのカウント数がくっつきます。
例えばreclassifyでラスタを
0~10: 10
10~20: 20
20~30: 30
と再区分していたとすると、

ポリゴンごとに
10: 〇〇個
20: 〇〇個
30: 〇〇個
といったデータが付加されます。

これに1セルあたりの面積をかけて~ の作業は先ほどと同じです。

kent...@gmail.com

unread,
Aug 20, 2018, 7:40:46 PM8/20/18
to QGIS初心者質問グループ
izayoiさま adachiさま

返事が遅くなり申し訳ございませんでしたがアドバイスありがとうございました。
説明不足でしたが傾斜区分図は地理院のDEMから作成したラスタです。『Zonal histogram』は正に私が求めていたもので無事解決いたしました!と言いたいところですが、その前段の『Reclassify』が少々難しくてちょっと勉強しないといけなさそうです。

adachi

unread,
Aug 21, 2018, 9:48:08 PM8/21/18
to QGIS初心者質問グループ
おいど様

説明があまり具体的でなくすみません…
Reclasifyの一連の流れですが(例として、手持ちのDEMでの作業です)


①SAGAプロセッシングツールから起動

rec_1.png



②再分類の方法を選択

rec_2_0.png




③画面中程にあるテーブル編集をクリック

rec_2.png




④再分類したい範囲と、新たに割りあてる値を入力

rec_3.png



⑤実行した結果(テーブルで新たに割り当てた4つの値のみのラスタができる)

rec_4.png




こうしてできたラスタに対してZonal Histogramを適用すれば良いかと思います。
もとのラスタデータから値そのものが変わってしまいますが、集計が目的、と割り切っております。


kent...@gmail.com

unread,
Aug 22, 2018, 2:33:18 AM8/22/18
to QGIS初心者質問グループ
adachiさま

丁寧なご説明ありがとうございました。完璧です。
Reply all
Reply to author
Forward
0 new messages