QGISのジオメトリ妥当性エラーを修正しますか?


31

私は、米国の郡レベルで所有権データに取り組んでいます。郡ごとに1つのシェープファイルがあり、何千もの税の小包が含まれています。同じ個人が所有する区画を表すポリゴンをディゾルブする必要があります。シェープファイルがクリーンでない場合、QGISの「ディゾルブ」ツールは機能していないように見え、フリーズします。「ジオメトリの有効性の確認」ツールを使用して、まずジオメトリの有効性の問題を修正する必要があります。ただし、何百ものエラーが発生する場合があります。それらを手動で修正するには時間がかかります。時間を節約できる他の戦略はありますか?

QGIS 2.4.0を使用しています。


2
芝生にファイルをインポートしてv.cleanを使用しようとしましたか?おそらく多くのエラーが修正されます。
セルジオ14

回答:


20

ポリゴン上で微妙なバッファを実行してみてください。CRSがUTMの場合、-0.001の設定は試してみる価値があります。ベクトル|バッファ


4
BillWが最初に提案した「バッファ」ソリューションを試しました。私の問題の97%を解決しました。これで十分です。手動でジョブを終了できます。ポリゴン上で小さなバッファを実行しても、私が信じている道を進んでも問題は生じません。しかし、ST_MakeValidを使用するか、v.cleanを試す方がより正確で正確な場合があります。
バップ14

18

エラーのあるレイヤーがあるとき、通常はProcessing Toolboxの GRASS関数v.cleanを実行します。どのツールがどの場合に最適であるかは実際にわかりませんでしたが、通常はbpol関数を選択します。

さらに重要なのは、スナップ許容値最小面積の高度なパラメータを設定することです。レイヤーにもよりますが、通常はスナップに0.1〜2メートル、最小面積に10平方メートルを選択します。

スナップは、たとえば、境界線を共有する境界線を整列させますが、小さなオフセットがあります。最小領域は、交差点などから小さなスライバーを排除します。

これは通常、bpolとともに、トポロジをあまり変更せずにすべてのエラーを解決します。


11

ST_MakeValidをQGISで直接使用して、lwgeomプロバイダーを処理ツールボックスに追加するlwgeomプラグインを追加することができます。Postgis / spatialiteは同じliblwgeomを使用してST_MakeValidを実行します

liblwgeomをインストールし、それを指すように処理プロバイダーを構成する必要があります

lwgeomプロバイダーは実験的なものとして見つけることができます:https ://plugins.qgis.org/plugins/processinglwgeomprovider/


3
qgis処理の現在のマスターバージョンで使用できるように、新しいバージョンのprocessinglwgeomプロバイダーをリリースしました。(処理がリファクタリングの下にある)
ルイジピレリ

2
こんにちは@LuigiPirelli Lwgeomプラグインを使用して同様の問題を解決しようとしましたが、実行中に常にクラッシュし、QGisを再起動する必要があります。これを修正する方法はありますか?ありがとう。
アレックスフェルナンデスポールセン

1
実行中のコンテキストなしで言うのは難しい。ところで、2014年以降、qgisで利用できる修復ジオメトリ機器が増えています。通常、lwgeomのクラッシュは、ロードまたは共有オブジェクトの不整合(ダーティインストール)の問題です。他のツールをテストしましたか?
ルイージピレリ

1
これはQGIS 2.18で動作しますか?QGISバージョンgithub.com/faunalia/processinglwgeomproviderで
RutgerH

1
ただ更新... QGIS3.xにはGEOS lwgeom MakeValidアルゴリズムのラッパーである処理ネイティブfixgeometryアルゴリズムがあります。データベースは必要ありません。
ルイージピレリ


2

私はqgisで同様の問題に遭遇しました。ポリが正しく投影され始めました。Berndが提案したように、ProcessingツールボックスでGrass fuction v.cleanを使用しました。bpolは機能しませんでしたが、break関数で修正されたようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.