オープンソースツールを使用して重複するポリゴンを削除する


13

重複したジオメトリを持つフィーチャを含むシェープファイルがありますが、属性は異なります(たとえば、属性XXのポリゴンと属性XYの同一のポリゴン)。重複を特定し、正しい属性を持つものを選択し、もう一方を削除します。

OpenJump / Kosmoでトポロジツールを試しましたが、成功しませんでした。彼らは私が望むことをする「重複を削除する」ツールを持っていますが、保持する機能を選択させるのではなく、機能の1つを任意に削除するようです。

QGIS、OpenJUMP、Kosmoなどにアクセスでき、必要に応じて他のオープンソース/無料ツールをインストールできます。

考え?

回答:


7

PostGISの他に、トポロジーオープンソースGIS(GRASS)も使用できます。

  1. ダウンロードとインストール
  2. ロケーションマネージャーを起動して選択し、ツールを使用してSHAPEファイルから新しいプロジェクトデータベース(「GRASSロケーション」と呼ばれる)を生成します。ステップバイステップガイドについてはこちらをご覧ください
  3. SHAPEファイルをインポートする
  4. 一連のオプションを提供する「v.clean」ツールを使用します
  5. 「v.out.ogr」を使用して、マップをSHAPEファイル形式にエクスポートします

追記:私たちはあなたが私たちのWebポータル経由でデータを磨くことができるように、このためにWPSを提供することを計画しています。


v.cleanを使用すると、ユーザーがトポロジエラーを1つずつ「対話的に」識別して修正できるとは思いません。間違っている場合は修正してください。
ダレン・コープ

あなたがインタラクティブにそれをやりたいと思ったことを私は見逃した したがって、v.digitデジタイザは使用するツールです。
markusN

Markus、v.digitをすばやくスピンしても、望みどおりの結果が得られないようです。v.digitを使用してタスクをどのように達成するか、例を挙げていただけますか?
ダレンは、コープ

1
実際、シェイプファイルをGRASSにインポートするだけで、2_polygonレイヤーとして重なり合うポリゴンのレイヤーが作成されます。これで十分だと思います!
ダレンは対処

3

これは私がそのような場合に行うために使用するものです。私はそれを理解しているので、正しい属性を持っているものを決定するために手動でチェックする必要があります。次に、2つのステップでそれを行います。最初に、複製されたポリゴンを使用してPostGISでテーブルまたはビューを作成し、次に、複製を削除する元のレイヤーとともにデスクトップGISでこのテーブルを開きます。これにより、複製テーブルを介して複製に移動し、元のテーブルまたはシェープファイルなどを削除できます。

gidという一意のIDとthe_geomという名前のジオメトリ列がある場合、重複を見つけるためのクエリは次のようになります。

create table duplicates as
select a.the_geom, a.gid, b.gid from mytable a, mytable b 
where ST_Equals(a.the_geom, b.the_geom) and a.gid!=b.gid;

ST_Equalsにはいくつかのバリエーションがありますが、ST_Equalsが必要だと思います。これにより、重複したジオメトリと、ポリゴンの最初と2回目のgid(id)を含むテーブルが作成されます。ただし、同じ複製のペアを2回取得しますが、それらがどこにあるかを表示するだけなので、問題にはなりません。

HTHニクラス


3

PostGIS 1.5.xを使用している場合は、ST_HausdorffDistance()関数を確認してください。
ジオメトリが重複している場合、値は0になります。前述の自己結合のように使用します。ポリゴンの形状を比較するのに非常に便利です。


0

より簡単な方法。デスクトップGISの面積を計算し、面積の昇順または降順で並べ替えます。属性テーブルで複製されたオブジェクトを確認するには、すべての行をチェックする必要があります。間違っていない場合もありますが、複製されていないオブジェクトの領域がまったく同じではないという仮定に基づいています。

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