山の体積の算出方法について

1,138 views
Skip to first unread message

ねこ

unread,
Mar 19, 2020, 12:47:04 AM3/19/20
to QGIS初心者質問グループ

こんにちは。

QGISを使っているなかで疑問点が見つかったので、こちらのグループに参加し質問させていただきたいと思いました。
今後も質問することがあるかもしれないのでよろしくお願いいたしします。

使用しているQGISのバージョンは3.12.0、GRASSGISのバージョンは7.8.2です。
疑問点としては、国土地理院の基盤地図情報ダウンロードサービス、もしくは国土数値情報ダウンロードサービスのデータを使用して、
山の体積を求めることは可能かということです。

5mメッシュ(ラスタデータ)を使用し体積を直接求めることはおそらくGRASSGISでも困難だろうと考え、
面積計算を行ってから断面の面積を積み上げて体積を求めるか、
もしくはシンプソン公式を用いて体積を求めるのが妥当だろうと推測したのですが、
ある一定の標高での山の面積をどのようにして求めるのかがわからず、
もし仮にできても5m・10m刻みの標高での山の面積を繰り返し求める方法がわからないため悩んでおります。

方法をご存じの方がいらっしゃればご教示いただきたく、どうかよろしくお願いいたします。

sakuya_izayoi

unread,
Mar 19, 2020, 2:37:42 AM3/19/20
to QGIS初心者質問グループ
ねこ さま

こちらizayoiです。

実は自分はざっくり計算の場合はQGISで結構体積を出していたりします。
(正確にやろうとするとやっぱりCivil3DというCADソフトを使いますけど)

最初に、標高が入っているラスタを平面直角系に変換しておいてください。

①まずは標高ラスタ(5mメッシュでも10mメッシュでもよい)をポリゴン化します。
プロセッシングツールボックスで、「ラスタピクセルをポリゴンに」コマンドを使うと楽です。

②山の面積を出したい部分、つまり出したい部分の外周線ポリゴンを作ります。
図ですと茶色の部分ですね。

③ベクタ→空間演算ツール→クリップで
入力レイヤを、ラスタから変換したポリゴン
オーバーレイレイヤを山の外周線ポリゴン
でクリップします。
そうすることで標高を持ったポリゴンが山の外周線通りに切り取られます。

④クリップしたポリゴンに対して
プロセッシングツールボックスから
「ジオメトリ属性の追加」で図形の面積などを追加する。
計算に使用するCRSはレイヤ座標系を使えばよいかなと。

⑤面積が追加されたレイヤが出力されるので、フィールド計算機を使い、面積×標高でポリゴン一つ当たりの体積が計算できます。
あとは表計算ソフトで足し算をすればざっくりですが山の体積が出せます。(または、フィールド計算機で  sum(  "体積" ) をやってもいいかもだけど、表計算ソフトと小数点4~5桁目ぐらいからが微妙に違うのがたまに気になる。)

もしも標高がマイナスになる場合には、面積を合計する前に、絶対値をとることを忘れないようにしてください。

サンプルファイルをアップロードしておきます。
国土地理院の国土数値情報の10mメッシュ(10B)より標高ラスタを作り、作業を行ったものです。
場所は富士山周辺で、山の外周線は適当です。

参考になれば。

sakuya_izayoi

unread,
Mar 20, 2020, 5:51:35 AM3/20/20
to QGIS初心者質問グループ
追伸
上記の方法は、EL.0mを基準とした場合の体積算出方法です。
EL.がマイナスとなるような地域の場合は、「ラスタピクセルをポリゴンに」で作成したレイヤのEL.に対して数値の最低値がゼロになるようにすべての値をオフセットしてやる必要があります。

ねこ

unread,
Mar 20, 2020, 7:02:03 AM3/20/20
to QGIS初心者質問グループ
izayoi さま

お礼が遅くなってしまい申し訳ありません。
QGISでの体積の算出方法について教えてくださりありがとうございます。
添付していただいたサンプルファイルを参考にして進めていくことができました。
しかし新たな疑問点が見つかったので、質問させていただいてもよろしいでしょうか。

一つ目の疑問点は、手順⑤「面積が追加されたレイヤが出力されるので、フィールド計算機を使い、面積×標高でポリゴン一つ当たりの体積が計算できます。」
というところなのですが、どのようにフィールド計算機を使って体積を求めればよいのかということです。
なにぶんフィールド計算機を扱ったことがなかったもので…
二つ目の疑問点は、ポリゴンデータ(スクラッチレイヤ)を作成して保存する際に、どのファイル形式で保存すればファイルデータを失わずに済むかということです。
三つ目の疑問点は、日本は約20の平面直角座標系で成り立っていますが、平面直角座標をまたいでデータを作成する際にはどの座標系に設定すればよいのかということです。

初歩的な質問が多く申し訳ありませんが、教えていただけると幸いです。

ねこ

unread,
Mar 20, 2020, 7:12:40 AM3/20/20
to QGIS初心者質問グループ

キャプチャ.JPG

添付し忘れてしまいましたが、手順4までのレイヤの画像です。

sakuya_izayoi

unread,
Mar 20, 2020, 8:20:24 AM3/20/20
to QGIS初心者質問グループ
ねこ さま
izayoiです。
説明を簡略化しすぎました。すみません。

ご質問内容ですが

一つ目の疑問の回答
①フィールド計算機は開き方がわかるでしょうか?
属性テーブルの赤枠で囲ったアイコンをクリックしてもらうと
下記のような画面が出ます。
赤枠内のように入力し、
式は
 "VALUE"  *  "area"
を使います。

これで計算が完了します。
計算が終わったら、属性テーブルの
鉛筆マークをクリックして、編集を保存して終了してください。

上記で「保存」を押すまではファイルが更新されません。
(つまり、間違えたと思った場合は、変更を破棄すれば元通り)



二つ目の疑問の回答
かなり好みがありますが
①国土交通省やオープンデータとして役所で配布してくれているような形式である[ ESRI SHAPE FILE ] 通称シェープファイル(shp)
②自分でデータベース型として使うならば[ Geopackage ](GPKG)
あたりが候補になります。
ここはお好みでどうぞとしか。

三つ目の疑問の回答
ずばり、どちらかにする。
自分が特に着目したい方を優先するという考え方の方が良いかなと私は思っております。隣の県ぐらいだったらそこまで大きくは違わないですしと個人的には。
(測量のプロの方、実務レベルでは実際どうしています?)
あるいは
にあるような中距離用のUTM座標系を選択するというのも手ですね。
(これでも両方をまたぐようならば、おとなしく近距離用の平面直角系を使った方が良いですけどね。)

ねこ

unread,
Mar 20, 2020, 9:30:48 AM3/20/20
to QGIS初心者質問グループ
izayoiさま
お返事ありがとうございました。

無事に体積を算出し、データファイルを保存することができました。
疑問を無事に解決できたのでとても助かりました。
本当にありがとうございました。

ありた

unread,
Mar 20, 2020, 12:08:32 PM3/20/20
to QGIS初心者質問グループ
こんにちは

平面直角座標系についての補足です。
測量関係者ではないので実際のところ不明ですが、規則として地域ごとに定められておりますので、
実務上は当然、規則に従うはずです。

規則にとらわれず、許容できる誤差の範囲というのであれば、中心経線から東西約130kmの
範囲であれば、平面直角座標系の定める誤差の許容内(1/10,000以下)となります。
南北方向は誤差が生じないので問題ありません。(例:9系と10系と11系など)

中縮尺用の UTM は、中心経線から東西3度を範囲としており、だいたいの範囲で4/10,000程度の
誤差となります。ただし赤道近くだと最大で誤差は10/10,000になります。
(平面直角座標系で誤差4/10,000以下は東西200km程度になりますので、そこまで許容するという
 考えもあるかもしれません。ただしその場合誤差は -1/10,000〜4/10,000 と非対称になります。)
Reply all
Reply to author
Forward
0 new messages