何千もの小さな重なり合うポリゴンを修正しますか?


21

ArcMap 10.3を使用しています。

さまざまな土地利用タイプのレイヤーがあります。多くのポリゴンが互いに重なり合っているため、同じポリゴンに2つの異なる土地利用タイプがあることがわかりました。

@radouxjuの答えを使用して、土地利用レイヤーのトポロジを構築しました(重複禁止ルールを使用)。次に、マージを使用して、大きな重なり合うポリゴンを修正しました。

しかし、私は何千もの小さな重なり合うポリゴンを持っています。すべてを手動で修正できますが、時間がかかります。

これらすべてのエラーを修正するより速い方法はありますか?

ここに画像の説明を入力してください

ここに画像の説明を入力してください


マップを更新して、すべての土地利用タイプを表示しました。ポリゴンは互いに重なり合っています。スライバーではありません。


2
ツール統合するあなたのための仕事を?
フェスター

@Fezterポリゴンは同じ面積を持たず、レイヤー全体に同じXY許容値を使用できないため、そうは思いません。
光沢のある

1
@aelwan:このデータの目標は何ですか?他の人が使用するためにこのデータを作成していますか(データの発信者であるかのように)?または、マップまたは分析で使用するために「クリーンアップ」しようとしていますか?私が尋ねる理由は、このデータがゴミデータのように見えるからです。GIS分析の範囲を超えており、完全に再デジタル化し、権限(実務知識)を持っている人にこれらの境界がどこにあるべきかについて十分な情報に基づいた決定を下す必要があります。それ以外の場合は、データをそのままにしておきます。
alexGIS

@alexGISデータがどれほど悪いかについては完全に同意します。しかし、それは私が得た最高のデータです。分析のためにきれいにしようとしています。
光沢のある

回答:


6

@Adam Caraによって提起された懸念は非常に有効です。しかし、自己交差を見ると、それらのほとんどは2つの巨大なポリゴンの境界上の細いビットか、別のポリゴンの内側にある大きなポリゴンの切断されたビット/島のいずれかであるように見えました。この場合、重複を消去し、ディゾルブされた重複を割り当てると、最も近い隣人(どちらか早い方)の属性が機能します。

プロセス:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

テスト:

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

メッセージ:

  • 実行:Intersect "dissolved#" D:\ Scratch \ test.shp ALL#INPUT
  • 開始時間:2016年4月22日金曜日10:16:07 2016
  • 読書機能...
  • クラッキング機能...
  • フィーチャーの組み立て...
  • 警告000117:警告の空の出力が生成されました。
  • 2016年4月22日金曜日10:16:09に成功(経過時間:2.34秒)

このメッセージは、最終的なDissolveからの出力に自己交差がないことを意味します。

結果:

https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing


1
この解決策により、「適切」になりますが、「正しく」なりません。OPが、「乳牛」と「羊/牛肉」と重複していたエリアが「ビルトアップ/公園/その他」に再分類されること、および入力と出力を比較するときに表示されるその他の任意の再分類を気にしない場合、このソリューションは機能します。そうは言っても、それはエレガントなワークフローであり、素晴らしい仕事です。
alexGIS

1
そのようなデータの誰で正しいことを知っている
FelixIP

7

ポリゴンがスライバーの場合、eliminateコマンドはうまく機能し、それらをより大きな面積のポリゴンまたは最長のエッジにマージします。

ポリゴンがオーバーラップしている場合は、もっと簡単な方法があるかもしれませんが、オーバーラップを別のレイヤーに選択し、それらを結合して、スライバーを作成し、reduceコマンドを使用します。


お時間をいただきありがとうございます。ポリゴンが重なっています。あなたの答えを追うために、別のレイヤーへのオーバーラップを選択するにはどうすればよいですか?トポロジを構築した後、重複はエリアエラーとして表示されます。
光沢のある

ポリゴンレイヤーでIntersect(resources.arcgis.com/EN/HELP/MAIN/10.1/index.html #//…)を実行するだけです。Intersectの結果は、このレイヤーのすべてのオーバーラップになります。
イルファン

@iRfAn交差点を実行していただき、ありがとうございます。
光沢のある

@Bryan Wallerあなたが提案したことを追おうとしました。「intersect」を使用して別のレイヤーへのオーバーラップを選択しました。次に、「BIL NO SILVERS WERE CREATE」で元に戻します。除去コマンドを使用した後でも、同じポリゴンに2つの異なる土地利用タイプがあることがわかります。任意の助けをいただければ幸いです。ここで土地利用レイヤーを見つけることができますgoo.gl/0aE3wq
ピカピカ

6
  1. 小さな領域を選択し、2つの形状ファイルに変換して、このプロセスが機能しているかどうかを確認します。
  2. s1およびs2にtest(number)という名前の新しいフィールドを作成します。
  3. 2つの形状ファイルS1とS2を交差させます。
  4. 重複する領域は、たとえばCommon1(図のハッチングされた領域)などの別のファイルで識別されます。
  5. Commonでフィールドテストを1として計算します。
  6. Union S1およびCommon
  7. ここに画像の説明を入力してくださいテストフィールドから1 を選択し、ハッチング領域を削除します。
  8. s2とcommonをマージします。消去コマンドを使用して、共通領域を消去できます。

@Shampeご協力ありがとうございます。私が持っているオーバーラップは、2つの形状ファイルではなく、同じ形状ファイル内にあります。
光沢のある

6

個々の土地利用クラスを個別のシェープファイルに分割して、それらをそのように使用することを検討しましたか。交差点を実行することを最初に考えましたが、上記で失敗しました。ただし、7つの個別のシェープファイルがある場合は、それらをより簡単に操作できる場合があります。

私が持っている主な質問は、オーバーラップがある場合、クラスが勝ち、最後に表示する階層がありますか?たとえば、切り取りと乳製品が重複している場合、どちらを保持しますか?この階層を決定したら、一度に2つのクラスを交差させます。最低クラスから始まり、最高クラスで終わります。特定の交差で出力が空の場合、それは交差していないことを意味します。


2
ここで最も重要な問題を取り上げます:重複を分類する方法は?データを「ニート」にするだけでは、「正しい」ということにはなりません。
alexGIS

@alexGIS繰り返しますが、私はあなたに同意します。ただし、この分析の目標とデータの重複するポリゴンの小さな領域を考えると、重複のカテゴリは、重複を修正する場合と比べて主要な目標ではありません。
光沢のある

これは別の理由で良い考えかもしれません。オーバーラップは、フィールドの境界の変化と時間の経過に伴う切り取りを表す場合があります。
nmtoken

5

トポロジを作成したら、エラーを特定しました。

エラーを表示するリストで、同じタイプのすべてのエラーを選択し、このリストを右クリックして「修正」を選択できます。あなたの場合、修正は「フィーチャの作成」となり、2つのポリゴンが重なると新しいポリゴンが作成されます。これが最初のステップです(ユニオンツールを使用する土地使用レイヤーを単一の入力として使用し、次にマルチパートからシングルパートのツールを使用することで同様の結果を得ることができます(ただし、オーバーラップはオーバーラップするので、次のいずれかを削除する必要があります)または、ポリゴンをラインに変換してからポリゴンに戻します(ただし、属性を失うと、属性を回復するために空間結合が必要になります))

2番目のステップは、小さなポリゴンを削除することです。問題は、どの属性値を保持するかを決定するルールが実際にはないことです。私のお気に入りのツールは除去ツールです。ここでは、小さなポリゴンをどの隣接ポリゴンにマージするかを選択できます(最大共有境界または最大面積に基づいて)

最後の注意:優先土地利用クラスのルールがある場合は、場所ごとに小さなポリゴン(ラベルのない)を繰り返し選択し、優先順位を下げて各土地利用クラスを割り当て、フィールド計算機を使用して割り当てますラベル。


4

ポリゴンが重なり合っているのかスライバーであるのかについては他の人に同意しますが、この写真で私が見ているものから、あなたは皆に見せています。土地利用のためにシンボルの色を変更することをお勧めします。これにより、どちらを使用するかを確認できます。ピンク色で示した1つの色は本当に読みにくく、時間がかかる場合があります。

2番目の部分では、オーバーラップポリゴンまたはスライバーポリゴンのすべてを選択し、新しいシェープファイルにエクスポートします。このようにして、土地利用の内容を特定できます。


ご協力いただきありがとうございます。マップを更新して、すべての土地利用の色を表示しました。
光沢のある

4

Spatial Analystまたは3D Analystを使用している場合は、(ポリゴンからラスターへの変換)ツールを使用して土地使用ポリゴンをラスターイメージに変換し、オーバーラップピクセルを取得できないため、オーバーラップポリゴンが終了しないようにする1つの可能な解決策があります。次に、ベクター形式で必要な場合は、(ラスターからポリゴンへ)ツールを使用してラスターをポリゴンに変換します。この場合、高品質のポリゴンを得るために高解像度のセルサイズ(詳細なセルサイズ)を選択しますが、メモリを考慮する必要があります。結果に満足するまでセルサイズを変更して数回試す必要がある場合があります。出力ポリゴンが完全でない場合は、出力ポリゴンにスムージングを行う必要がありますが、少なくとも標準ライセンスがあるかどうかによって異なりますArcGIS Desktop用。簡単な作業ではありませんが、問題を解決できることはわかっています。


4

ポリゴン間のギャップまたはオーバーラップが少ないことを確認して許容値を見つけ、適切な許容値でArctoolboxの統合ツールを使用します。

ここに画像の説明を入力してください

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