ArcGIS 10 / Pythonでポリゴンのスパイクを削除するにはどうすればよいですか?


8

下の図では、TINから抽出された急勾配を表すポリゴンレイヤーを確認できます。ポリゴンにはスパイクがたくさんあります。残りの境界線がまったく同じ場所にある間に、これらのスパイクを削除したいと思います。これは、Pythonスクリプトで、arcpy関数またはPython関数を使用して行います。

詳細情報:ArcGIS 10.0、Python 2.6.5、ポリゴンレイヤーはGDBにあります

画像


3
あなたがあなたのスパイクを修正するための自動化された方法を見つけるつもりかどうかはわかりません。問題は、ポリゴンの内側と外側の鋭角をどのように区別するかです。または、スパイクと非スパイクの違いをソフトウェアにどのように伝えますか?また、残りのポリゴンを移動/変更したくないので、機能するツールが制限されます。それは難しいことです。
Baltok、2013

どの空間範囲を使用していますか?可能であれば、ベクターデータを手動で編集しますか?
アーロン

1
FMEにアクセスできる場合は、SpikeRemoverツールで目的を達成できます。あなたが本当に求めた解決策ではありませんが、それは速いでしょう。
Fezter

@Baltok回答ありがとうございます。それは不可能なことではありませんか?;)私はそれがタフなものであることに同意します...
Vincent Udo

@Aaron空間範囲が大きすぎて手動でこれを実行できません。オランダの大部分でこれを行わなければなりません。
Vincent Udo

回答:


2

ポリゴン単純化」ツール(最初)または「ポリゴンスムーズ」ツール(2番目)をいじって、「残りの境界線がまったく同じ場所に留まる」という要件をどれだけ満たしているかを確認することをお勧めします。


答えてくれてありがとう!残念ながら、単純化とスムーズ化の両方で、私が探している結果が得られません。
Vincent Udo

こんにちはVincent-結果が要件からどのように逸脱しているかについて、もう少し情報を提供できますか?これは、一部のパラメーター調整が許容可能な出力を提供するかどうか、または別の解決策が全体として優れているかどうかを判断するのに役立ちます。
アンディティリア2013

ポリゴンを使用して、ポリゴンの境界にあるラインを選択する必要がありますが、スパイクと交差するラインを選択したくありません。境界線を単純化して滑らかにすると、境界線が変更され、正しい線を選択できなくなります。ラインはTINの作成に使用されるため、ポリゴンの境界とまったく同じ場所にあります。
Vincent Udo

0

あなたのイメージから、私はこのアプローチがあなたを助けると言えるでしょう。

手順は簡単です

  1. 最初に、ある程度の距離を置いて元のレイヤーをバッファリングします。

  2. 次に、ステップ1の結果に対して同じ距離で逆バッファーを実行します。

  3. このクリップの後、ステップ2の結果を含む元のレイヤーになります。

最終レイヤーで簡略化を実行する必要がある場合があります。

お役に立てば幸いです。


ご回答有難うございます。残念ながら、この方法では私が探している結果は得られません。スパイクとスロープの間の隙間を埋めます。スパイクの先端の頂点を削除してスパイクを削除する方法を見つけたいのですが。
Vincent Udo、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.