概要
3D 空間のラインの交差セグメントおよび重複セグメントを計算します。
使用法
このツールはペアワイズ ベースで動作します。2 本以上のラインが交差する場合、出力ポイントの数は交差するラインの数学的組み合せです。たとえば、交差する 3 本のラインからは、1 本目と 2 本目の交差で 1 つ、1 本目と 3 本目の交差で 1 つ、2 本目と 3 本目の交差で 1 つの合計 3 つの出力ポイントが作成されます。同様に、4 本の入力ラインが交差した場合は、1 本目と 2 本目の交差で 1 つ、1 本目と 3 本目の交差で 1 つ、1 本目と 4 本目の交差で 1 つ、2 本目と 3 本目の交差で 1 つ、2 本目と 4 本目の交差で 1 つ、3 本目と 4 本目の交差で 1 つの合計 6 つの出力ポイントができます。
入力フィーチャは空間インデックスを持っている必要があります。インデックスが正しいかどうかわからない場合は、[空間インデックスの追加 (Add Spatial Index)] ツールを使用して、新しいインデックス (特にシェープファイル) を作成するか、既存のインデックスを再構築します。
2D ラインが入力された場合、すべての頂点は高さがゼロと見なされます。
Z 値が異なる 2 本のラインが交差する場合、交差を検出するための垂直方向の許容値により、出力ポイントは 2 つの高さのうち高いほうの値を使用します。同様に、Z 値が異なる 2 本のライン セグメントが交差する場合、出力ライン フィーチャは、Z 値が大きいほうのセグメントに基づいて作成されます。
2 本の入力ラインが複数の連続しない、重複したセクションを持っている、あるいは近接しているラインが Z 方向に向けて離れていくことにより、出力ラインが複数の部分で構成される場合があります。
属性が出力に転送される場合、最初のフィールド セットの値は最初の入力ラインから割り当てられます。2 番目のフィールド セットは 2 本目の入力ラインから割り当てられます。2 つの入力ライン フィーチャ レイヤーが指定されている場合、1 本目と 2 本目のラインはそれぞれ、1 つ目と 2 つ目の入力ライン フィーチャ レイヤーのラインです。入力ライン フィーチャ レイヤーが 1 つのみ指定されている場合、同じルールに従いますが、同じ列が繰り返して現れます。
出力ポイント フィーチャには、次の属性フィールドが含まれます。
- I3L_TYPE - 値 0 は、ポイントが重複するライン セグメントの終点を示していることを意味します。値 1 は、ポイントが 2 本のラインの交差ポイントであることを示します。
- I3L_GROUP - 水平方向の空間で同じ場所を共有するすべてのポイントを識別する一意の値。
- I3L_OID1 - 交差する 1 本目のライン フィーチャのフィーチャ ID。
- I3L_OID2 - 交差する 2 本目のライン フィーチャのフィーチャ ID。
- I3L_LINE1Z - 1 本目のライン上の交差ポイントの Z 値。
- I3L_LINE2Z - 2 本目のライン上の交差ポイントの Z 値。
- I3L_Z_DIFF - 交差ポイントの XY の場所おける 2 本の入力ラインの差分。
構文
arcpy.3d.Intersect3DLines(in_lines, {max_z_diff}, {join_attributes}, {out_point_fc}, {out_line_fc})
パラメーター | 説明 | データ タイプ |
in_lines [in_lines,...] | 交差の有無が評価されるライン フィーチャ。入力は、1 つまたは 2 つのライン フィーチャ レイヤーまたはクラスで構成されます。指定された入力が 1 つの場合、各フィーチャはそのフィーチャクラスのその他すべてのフィーチャと比較されます。指定されたフィーチャ自体とは比較されません。 | Feature Layer |
max_z_diff (オプション) | 交差するライン セグメントの間の垂直方向の最大距離。 | Linear Unit |
join_attributes (オプション) | 入力フィーチャのどの属性を出力フィーチャクラスへ渡すかを指定します。
| String |
out_point_fc (オプション) | 入力ラインが交差する場所を表す出力ポイントで、重複ライン セグメントが開始および終了する場所を含みます。 | Feature Class |
out_line_fc (オプション) | 入力ライン間に存在する重複セクションを表す出力ライン。 | Feature Class |
派生した出力
名前 | 説明 | データ タイプ |
out_intersection_count | 入力ラインで交差する場所の数。 | Long |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.Intersect3DLines(['floor_centerlines.shp', 'stairs.shp'], '2 Meters',
'ONLY_FID', 'intersection_pts.shp')
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst または ArcGIS Location Referencing
- Standard: 次のものが必要 3D Analyst または ArcGIS Location Referencing
- Advanced: 次のものが必要 3D Analyst または ArcGIS Location Referencing