3D 缓冲区 (3D Analyst)
摘要
在点或线要素周围创建 3D 缓冲区。
插图
用法
点输入将会生成球体,线输入将会生成圆柱要素。
可用于体积计算(包括 3D 集合运算符工具提供的计算)的输出闭合多面体要素。有关集合运算符概念和用法的详细信息,请参阅使用 3D 集合运算符。
提高缓冲质量会生成更平滑的 3D 要素,但处理时间将会更长。
考虑指定一个简化值以提高复杂线要素(例如带有大量折点的曲线)的性能。
由于使用的线几何和缓冲区距离等因素,此工具可能无法生成某些线要素的闭合多面体。避免同一相同要素中可能会造成缓冲区重叠的缓冲区距离,并考虑为无法生成输出的要素指定更小的缓冲区距离。
语法
Buffer3D_3d (in_features, out_feature_class, buffer_distance_or_field, {buffer_joint_type}, {buffer_quality}, {simplification_tolerance})
参数 | 说明 | 数据类型 |
in_features |
待缓冲的线或点要素。 | Feature Layer |
out_feature_class |
表示 3D 缓冲区的输出多面体要素。 | Feature Class |
buffer_distance_or_field |
输入要素缓冲区周围的距离,可作为线性距离提供或从输入要素属性表中的数值字段得出。 如果“距离”的线性单位未指定或输入了“未知”,则将使用输入要素空间参考的线性单位。 | Linear Unit; Field |
buffer_joint_type (可选) |
线段折点之间的缓冲区形状。此参数只对线输入要素有效。
| String |
buffer_quality (可选) |
用于表示生成的多面体要素的线段数。默认为 20,但可输入 6 到 60 范围内的任何数字。 | Long |
simplification_tolerance (可选) | 简化通过在最大允许偏移量范围内保留定义原始线形状的重要折点,减少输入线中的折点。默认情况下,不会进行简化,除非指定了容差值。简化容差可定义为字符串(此字符串需要包含数值及其所需线性测量单位,例如 1.5 米),或没有关联测量单位的数值(在这种情况下,它将默认为输入的水平空间参考的线性单位)。 | Linear Unit |
代码实例
Buffer3D 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Buffer3D_3d('lineFC.shp', 'buffer3d.shp', '15 Meters',
'Round', 30, '1 Meters')
Buffer3D 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具:
'''****************************************************************************
Name: Buffer 3D Example
Description: This script demonstrates an application of
the Buffer 3D and Inside 3D tools.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inFC = 'lineFC.shp'
bufferOut = 'buffer3d.shp'
# Execute Buffer 3D
arcpy.Buffer3D_3d(inFC, bufferOut, '15 Meters', 'Round', '30', '1 Meters')
arcpy.Inside3D_3d(bufferOut, 'survey_pts.shp', 'inside_analysis.dbf')
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)
环境
相关主题
许可信息
ArcGIS for Desktop Basic: 需要 3D Analyst
ArcGIS for Desktop Standard: 需要 3D Analyst
ArcGIS for Desktop Advanced: 需要 3D Analyst
5/10/2014