更新要素 Z 值 (3D Analyst)

摘要

使用表面来更新 3D 要素折点的 z 坐标。

使用情况

  • 只会更新与输入表面完全重叠的要素的折点。将跳过与表面部分不重叠的要素。

    注:

    如果给定折点获取的 z 值在地理数据库要素的空间参考 z 值域之外,则不会更新折点的 z 值。创建输入要素的副本并指定适当的 z 值域以处理受影响的要素。

参数

标注说明数据类型
输入要素

折点 z 值将被修改的 3D 要素。

Feature Layer
输入表面

将用于确定 3D 要素折点新 z 值的表面。

LAS Dataset Layer; Mosaic Layer; Raster Layer; TIN Layer
插值方法
(可选)

用于确定表面相关信息的插值方法。可用选项取决于输入表面的数据类型:

  • BILINEAR可从四个最邻近的像元中确定像元值的栅格表面的专用插值方法。这是适用于栅格表面的唯一选项。
  • LINEAR TIN、terrain 和 LAS 数据集的默认插值方法。根据由包含查询点 XY 位置的三角形定义的平面获取高程。
  • NATURAL_NEIGHBORS 通过将基于区域的权重应用于查询点的自然邻域获取高程。
  • CONFLATE_ZMIN 根据在查询点自然邻域中找到的最小 z 值获取高程。
  • CONFLATE_ZMAX 根据在查询点自然邻域中找到的最大 z 值获取高程。
  • CONFLATE_NEAREST 根据查询点自然邻域中的最近值获取高程。
  • CONFLATE_CLOSEST_TO_MEAN 根据距查询点所有自然邻域的平均值最近的 z 值获取高程。
String
状态字段
(可选)

将使用值进行填充的现有数值字段,可反映要素的折点是否已成功更新。已更新要素的值会被指定为 1,而未更新要素的值会被指定为 0。不会更新与表面部分重叠的要素。

Field

派生输出

标注说明数据类型
更新后的输入要素

更新后的 3D 要素,已修改其折点 z 值。

要素图层

arcpy.ddd.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
(可选)

用于确定表面相关信息的插值方法。可用选项取决于输入表面的数据类型:

  • BILINEAR可从四个最邻近的像元中确定像元值的栅格表面的专用插值方法。这是适用于栅格表面的唯一选项。
  • LINEAR TIN、terrain 和 LAS 数据集的默认插值方法。根据由包含查询点 XY 位置的三角形定义的平面获取高程。
  • NATURAL_NEIGHBORS 通过将基于区域的权重应用于查询点的自然邻域获取高程。
  • CONFLATE_ZMIN 根据在查询点自然邻域中找到的最小 z 值获取高程。
  • CONFLATE_ZMAX 根据在查询点自然邻域中找到的最大 z 值获取高程。
  • CONFLATE_NEAREST 根据查询点自然邻域中的最近值获取高程。
  • CONFLATE_CLOSEST_TO_MEAN 根据距查询点所有自然邻域的平均值最近的 z 值获取高程。
String
status_field
(可选)

将使用值进行填充的现有数值字段,可反映要素的折点是否已成功更新。已更新要素的值会被指定为 1,而未更新要素的值会被指定为 0。不会更新与表面部分重叠的要素。

Field

派生输出

名称说明数据类型
out_feature_class

更新后的 3D 要素,已修改其折点 z 值。

要素图层

代码示例

UpdateFeatureZ 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

arcpy.env.workspace = 'C:/data'

arcpy.UpdateFeatureZ_3d('lines_3d.shp', 'dsm.tif', status_field='Updated')
UpdateFeatureZ 示例 2(独立脚本)

下面的示例演示了如何在独立 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())

相关主题