「フラグ」スライバーエラーのあるポリゴンを識別する方法


12

ArcMapで作業しているときに、ポリゴンレイヤーで「フラグスライバー」と呼ばれるエラーに遭遇しました(同様の言語の区画から「フラグロット」と呼びます)。これらのスライバーポリゴン(下の画像を参照)は通常、ユーザーが誤って追加した1つの追加ノードのみで構成されます。

以下の画像では、「旗」と「旗竿」は、「旗竿」がちょうど重なっている単一の部分の特徴です。左側の画像には合計5つのノードがあります。

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

単独で見た場合、エラーは非常に明白ですが、複数のポリゴンが隣接している場合、それらは2つのポリゴンの境界のように見えるため、ほとんど見ることができません。

これは、シェープファイルベースのエディターを使用しているために発生する可能性が高いため、トポロジベースの編集ルールを実装して今後これを防ぐことはできません。

誰もがこれらのタイプのエラーを識別して解決する方法を持っていますか?フィールドユーザーはエラーを作成したユーザーであるため、識別と解決の両方の自動化された方法を好むでしょうが、私はそれらの後のクリーンアップに追われています。ありがとう。


3
Esriがラインフィーチャには必須の自己交差ルールを提供しますが、ポリゴンには提供しないのはなぜでしょうか。
カーククイケンダル

Check Geometryツールはそれらを見つけますか?
mkennedy

ダングルとオーバーシュートも検索します。両方ともいくつかのアークスクリプトを表示しましたが、ポリゴンではなくポリライン用の最新の多くのスクリプトはありませんでした。
mkennedy

ライアン、データのサブセットを提供することは可能でしょうか?また、「ジオメトリの確認」ツールに関するmkennedyのコメントを調査しましたか?
アラン・アデア

arcmapのバージョンは?
カーククイケンドール

回答:


5

Safe Fmeツールにアクセスできる場合は、spikeRemoverと呼ばれるトランスフォーマーが便利であることがわかります。ダウンロード可能な限定版のSAFE FMEを試すか、ArcGisライセンスで「FME Extension for ArcGIS」を確認してください。

http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm

http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf


スパイクをクリーンアップするために、ArcGIS Data Interopエクステンション内でSpikeRemoverを正常に使用することができました。また、未変更、変更、フラグ付き(スパイク)機能を指定できる出力もあります。これらはすべて、スパイクのある機能を特定するのに非常に役立ち、変更されていない出力と変更された出力の両方を同じレイヤーに、「フラグ付き」出力をQCレイヤーにポストするだけで、新しい「スパイクレス」レイヤーの作成が非常に簡単になりましたさらなる検査のため。 esri.com/software/arcgis/extensions/datainteroperability/...
RyanKDalton

2

どこで問題が発生するのか、どこでそれを回避/修正できる可能性があるのか​​はわかりません。しかし、SDEのジオメトリは常に正しいはずですが、SDEデータベースではこれをよく見ています。この場合、ArcObjectsを使用してシェープファイルをSDEにインポートしたためです。ジオメトリが保存されると、SDEのグリッドにスナップされるため、ジオメトリに細いスパイクがあったときに記述したスライバーで誤ったジオメトリが作成されました。これは、シェープファイルが座標に対して完全な倍精度を持ち、SDEがより粗いグリッドを持つためです。

解決策は、インポート時にジオメトリを修正することでした
。1.シェープファイルからジオメトリの空間参照を、対応するSDEフィーチャクラス
の空間参照に設定します)
3. ITopologicalOperator2.IsKnownSimple = falseを設定します(重要、それ以外の場合、単純化は何もしません)
4.単純化操作を実行します。ポリゴンには、IPolygon.SimplifyPreserveFromTo()を使用しました


2

arcmap 9.3.1では、Flag(またはFlagFlag?)というフィールドを追加し、フィールド計算機でVBAコードを使用してこのフィールドを計算します。

VBAコードは、変数をITopologicalOperator3として暗くし、Shapeフィールドに設定します。

次に、それほど単純ではないIsSimpleExメソッドを呼び出します。

Flagフィールドの値をesriNonSimpleEnumに設定します。おそらくあなたが関係しているエラーが返されesriNonSimpleSelfIntersectionsます。

10.0では、電卓でPythonを使用してこれを行う方法があるかもしれません(?)...わかりません。アドインコマンドを使用します。IMO Esriは、フィールド計算機でc#のサポートを提供する必要があります。結局のところ、c#コンパイラは.NETフレームワークの一部としてインストールされます。

更新

結果のポリラインフィーチャレイヤーに定義式を適用すると、ここに投稿しコードで旗竿が見つかる場合があります"Left_OID" = "Right_OID"


1

このPythonスクリプトは便利なツールです

シェープファイルからスライバーポリゴンを削除する

「EliminateSlivers.pyは、ポリゴンシェープファイル内のすべてのフィーチャを繰り返し処理し、出力シェープファイルから特定の領域のしきい値を下回るフィーチャを削除します。

ジオプロセシング操作とクラスター許容値により、余分な小さなスライバーポリゴンが作成される可能性があります。これらは無意味な場合があり、空間データの信頼性を歪める可能性があります。」

注:データをさまざまな許容範囲でテストする必要があります(最初にデータのコピーを取得します)

http://arcscripts.esri.com/details.asp?dbid=14672


1
これは、ArcInfoのカバレッジ>クリーン弧>ビルドポリゴン....と簡単だった
Mapperz

このツールが私が描いているエラーを実際に排除するかどうかはわかりません。ご覧のとおり、スライバー(旗竿)とポリゴンの本体(旗)は実際には1つの機能です。したがって、このスクリプトは、「フラグ」機能全体を同時に削除せずに、ポリゴンの「フラグポール」部分のみを削除しません。
RyanKDalton

1

ライアン、

私は土壌調査事務所で働き、定期的に土壌ポリゴンをチェックしました。私がやることは、スライバーをチェックすることです。フィーチャクラスをカバレッジに送信し、それらを構築してエラーを特定するためにラベルを付けます。1つのポリゴンに2つのラベルが表示される場合、エラーです。ポリゴンごとに1つのラベルがあれば、それが正しいことがわかります。エラーをマークするポイントとしてフィーチャクラスを作成します。または、1つまたは複数のラベルを選択して新しいフィーチャクラスに入れることができます。この方法で、戻ってエラーを修正できます。土壌ポリゴンで非常にうまく機能します。私はそれを使用して、土壌科学者に問題を解決するように伝えます。

それは問題を特定する方法の私のものです。それをあなたと共有するだけです。


1

識別が主要なポイントではなく、自動修正だけがこれを試す場合。新しい空のマップドキュメントにデータを追加してから、;

  • マップトポロジを作成する
  • すべての機能を選択
  • 構成機能を使用して既存の機能を分割する

私はこれをテストしましたが、うまくいくようですが、データソースを正確に複製したかどうかはわかりません

楽しんで、CDB


1

ここでは、これを行ういくつかの方法がありますが、私の意見では、GIS Data Reviewerと呼ばれる拡張機能を使用するのが最もエレガントです。GISデータレビュアーを使用すると、コアトポロジに加えて、空間および属性の精度に関するカスタマイズされた単純化されたチェックを作成できます。トポロジ内には、Data Reviewer Likeの標準チェックの一部として利用できないものがあります

  • 3Dクロージャー
  • 無効な穴
  • SQL式
  • 空間参照よりも小さい領域
  • 機能の機能
  • などなど

これを使用して、データを調査します。もう1つの方法は、既存のポリゴンフィーチャクラスに基づいて新しいフィーチャクラスを作成することです。そして、新しいポリゴンフィーチャクラスを作成し、トポロジツールバーのフィーチャ作成ツールを使用してラインを追加します。これは、スライバーがそのように表示され、他のトポロジツールがエラーを検出する必要があることを意味します。次に、既存のフィーチャクラスのフィーチャを選択、削除、および置換します。

これがお役に立てば幸いです、CDB

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