100mメッシュに面積0や面積4の地物が追加されてしまう

172 views
Skip to first unread message

パイナップル

unread,
Mar 15, 2022, 2:50:45 AM3/15/22
to QGIS初心者質問グループ
いつもみなさんの投稿、参考にさせていただいています。

100mメッシュについて、よくわからない挙動があったため、
発生を防ぐ方法についてアドバイスをいただきたく投稿します。

100mメッシュを市境でクリップして切り取ってから作業していました。
重心を作成したところ、100mメッシュの中心のほかに、メッシュをかこっている線分の上にも重心が作成されてしまいました。すべてのメッシュに発生しているわけではありませんでした。クリップ前のデータで重心を作成した際には、ちゃんと中心だけに重心ができました。

確認のため、属性テーブルから面積を求めたところ、面積が0になる地物ができていました。気が付かないうちに、線分?ができてしまっていたようです。面積が4の地物もありました。当面の対処として、面積0や4のメッシュを削除して作業することにしました。

このようなことはよくあるのでしょうか?防ぐ方法があればお伺いできればと思います。
(スクリーンショットを取り忘れてしまったので、わかりにくい質問となっていたら申し訳ありません。)

ありた

unread,
Mar 16, 2022, 7:19:40 AM3/16/22
to QGIS初心者質問グループ
こんにちは

クリッピング処理を行った場合、当然ですが、(完全に内包されていない限り)
元のポリゴンの形状と異なる結果が得られるでしょう。
凹多角形やマルチポリゴンの場合、重心は線上や外部に発生するのは珍しくありません。



もし、上記のケース以外で発生しているのでしたら、再度実行しスクリーンショット等の
情報を追記してください。「すべてのメッシュに発生しているわけではない」とは
具体的にどのような箇所、割合で生じているかわかるようにしてください。

また以下の事項も確認してください。
・100m メッシュとありますが、具体的にはどのように生成あるいは入手しましたか?
 オープンデータ等で入手した場合、「100m メッシュ」とされるものには
 「10分の1細分メッシュ(3秒×4.5秒)」である場合があります。

・面積はどのように求めましたか?
 前述の通り、経緯度をベースとした格子データの場合、正しく面積を求めないと
 そもそも平方メートルの面積は得られません。

tomoyuki arai

unread,
Mar 16, 2022, 9:31:05 AM3/16/22
to QGIS初心者質問グループ
パイナップルさま、ありたさま

こんにちは。 横からすみません。

当初の質問のとおり、100mメッシュ、1つあたり面積約10,000m2のメッシュに対して
面積0や4の地物が追加されてしまっているということですから、
いわゆるスライバーポリゴン(地物の隙間などに生じる細長いポリゴン)ではないでしょうか。
100mメッシュの入手経路や面積計算方法は関係ないように思います。

スライバーポリゴンはクリップなどの空間演算を行った際、私も時おり発生したことがあります。
浮動小数点で表現されているジオメトリ座標の演算の誤差に起因しているのだろうと理解しています。

私もスライバーポリゴンを発生させないようにする対処法は知らないので、
クリップや差分などの空間演算のあとには地物数を確認したり、
パイナップルさんのように面積を確認するようにしています。
重心を発生させて、間違いない位置にあるか確認するのも良い心掛けと思います。
その他の手段としては、ジオメトリチェッカーで確認・修正するくらいでしょうか。

いずれにしても、防ぐ方法、遭遇する頻度を減らす方法は私も知らないので、
ご存じの方がいましたら教えていただけるとありがたいです。

新井 智之

2022年3月16日水曜日 20:19:40 UTC+9 ありた:

パイナップル

unread,
Mar 17, 2022, 2:29:09 AM3/17/22
to QGIS初心者質問グループ
ありたさま、新井さま、

さっそくご返信をくださり、ありがとうございます。
地物数の確認や面積の確認で、切り抜けるのが当面よいということがわかり、大変安心いたしました。
なお発生した面積0や4のポリゴンは、メッシュの格子部分に重なっており、選択しても見えないようなものでした。

100mメッシュについては、業務で別会社の方から提供されたものを利用しており、出典は確認しておりませんでした。
メッシュの定義にもいろいろあるとわかり、大変勉強になります。

面積計算では、属性テーブルに新規列を追加して「$area」で求めました。
問題のなさそうな数値だったので、平面座標系だと安心していたのですが、念のため緯度経度データになっていないか、今後よく確認しようと思います。
再現に至っておらず申し訳ありませんが、今後、また同様の事例が発生したら、記録をとるようにしたいと思います。

きちんと状況の説明できない質問になってしまいましたが、大変有意義なアドバイスをくださり、本当にありがとうございました。

2022年3月16日水曜日 22:31:05 UTC+9 tarai...@gmail.com:

ありた

unread,
Mar 17, 2022, 6:55:20 AM3/17/22
to QGIS初心者質問グループ
こんにちは

クリップ処理に対して、周辺部において両レイヤの形状より、妥当な結果が得られているのなら、
クリップとはそういう処理であるため、正常な動作となります。
また、重心位置についても、クリップ処理で得られたポリゴンが、凹多角形などの場合を
考慮したうえで、おかしな位置でなければ正常な動作でしょう。(図がないので想定ですが)

そのうえで、明らかに処理として変な結果であるというのであれば、やはりキャプチャ等の
情報がないと判断しようがありません。



$area で計算したのであれば、経緯度座標系でも平方メートル単位で正しく計算されます。

クリップの結果、両レイヤの共通部分が小さければ、当然小さなポリゴンが生じます。
その結果に対し、面積等を条件に除外するか残すかは目的や、分析の方針次第になるかと思います。
Reply all
Reply to author
Forward
0 new messages