ディファレンス 3D(Difference 3D) (3D Analyst)
サマリ
閉じたマルチパッチ フィーチャによって定義された 2 つの立体の交差部分をパッチの交差部分に基づいて計算します。あるフィーチャクラスの体積全体を別のフィーチャクラスから減算して、その結果を新しい出力フィーチャクラスに書き出します。
使用法
-
入力フィーチャクラスまたはレイヤはマルチパッチ ジオメトリを持つ必要があります。
-
閉じたマルチパッチだけが処理されます。その他のマルチパッチはスキップされ、ジオプロセシング ログにエラーが記録されます。フィーチャが閉じているかどうかを確認するには、[クローズド 3D(Is Closed 3D)] ジオプロセシング ツールを使用します。
出力フィーチャクラスは入力フィーチャクラスの属性をまったく持ちません。必要に応じて、空間結合を使用して、元の入力フィーチャの属性を再接続することもできます。
[ディファレンス 3D(Difference 3D)] は、[3D フィーチャ] ツールセットの一部をなす 3D 集合演算子です。集合演算子の意味と使用法の詳細については、「3D 集合演算子の使用」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
in_features_minuend |
減算するマルチパッチ フィーチャが削除されるマルチパッチ フィーチャのコレクションです。 | Feature Layer |
in_features_subtrahend |
減算されるマルチパッチ フィーチャから差し引かれるマルチパッチ フィーチャのコレクションです。 | Feature Layer |
out_feature_class |
新しく生成されたマルチパッチが配置されるマルチパッチ フィーチャクラスです。 | Feature Class |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで Difference 3D(ディファレンス 3D)関数を使用する方法を示しています。
import arcpy from arcpy import env arcpy.CheckOutExtension('3D') env.workspace = 'C:/data' arcpy.Difference3D_3d('input_mp.shp', 'erase_mp.shp', 'difference_mp.shp')
次の Python スクリプトは、スタンドアロン スクリプトで Difference 3D(ディファレンス 3D)関数を使用する方法を示しています。
'''**************************************************************************** Name: Difference3D Example Description: This script demonstrates how to create shadow volumes that fall along a specified surface using the Difference3D 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 inMP = 'buildings.shp' eraseMP = 'bldg_extensions.shp' outMP = arcpy.CreateUniqueName('bldgs_without_extensions.shp') # Execute Difference3D arcpy.Difference3D_3d(inMP, eraseMP, outMP) 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)