3D 差异 (3D Analyst)
摘要
根据闭合多面体 (multipatch) 要素的面的几何交集,计算出由这些要素定义的两个体积的几何交集。从一个要素类中剪除另一个要素类的所有体积,然后将结果写入到新输出要素类中。
用法
-
输入要素类或图层必须具有多面体几何。
-
只能处理闭合的多面体。跳过所有其他多面体并将错误写入地理处理日志中。使用 是否为闭合 3D 地理处理工具来查看是否存在未闭合的要素。
输出要素类不会具有输入要素类的任何属性。如有必要,可使用空间连接来重新连接原始输入要素的属性。
“3D 差异”属于一种 3D 设置运算符,是“3D 要素”工具集的一部分。有关什么是设置运算符以及如何使用它们的详细信息,请参阅使用 3D 设置运算符。
语法
Difference3D_3d (in_features_minuend, in_features_subtrahend, out_feature_class)
参数 | 说明 | 数据类型 |
in_features_minuend |
将从中剪除掉其他多面体要素的多面体要素集合。 | Feature Layer |
in_features_subtrahend |
将从其他多面体要素中剪除掉的多面体要素集合。 | Feature Layer |
out_feature_class |
用于放置新生成多面体的多面体要素类。 | Feature Class |
代码示例
3D 差异示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在立即模式下使用 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')
3D 差异示例 2(独立脚本)
以下 Python 脚本演示了如何在独立脚本中使用 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)
环境
此工具不使用任何地理处理环境
相关主题
许可信息
ArcView: 需要 3D Analyst
ArcEditor: 需要 3D Analyst
ArcInfo: 需要 3D Analyst
7/10/2012