最近接 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 フィールドが作成および設定されるのは、[位置] チェックボックスをオンにした場合のみです。
-
このツールは、3D フィーチャの解析機能を備えた 3D セット演算子です。セット演算子の種類と、その使用方法については、「3D セット演算子の使用」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
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 |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
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)