最近接 3D(Near 3D) (3D Analyst)
サマリ
各入力フィーチャから、1 つ以上の近接フィーチャクラス内での最近接フィーチャまでの 3 次元距離を計算します。
使用法
すべてのジオメトリ タイプがサポートされています。また、すべての入力フィーチャクラスに Z 値を指定する必要があります。
近接フィーチャにはさまざまな形状タイプの 1 つ以上のフィーチャクラスを含めることができます。
近接フィーチャは、入力フィーチャと同じデータセットにできます。入力フィーチャの最近接フィーチャがそれ自体の場合(距離の値が 0)、このフィーチャは無視されて、2 番目に近いフィーチャが検索されます。
[最近接(Near)] ツールと [最近接 3D(Near 3D)] ツールの基本的な違いは、[最近接 3D(Near 3D)] ツールでは 2D フィーチャではなく 3D フィーチャを操作するということです。さらに、[最近接 3D(Near 3D)] ツールによって比較される距離は 3D(傾斜)距離で、水平距離ではありません。多数の追加フィールドも出力できます。
[角度] オプションが有効の場合、角度フィールドだけが作成されて設定されます。
入力フィーチャの属性テーブルに次のフィールドが追加されます。
- NEAR_FID - 最近接フィーチャの FID。
- NEAR_DIST - 入力フィーチャ上の最近接ポイントと最近接フィーチャ上の最近接ポイントの間の 2D 距離(水平距離)。
- NEAR_DIST3 - 入力フィーチャ上の最近接ポイントと最近接フィーチャ上の最近接ポイントの間の 3D 距離(傾斜距離)。
- NEAR_DELTX - 入力フィーチャ上の最近接ポイントから最近接フィーチャ上の最近接ポイントまでの X 軸に沿った距離。
- NEAR_DELTY - 入力フィーチャ上の最近接ポイントから最近接フィーチャ上の最近接ポイントまでの Y 軸に沿った距離。
- NEAR_DELTZ - 入力フィーチャ上の最近接ポイントから最近接フィーチャ上の最近接ポイントまでの Z 軸に沿った距離。
- NEAR_FROMX - 最近接フィーチャ上の最近接ポイントに最も近い入力フィーチャ上の最近接ポイントの X 座標。
- NEAR_FROMY - 最近接フィーチャ上の最近接ポイントに最も近い入力フィーチャ上の最近接ポイントの Y 座標。
- NEAR_FROMZ - 最近接フィーチャ上の最近接ポイントに最も近い入力フィーチャ上の最近接ポイントの Z 座標。
- NEAR_X - 最近接フィーチャ上の最近接ポイント、または最近接フィーチャに沿った最近接イメージ ポイントの X 座標。
- NEAR_Y - 最近接フィーチャ上の最近接ポイント、または最近接フィーチャに沿った最近接イメージ ポイントの Y 座標。
- NEAR_Z - 最近接フィーチャ上の最近接ポイント、または最近接フィーチャに沿った最近接イメージ ポイントの Z 座標。
- NEAR_ANG_H - 入力フィーチャ上の最近接ポイントと最近接フィーチャ上の最近接ポイントの間の、地理的な水平角(北方位角)(度単位)。これは、旧来の [最近接(Near)] ツールによって使用されるのと同じシステムで、方位または方位角ではありません。真東は 0(ゼロ)、北東は 45、真北は 90、真南は -90、真西は 180 または -180 です。この値では標高は無視されます。
- NEAR_ANG_V - 入力フィーチャ上の最近接ポイントから最近接フィーチャ上の最近接ポイントまでの、対頂角(標高の角度)(度単位)。水平は 0(ゼロ)、上方向に垂直は 90、下方向に垂直は -90、水平から 10 度上は 10 になります。
- NEAR_FC - 最近接フィーチャを含むフィーチャクラスのパス名。このフィールドは、複数の最近接フィーチャが指定された場合のみ追加されます。
すでに上記のフィールドが存在している場合は、その値が更新されます。
検索範囲内で一致するものが見つからない場合は、NEAR_FID、NEAR_DIST、NEAR_DIST3 の値が -1 になります。
NEAR_DELTX、NEAR_DELTY、NEAR_DELTZ フィールドが作成および設定されるのは、[距離] チェックボックスをオンにした場合のみです。
NEAR_FROMX、NEAR_FROMY、NEAR_FROMZ、NEAR_X、NEAR_Y、NEAR_Z フィールドが作成および設定されるのは、[位置] チェックボックスをオンにした場合のみです。
This tool is a 3D set operator that provides analytical functions on 3D features. See Working with 3D set operators for more information on what set operators are and how to use them.
構文
パラメータ | 説明 | データ タイプ |
in_features |
フィーチャが最近接フィーチャに関する情報の属性を持つ入力フィーチャクラス | Feature Layer |
near_features |
入力フィーチャへの近接度が計算される 1 つ以上のフィーチャ。複数のフィーチャクラスが指定されると、最も近いフィーチャがどの近接フィーチャクラスに含まれていたかを特定する NEAR_FC という名前のフィールドが入力フィーチャクラスに追加されます。 | Feature Layer |
search_radius (オプション) |
入力フィーチャと、距離と FID が決定される近接フィーチャの間の最大距離。検索範囲を指定しない場合、すべての近接フィーチャが使用されます。 | Linear Unit |
location (オプション) |
各入力フィーチャに 6 つの座標フィールド(X、Y、Z 値を 2 セット)を追加するかどうかを決定します。値は、入力フィーチャの 3 つの座標(NEAR_FROMX、NEAR_FROMY、NEAR_FROMZ)と、最近接フィーチャの 3 つの座標(NEAR_X、NEAR_Y、NEAR_Z)です。フィールド NEAR_FID および NEAR_DIST は、[位置] オプションに関係なく、常に追加されます。
| Boolean |
angle (オプション) |
入力フィーチャと最近接フィーチャの間の角度を計算し、NEAR_ANG_H および NEAR_ANG_V フィールドに格納するかどうかを決定します。どちらの角度値も度単位で、1 度は円の 1/360 を表し、度の小数部は 10 進数の小数点で表されます。水平角は 180°~ -180°の間で計測され、0°が東、90°が北、180°(-180°)が西、-90°が南です。対頂角は、0(ゼロ)が水平、90°が上方向に垂直、-90°が下方向に垂直です。
| Boolean |
delta (オプション) |
入力フィーチャと最近接フィーチャの間の主軸に沿った距離を計算し、NEAR_DELTX、NEAR_DELTY、NEAR_DELTZ フィールドに格納するかどうかを決定します。
| Boolean |
コードのサンプル
The following sample demonstrates the use of this tool in the Python window:
import arcpy from arcpy import env arcpy.CheckOutExtension("3D") env.workspace = "C:/data" arcpy.Near3D_3d("points_3D.shp", "buildings_multipatch.shp", "30", "LOCATION", "ANGLE", "DELTA")
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''**************************************************************************** Name: Near 3D Example Description: This script demonstrates how to use the Near 3D tool to identify the nearest z-aware features that satisfy the results from a queried feature. ****************************************************************************''' # Import system modules import arcpy import exceptions, sys, traceback from arcpy import env try: # Obtain a license for the ArcGIS 3D Analyst extension arcpy.CheckOutExtension('3D') # Set environment settings env.workspace = 'C:/data' # Set Local Variables inFC = 'homes.shp' nearFC = 'radiotowers.shp' # See the 'Building an SQL expression' topic for more information # Query the field 'MATERIAL' for the string 'Reinforced Concrete' SQL_Expression = "'"'MATERIAL'"' = 'Reinforced Concrete'" #Execute Make Feature Layer arcpy.MakeFeatureLayer_management(nearFC, 'Near Layer', SQL_Expression) result = arcpy.GetCount_management('Near Layer') if int(result.getOutput(0)) == 0: arcpy.AddMessage('{0} has no features that satisfy the query: {1}'\ .format(nearFC, SQL_Expression)) else: #Execute Near3D arcpy.Near3D_3d(inFC, 'nearLayer', '', 'LOCATION', 'ANGLE') except arcpy.ExecuteError: print arcpy.GetMessages() except: # Get the traceback object tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] # Concatenate error information into message string pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\ .format(tbinfo, str(sys.exc_info()[1])) msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2)) # Return python error messages for script tool or Python Window arcpy.AddError(pymsg) arcpy.AddError(msgs)