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