ディファレンス 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)