ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

更新要素 Z 值

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

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

使用方法

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

    注:

    如果给定折点获取的 z 值在地理数据库要素的空间参考 z 值域之外,则不会更新折点的 z 值。创建输入要素的副本并指定适当的 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())

环境

  • 当前工作空间
  • 范围

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题

  • 3D 要素工具集概览
  • 关于 3D 要素
  • 有关使用 ArcGIS 3D Analyst 扩展模块进行地理处理的基础知识

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明