QGISで複数のポリゴンで構成されたシェイプデータを結合したところ、ポリゴン同士の接合部に細い隙間ができてしまうことがありました。これはジオメトリの精度や処理順序に起因するものだとおもいますが、見た目にも気持ち悪いですし、解析や印刷にも支障が出ることもありそうです。
バッファ処理と逆バッファ処理を組み合わせることで隙間を補修することができたので、その方法をご紹介します。
問題の概要
- ポリゴン同士を結合した結果、接合部に細い隙間が発生
- 隙間は、最大限に拡大しても開きが分からないくらい(数cm〜数mm?)。
- シンボロジに線を設定していると案外目立つ。面積計算などで問題になる可能性もあると思います。
解決方法:バッファ → 逆バッファ
-
バッファ処理で膨張
[ベクタ]→[空間演算ツール]→[バッファ]
距離:0.1m(隙間を埋める程度)
結果:ポリゴンがわずかに膨らみ、隙間が埋まる -
逆バッファ処理で収縮
同じく「バッファ」ツールで、マイナス距離を指定
距離:-0.1m
結果:元の形状に近づけつつ、隙間は補修されたまま
ポイント
- バッファ距離は、大きくしすぎると元の形状に戻りません。小さければ小さいほど良いので、できる限り小さい値から試すのが良いでしょう。
- 穴の開いたポリゴンでは、穴の消失に注意
- 座標系(CRS)はメートル単位の投影座標系がいいかなと思います。度分秒のCRSでは試していないので分かりません。
Before / After
まとめ
この方法は、手作業での修正が不要で、複数ポリゴンにも一括適用可能です。ジオメトリの精度を保ちつつ、解析や印刷に耐えるデータを作るために、ぜひ活用してみてください。