shpファイルで全属性に対して各属性が割合を計算する方法

468 views
Skip to first unread message

TK

unread,
Aug 7, 2021, 5:42:29 AM8/7/21
to QGIS初心者質問グループ
お世話になっております。

現在、国交省の国土数値情報より提供されております
土地利用細分メッシュと流域メッシュを組み合わせまして、
流域内における土地利用割合を算出したいと考えております。

現時点におきまして、以下の図に示します通り、
流域内における土地利用区分の属性をshpファイル形式で
抽出できた段階にあります。

しかし、この後、「ある一つの土地利用区分属性/流域内全体の属性」という割合を
全属性に対して算出したいのですが具体的な計算方法が思いつかない状況です。

フィールド計算機を用いることでこの問題を解決ができる考えており、
方法を模索しているのですが良い方法が見当たりません。

拙い文章で申し訳ありませんがshpファイルで各属性が占める割合を求める方法を
知っている方がいらっしゃいましたら教えていただけると幸いです。
宜しくお願い致します。

キャプチャ.PNG

福岡

unread,
Aug 7, 2021, 10:47:42 PM8/7/21
to QGIS初心者質問グループ
TK 様

こんにちは

キャプチャ画像をみると、流域範囲で属性テーブルを土地利用区分で整理したShapeファイルを作成なさっているのだと思いました。
そうすると割合だけを得たいのなら、属性区分毎にメッシュの個数を数えて全メッシュ数で割ることで、ご希望の結果を得ることができると思います。
これは、属性テーブルを表計算ソフトに貼り付けて計算するのが簡単かと思います。

1 属性テーブルで「Ctrl + A」で全体を選択。
2 選択状態で「Ctrl + C」でクリップボードへ取り込み。
3 表計算ソフトへ貼り付け。

その後、countif関数などを使って、土地利用の属性区分毎に集計すると良いと思いました。

また、割合だけでなく面積も得たいということであれば、面積を得るという一手間が加わることになります。
この一手間は、フィールド計算機(関数は$area)ですることになります。
なお面積を得る場合は、地理座標(緯度経度)ではなく、投影座標(原点からの距離)にすることに留意する必要があります。

2021年8月7日土曜日 18:42:29 UTC+9 TK:

ありた

unread,
Aug 7, 2021, 10:48:39 PM8/7/21
to QGIS初心者質問グループ
こんにちは

「ある一つの土地利用区分属性/流域内全体の属性」とはどのようなものでしょうか
 ・その地物の属性値(数値)/属性値(数値)のレイヤ全体の合計値
 ・ある属性値を持つポリゴンの個数/レイヤ全体のポリゴンの個数
 ・ある属性値を持つポリゴンの合計面積/レイヤ全体のポリゴンの合計面積
 ・あるいはそれ以外

やりたいことがある場合、このような条件ならばどのような数値が入って欲しいか
地図のキャプチャとともに属性テーブルの状況を示し、概算でよいの具体的な
求めたい結果の例をあげていただくと伝わりやすいかと思います。
非常に簡略化したダミーの図でもよいでしょう。

ありた

unread,
Aug 7, 2021, 11:28:00 PM8/7/21
to QGIS初心者質問グループ
対象とする属性の名前が attr とした場合、

・その地物の属性値(数値)/属性値(数値)のレイヤ全体の合計値
"attr" / sum("attr")

・ある属性値を持つポリゴンの個数/レイヤ全体のポリゴンの個数
count("attr", group_by:="attr") / count("attr")

・ある属性値を持つポリゴンの合計面積/レイヤ全体のポリゴンの合計面積
area(collect($geometry, group_by:="attr")) / area(collect($geometry))

などで計算できると思います。
なお、面積はデータ座標系上の面積となります。

TK

unread,
Aug 8, 2021, 8:40:40 AM8/8/21
to QGIS初心者質問グループ
福岡様、ありた様、ご返信いただきありがとうございます。

ありた様が記述されておりました「その地物の属性値(数値)/属性値(数値)のレイヤ全体の合計値」の
計算がやりたかったことであり、フィールド計算機で計算した結果、得たかった情報を得ることができました。
誠にありがとうございました。

また、最後にはなりますが質問にご返信をしていただきました福岡様、ありた様に改めて感謝を申し上げます。
ありがとうございました。

2021年8月8日日曜日 12:28:00 UTC+9 ありた:
Reply all
Reply to author
Forward
0 new messages