ArcMapを使用して「ほぼ範囲内」の選択を実行しますか?


8

ポリラインがポリゴンの「大部分」内にあるかどうかを確認する方法を探しています。ほとんどが内にあるので、その実行時にパーセンテージを入力できる必要があります。

ArcMapで[場所で選択]を使用するオプションがあるのではないかと思いましたが、存在しないようです。「完全に内」などの同様の方法がありますが、どの方法を使用して目的の目的を達成できるかわかりません。

これを実現するためのこの機能または方法はありますか?


「ほぼ内」を定義... 75%内?
DPSSpatial 2014年

これはオプション内の重心なので、通常はほとんど内にあります
HeikkiVesanto 2014年

@mapBakerパーセンテージについての良い点。おそらく、ArcPyを使用している場合、これは、望ましい結果を生成するために調整できる変数である可能性があります。
amasephy 2014年

1
@Vesanto重心は機能しません。ポリラインがたまたまポリゴンの角をクリップした場合、重心はポリゴンの内側にある可能性がありますが、その大部分が機能しない可能性があります。
amasephy

2
ポリゴンとラインFCを交差させ、特定のポリゴン(または任意のポリゴン)の各ラインの%を決定する統計を作成します。これから、それから私は私の選択をします。
dklassen 2014年

回答:


8

次に、2つのラインファイル(元のファイルとGPツールの出力)でテーブル間結合を行い、2つのShape.Lenフィールド間のパーセンテージの差を計算する必要があります(元のファイルのラインセグメントの長さが100フィートの場合) 、およびポリゴンにクリップされた同じラインセグメントは75フィートの長さであり、そのラインの75%はポリゴン内にあります)。次に、このパーセントに基づいて属性による選択を行うことができます。

繰り返しますが、これはかなり複雑で、中間のデータセットを作成します。おそらく、これを行う簡単な方法が私にはわからないでしょう。しかし、そのためのモデルまたはスクリプトを作成し、それが終わったら出力ラインFCを削除すれば、エンドユーザーにはそれほど難しくはないはずです...少し苦労しても最初に構築する。

少し考えてみて、それが意味をなさない場合はお知らせください。詳しく説明します。


+1それらは、ArcGISの機能をうまく利用しているため、かなり良い考えのように聞こえます。どのように行われたとしても、何らかの形式のポリゴン対ポリラインオーバーレイ操作を回避する方法は実際にはありません。(ところで、私はあなたがドライブバイダウンボーターの犠牲者だったと思います、そして私はそれをお詫び申し上げます。)
whuber

@Johnそれも私が考えていたものです...しかし、結合を行うには、入力行に結合を実行できるUNIQUEIDフィールド(ArcGIS OBJECTIDフィールドではない)が必要になります...
DPSSpatial

1
@mapBakerありがとう、それは良い点です(一部のツールのように、クリップが入力OIDを出力に保存した場合は忘れました)。まだ使用できない場合は、クリップを実行する前に別のフィールドへのOIDを計算して、UniqueIDを取得できます。
John

@John ohhhh K ...
DPSSpatial

この解決策は私にとってはうまくいきますが、dklassenがClipの代わりにIntersectを使用すると、これが簡単になると思います。私は受け取った応答の組み合わせを使用してしまいました。誰がその質問に答えたとして信用すべきかわかりません。
amasephy 2014年

3

ここで受け取った回答に基づいて、提供されたアイデアを組み合わせて使用​​しました。

最初に行ったのは、元のデータセットに長さとパーセントのフィールドを追加することでした。Shape.Lengthの値をLengthフィールドにコピーしました。

次に、この場合は作業量が大幅に増えるClipを使用する代わりに、Intersectツールを使用しました。これにより、ポリゴンと交差するポリラインが「切り取られ」、貴重な属性が追加されます。本当に一意のIDフィールドがあるにもかかわらず、静的な長さフィールドを使用する場合は本当に必要だとは思いません。

最後に、新しいShape.Lengthと静的なLengthフィールドとの差のパーセントをPercentフィールドに計算するだけです。ポリゴンの境界と交差するポリラインのパーセンテージは100未満です。


2
  1. 各頂点でポリラインを分割し、
  2. 各セグメントの呼び出しについて、エンドポイント内で完全に呼び出し、
  3. 完全に内側にあるセグメントは、ポリゴン内でその長さの100%であり(リエントラントポリゴンがない場合)、その長さを合計に追加できます。
  4. 部分的な線は、たとえば10のセグメントに分割でき、同じ計算が適用されます。
  5. 合計と計算された長さを比較して、10%の解像度を取得します(より正確な結果が必要な場合は、部分的なラインを細かく分割できます)。
  6. 完全に外側の線の長さの合計を保持することもでき、しきい値を超えて回答がない場合にのみ、部分的な線の計算のみを実行できます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.