表面体积 (3D Analyst)

摘要

计算表面和参考平面之间区域的面积和体积。

插图

参考平面上方;平面高度与表面相交
参考平面下方;平面高度与表面相交

使用情况

  • 当表面 Z 值不使用 XY 单位而使用其他测量单位表示时,使用 Z 因子可确保体积计算的准确性。 使用 Z 因子不会修改原始数据。 工具将自动在定义 XY 和 Z 坐标系时确定适用的 Z 因子。

  • 输出文本文件将存储表面的完整路径、用于生成结果的参数以及计算得出的面积和体积测量值。 如果在工具的多次运行中指定了相同的输出文件,则会维护预先存在的记录并将结果追加至表。

    数据集平面高度参考Z 因子2D 面积3D 面积体积

    C:\data\tin

    100.00

    上方

    1

    15984467.82

    16354331.40

    1886012931.05

    C:\data\raster.tif

    250.5

    下方

    3.28084

    0

    0

    0

    C:\data.gdb\fd\terrain

    1250

    上方

    0.3048

    1854238.36

    1970550.88

    1099221466.89

  • 如果需要计算表面面积和体积的区域是由非矩形范围定义的,请考虑创建用于划定感兴趣区边界的面,然后使用面体积工具确定由该面定义的平面与给定表面之间区域的计算。

  • 将使用每个像元中心点的范围评估栅格表面,不使用整个像元区域的范围。 相对于为栅格显示的数据区域,生成的分析会将栅格的数据区域减少半个像元。

参数

标注说明数据类型
输入表面

将处理的栅格、TIN 或 terrain 表面。

Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer
输出文本文件
(可选)

包含面积和体积计算的以逗号分隔的 ASCII 文本文件。 如果该文件已经存在,新结果将会追加至该文件。

File
参考平面
(可选)

要为之计算结果的参考平面的方向。

  • ABOVE体积和面积计算将表示指定平面高度和位于该平面上方的部分表面之间的空间区域。 这是默认设置。
  • BELOW体积和面积计算将表示指定平面高度和位于该平面下方的部分表面之间的空间区域。
String
平面高度
(可选)

将用于计算面积和体积的平面的 Z 值。

Double
Z 因子
(可选)

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

Double
金字塔等级分辨率
(可选)

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

Double

arcpy.ddd.SurfaceVolume(in_surface, {out_text_file}, {reference_plane}, {base_z}, {z_factor}, {pyramid_level_resolution})
名称说明数据类型
in_surface

将处理的栅格、TIN 或 terrain 表面。

Mosaic Layer; Raster Layer; Terrain Layer; TIN Layer
out_text_file
(可选)

包含面积和体积计算的以逗号分隔的 ASCII 文本文件。 如果该文件已经存在,新结果将会追加至该文件。

File
reference_plane
(可选)

要为之计算结果的参考平面的方向。

  • ABOVE体积和面积计算将表示指定平面高度和位于该平面上方的部分表面之间的空间区域。 这是默认设置。
  • BELOW体积和面积计算将表示指定平面高度和位于该平面下方的部分表面之间的空间区域。
String
base_z
(可选)

将用于计算面积和体积的平面的 Z 值。

Double
z_factor
(可选)

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

Double
pyramid_level_resolution
(可选)

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

Double

代码示例

表面体积 (SurfaceVolume) 示例 1(Python 窗口)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.SurfaceVolume("sample.gdb/featuredataset/terrain", "surf_vol.txt", 
                       reference_plane="ABOVE", base_z=300, z_factor=3.24, 
                       pyramid_level_resolution=5)
表面体积 (SurfaceVolume) 示例 2(独立脚本)

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

'''****************************************************************************
Name: Surface Volume Example
Description: This script demonstrates how to use the
             Surface Volume tool.

****************************************************************************'''
# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data"

# Set Local Variables
inSurface = "elevation_tin"

# Execute SurfaceVolume
result = arcpy.ddd.SurfaceVolume(inSurface, "", "ABOVE", "300", "1", "5")
print(result.getMessages())

相关主题