インサイド 3D(Inside 3D) (3D Analyst)
サマリ
入力フィーチャクラスを使用して、クローズド マルチパッチの中に 3D フィーチャが含まれているかどうかを判定し、部分的または完全にマルチパッチの中にあるフィーチャを出力テーブルに記録します。
図
使用法
すべての入力フィーチャについて、そのジオメトリの一部として Z 情報が格納されている必要があります。2D フィーチャクラスに高さのフィールドがある場合、[属性でフィーチャを 3D に変換(Feature to 3D By Attribute)] ツールを使用して、3D フィーチャクラスを作成できます。
-
この解析には、クローズド マルチパッチ ジオメトリが必要です。[クローズド 3D(Is Closed 3D)] ツールを使用すると、マルチパッチ フィーチャクラスにクローズド フィーチャが含まれているかどうかを判定できます。また、[クローズド マルチパッチの作成(Enclose Multipatch)] ツールを使用すると、マルチパッチ フィーチャのギャップを除去できます。
-
このツールは、3D フィーチャの解析機能を備えた 3D セット演算子です。セット演算子の種類と、その使用方法については、「3D セット演算子の使用」をご参照ください。
-
[コンプレックス出力テーブル] オプションがオンの場合、所定の入力フィーチャが交差する各マルチパッチのレコードが作成されます。1 つのフィーチャが複数のクローズド マルチパッチ フィーチャ内に存在し、出力テーブルに複数のエントリを持つ場合があります。
-
出力テーブルには、次のフィールドが存在しています。
- Target_ID - 入力フィーチャの一意の ID。
- Status - [Target_ID] フィールドで識別されるフィーチャが、マルチパッチの内側にあるか、部分的に内側にあるかを示します。
- Contain_ID - 入力フィーチャが内側または部分的に内側に存在しているマルチパッチの一意の ID を識別します。[コンプレックス出力テーブル] オプションがオンの場合のみ含まれます。
構文
パラメータ | 説明 | データ タイプ |
in_target_feature_class |
入力マルチパッチまたは 3D ポイント、ライン、またはポリゴン フィーチャクラス | Feature Layer |
in_container_feature_class |
入力フィーチャのコンテナとして使用するクローズド マルチパッチ フィーチャ | Feature Layer |
out_table |
閉じている [入力マルチパッチ フィーチャクラス] の内部または部分的に内部にある 3D の [入力フィーチャ] のリストを提供する出力テーブル。出力テーブルには、OBJECTID(オブジェクト ID)、Target_ID、および Status が含まれます。Status は、入力フィーチャ(Target_ID)がマルチパッチの内部にあるのか、部分的に内部にあるのかを示します。 | Table |
complex_output (オプション) |
入力フィーチャを含んでいるマルチパッチ フィーチャを特定する [Contain_ID] フィールドの作成を通じて、出力テーブルが、[入力フィーチャ] と [入力マルチパッチ フィーチャクラス] との間のリレーションシップを特定するかどうかを指定します。
入力フィーチャを含んでいるマルチパッチ フィーチャを特定する [Contain_ID] フィールドの作成を通じて、出力テーブルが、[入力フィーチャ] と [入力マルチパッチ フィーチャクラス] との間のリレーションシップを特定するかどうかを指定します。
| Boolean |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Inside3D_3d('inFeature.shp', 'sample.gdb/multipatch', 'sample.gdb/output_table')
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Inside3D Example
Description: This script demonstrates how to use the
Inside3D tool.
****************************************************************************'''
# 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 = 'Points_3D.shp' # the input feature
inMP = 'Buildings.shp' # the input multi-patch
# Ensure output has a unique name
outTbl = arcpy.CreateUniqueName('Output_Table.dbf')
# Execute Inside 3D
arcpy.Inside3D_3d(inFC, inMP, outTbl)
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)