描述
使用表面来更新 3D 要素折点的 z 坐标。
使用方法
只会更新与输入表面完全重叠的要素的折点。将跳过与表面部分不重叠的要素。
注:
如果给定折点获取的 z 值在地理数据库要素的空间参考 z 值域之外,则不会更新折点的 z 值。创建输入要素的副本并指定适当的 z 值域以处理受影响的要素。
语法
arcpy.3d.UpdateFeatureZ(in_features, in_surface, {method}, {status_field})
参数 | 说明 | 数据类型 |
in_features | 折点 z 值将被修改的 3D 要素。 | Feature Layer |
in_surface | 将用于确定 3D 要素折点新 z 值的表面。 | LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer |
method (可选) | 用于确定表面相关信息的插值方法。可用选项取决于输入表面的数据类型:
| String |
status_field (可选) | 将使用值进行填充的现有数值字段,可反映要素的折点是否已成功更新。已更新要素的值会被指定为 1,而未更新要素的值会被指定为 0。不会更新与表面部分重叠的要素。 | Field |
派生输出
名称 | 说明 | 数据类型 |
out_feature_class | 更新后的 3D 要素,已修改其折点 z 值。 | 要素图层 |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = 'C:/data'
arcpy.UpdateFeatureZ_3d('lines_3d.shp', 'dsm.tif', status_field='Updated')
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
Name: Update Antenna Positions
Description: Updates antenna positions based on elevations from a surface.
****************************************************************************'''
# Import system modules
import arcpy
in_fc = arcpy.GetParameterAsText(1) # pt features representing antenna locations
surface = arcpy.GetParameterAsText(2) # surface used to modify feature Z values
try:
if arcpy.Describe(surface).dataType in ('Raster', 'RasterLayer'):
method = 'BILINEAR'
else:
method = 'CONFLATE_ZMAX'
arcpy.ddd.UpdateFeatureZ(in_fc, surface, method)
except arcpy.ExecuteError:
print(arcpy.GetMessages())
许可信息
- Basic: 需要 3D Analyst
- Standard: 需要 3D Analyst
- Advanced: 需要 3D Analyst