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

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

添加表面信息

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

描述

将获取自表面的空间信息添加到要素属性中。

使用方法

  • 忽略 3D 要素的 Z 值。每个要素都会汇总与其几何相交的表面 Z 属性。点从表面上的 XY 位置获取 Z 值,线通过沿其长度插入表面测量值来获取 Z 属性,面则汇总其区域内的表面 Z 属性。

  • 输出属性选项会写入到输入要素的属性表中。各要素定义被评估的表面属性的位置,以及可根据要素几何报告的属性类型:

    要素几何表面属性

    点

    根据表面上点的 XY 坐标插入点高程。

    多点

    多点记录中所有点的最小、最大和平均高程。

    折线

    沿着表面的线的 3D 距离。

    沿着表面的线的最小、最大和平均高程和坡度。

    面

    与面重叠的表面的 3D 区域。

    来自表面的最小、最大和平均高程和坡度。

  • 坡度值以百分比单位(百分度)进行测量,线要素的坡度值沿着线的各线段进行计算。

    • 最小坡度值根据坡度值最接近 0 或水平等级的线段获得。
    • 最大坡度根据具有最大计算值的线段获得。
    • 平均坡度通过按 3D 长度对每个坡度进行加权、然后确定平均值获得。这种计算方法会导致较长线段对结果值的影响比较短线段更大。
  • 考虑应用噪点过滤器来排除以异常测量值为特征的部分表面参与到坡度计算中。线要素由捕捉表面剖面的折点来分段,按长度过滤这些线段会消除可能由不希望出现的表面测量值产生的短线段影响。同理,面要素的面积过滤器会排除三角化网格面中的狭长三角形参与到坡度计算中。对于栅格表面,像元质心子集用于构造可应用面积过滤器的三角化网格面。

语法

arcpy.ddd.AddSurfaceInformation(in_feature_class, in_surface, out_property, {method}, {sample_distance}, {z_factor}, {pyramid_level_resolution}, {noise_filtering})
参数说明数据类型
in_feature_class

定义位置的点、多点、折线或面要素,用于确定一个或多个表面属性。

Feature Layer
in_surface

用于内插 z 值的 LAS 数据集、镶嵌、栅格、terrain 或 TIN 表面。

LAS Dataset Layer; Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer
out_property
[out_property,...]

将添加到输入要素类属性表中的表面高程属性。下表汇总了可用属性关键字及其支持的几何类型:

  • Z —针对每个单点要素的 XY 位置插值的表面 Z 值。
  • Z_MIN —由面、沿线的长度或多点记录中各点的插值定义的面积中最低的表面 Z 值。
  • Z_MAX —由面、沿线的长度或多点记录中各点的插值定义的面积中最高的表面高程。
  • Z_MEAN —由面、沿线的长度或多点记录中各点的插值定义的面积中的平均表面高程。
  • SURFACE_AREA —由每个面定义的区域的 3D 表面区域。
  • SURFACE_LENGTH —沿着表面的线的 3D 距离。
  • MIN_SLOPE —沿线或面定义的区域中的最接近零的坡度值。
  • MAX_SLOPE —沿线或面定义的区域中的最高坡度值。
  • AVG_SLOPE —沿线或面定义的区域中的平均坡度值。
String
method
(可选)

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

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

用于内插 z 值的间距。默认情况下,如果输入表面是栅格,则使用栅格像元大小;如果输入是 terrain 或 TIN 数据集,则使用三角化网格面的自然增密。

Double
z_factor
(可选)

Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。如果输入表面的空间参考具有已指定线性单位的 Z 基准,则将禁用此参数。

Double
pyramid_level_resolution
(可选)

此工具将使用 terrain 金字塔等级的 z 容差或窗口大小分辨率。默认值为 0(z 容差),或全分辨率(窗口大小)。

Double
noise_filtering
(可选)

排除以异常测量值为特征的部分表面参与到坡度计算过程中。线要素会提供长度过滤器,而面要素则提供面积过滤器。与任意一个过滤器选项对应的值都会以要素坐标系的线性单位进行评估。非坡度属性不受此参数影响。

  • NO_FILTER —不会使用任何噪点过滤器来限制将线段或表面三角形作为坡度计算的因素考虑。这是默认设置。
  • AREA <value> —3D 区域小于指定值的表面三角形会在坡度计算过程中被排除掉。
  • LENGTH <value> — 插值到表面后 3D 长度小于指定值的线段会在坡度计算过程中被排除掉。
String

派生输出

名称说明数据类型
output_feature_class

已更新的输入要素。

要素图层

代码示例

添加表面信息 (AddSurfaceInformation) 示例 1(Python 窗口)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.AddSurfaceInformation_3d("points.shp", "my_tin", "Z", "LINEAR")
添加表面信息 (AddSurfaceInformation) 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

'''*********************************************************************
Name: AddSurfaceInformation Example
Description: This script demonstrates how to use AddSurfaceInformation 
             on all 2D feature classes in a target workspace.
*********************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback

try:
    arcpy.CheckOutExtension("3D")
    # Set Local Variables
    env.workspace = 'c:/data'
    inSurface = 'fgdb.gdb/municipal/terrain'
    pyramid = 5
    method = "BILINEAR"
    # Create list of feature classes
    fcList = arcpy.ListFeatureClasses()
    if fcList:
        for fc in fcList:
            desc = arcpy.Describe(fc)
            # Determine if the feature is 2D
            if not desc.hasZ:
                if desc.shapeType == "Polygon":
                    # Desired properties separated by semi-colons
                    Prop = "Z_MIN;Z_MAX" 
                elif desc.shapeType == "Point":
                    Prop = "Z"
                elif desc.shapeType == "Multipoint":
                    Prop = "Z_MIN;Z_MAX;Z_MEAN"
                elif desc.shapeType == "Polyline":
                    Prop = "LENGTH_3D"
                # Execute AddSurfaceInformation
                arcpy.ddd.AddSurfaceInformation(fc, inSurface, Prop, 
                                                method, 15, 1, pyramid)
                print "Completed adding surface information."
    arcpy.CheckInExtension('3D')

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)

环境

  • 当前工作空间
  • 范围
  • 地理变换
  • 自动提交

许可信息

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

相关主题

  • 功能性表面工具集概述
  • 有关使用 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. | 隐私政策 | 法律声明