计算填挖体积 (Image Analyst)

获得 Image Analyst 许可后可用。

摘要

计算基础高程表面和高程栅格之间的填挖方体积。 还可以生成填挖方栅格。 可使用不同类型来指定基础高程表面,例如包含一个或多个面的要素类、面面数组、JSON 字符串或文件或栅格。

使用情况

  • 输出填挖方栅格参数值是一个栅格数据集,由描绘已移除材料(切割)的区域和已添加材料(填充)的区域组成。 单击输出填挖方栅格数据集以在图像信息窗格中显示填挖方信息。

  • 输出填挖方栅格参数值中,挖方面积的体积值为正值,填方区域的体积值为负值。 例如,-0.000305 像素值表示填方立方米。

  • 当输入基础表面参数值为面时,启用的基础表面类型参数选项为表面最小值最大值平均值常量 Z几何 Z

  • 输出体积信息参数值将包含 .txt.json 文件中的填挖方体积信息。 下面列出了示例输出:

    
    [
      {
        "area" : 19009.705386691581,
        "cut" : 19216.883079243154,
        "fill" : -31352.230228323864,
        "cutCellCount" : 668750,
        "fillCellCount" : 936135,
        "minz" : 24.048617219013618,
        "maxz" : 239.59296198262672,
        "meanz" : 127.5100044561793
      }
    ]

    文件中的信息组织如下:

    • area - 面积单位(平方米)
    • cut - 挖方体积(立方米)
    • fill - 填方体积(立方米)
    • cutCellCount - 挖方像元数量
    • fillCellCount - 填方像元数量
    • minz - 最小高程值(米)
    • maxz - 最大高程值(米)
    • meanz - 平均高程值(米)

参数

标注说明数据类型
输入 DSM

输入数字表面模型 (DSM) 高程栅格。 此输入 DSM 栅格与基础高程栅格进行比较。

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; Image Service
基础表面

用于计算挖方和填方体积的基础高程表面。 基础高程表面支持不同类型,例如包含一个或多个面的要素类、面面数组、JSON 字符串或文件或栅格。

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; Image Service; Feature Class; Feature Layer; String; File
基础表面类型

指定将用于基础表面的基础表面类型。

  • 表面面折点位置处的输入 DSM 的高度值将用于构建基础表面。
  • 最小值基础表面面周长的输入 DSM 的最小高度值将用作基础表面。
  • 最大值基础表面面周长的输入 DSM 的最大高度值将用作基础表面。
  • 平均值基础表面面周长的输入 DSM 的平均高度值将用作基础表面。
  • 常数 Z常量 z 值将用作基础表面。
  • 几何 Z3D 几何折点的 z 值将用于构建基础表面。 如果此选项与没有高程的要素类一起使用,则将使用输入 DSM 参数值中的高度值。
  • DSMDSM 将用作基础表面。
String
常数 Z
(可选)

用于定义执行体积计算的高程平面的值。

基础表面类型参数设置为常量 Z 时,该参数将启用。

Linear Unit
输出体积信息
(可选)

包含填挖方体积信息的输出文件。 文件可以是 .txt 文件或 .json 文件。 面积计算结果以平方米为单位,体积计算结果以立方米为单位。

File
输出填挖方栅格
(可选)

输出填挖方体积栅格。 提供文件扩展名来表示栅格数据集的不同格式。 参数支持常用栅格类型,例如 .tif.crf.img、GRID 和文件地理数据库栅格。

Raster Dataset

CalculateCutFillVolume(in_raster, in_base_surface, base_surface_type, {constant_z}, {out_volume_info}, {out_cut_fill_raster})
名称说明数据类型
in_raster

输入数字表面模型 (DSM) 高程栅格。 此输入 DSM 栅格与基础高程栅格进行比较。

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; Image Service
in_base_surface

用于计算挖方和填方体积的基础高程表面。 基础高程表面支持不同类型,例如包含一个或多个面的要素类、面面数组、JSON 字符串或文件或栅格。

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; Image Service; Feature Class; Feature Layer; String; File
base_surface_type

指定将用于基础表面的基础表面类型。

  • SURFACE面折点位置处的输入 DSM 的高度值将用于构建基础表面。
  • MINIMUM基础表面面周长的输入 DSM 的最小高度值将用作基础表面。
  • MAXIMUM基础表面面周长的输入 DSM 的最大高度值将用作基础表面。
  • MEAN基础表面面周长的输入 DSM 的平均高度值将用作基础表面。
  • CONSTANTZ常量 z 值将用作基础表面。
  • GEOMETRYZ3D 几何折点的 z 值将用于构建基础表面。 如果此选项与没有高程的要素类一起使用,则将使用 in_raster 参数值中的高度值。
  • DSMDSM 将用作基础表面。
String
constant_z
(可选)

用于定义执行体积计算的高程平面的值。

当将 base_surface_type 参数设置为 CONSTANTZ 时,此参数处于启用状态。

Linear Unit
out_volume_info
(可选)

包含填挖方体积信息的输出文件。 文件可以是 .txt 文件或 .json 文件。 面积计算结果以平方米为单位,体积计算结果以立方米为单位。

File
out_cut_fill_raster
(可选)

输出填挖方体积栅格。 提供文件扩展名来表示栅格数据集的不同格式。 参数支持常用栅格类型,例如 .tif.crf.img、GRID 和文件地理数据库栅格。

Raster Dataset

代码示例

CalculateCutfillVolume 示例 1(Python 窗口)

此示例使用面数组 JSON 字符串作为基础表面来计算体积信息。

# Import system modules 
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Calculate Volume information
arcpy.ia.CalculateCutfillVolume(in_raster=r"C:\Data\YVWD_dsm.crf",    in_base_surface='{"objectIdFieldName":"OBJECTID","fields":[{"name":"OBJECTID","type":"esriFieldTypeOID","alias":"OBJECTID","domain":null},{"name":"Shape","type":"esriFieldTypeGeometry","alias":"Shape","domain":null},{"name":"id","type":"esriFieldTypeInteger","alias":"ID","domain":null},{"name":"name","type":"esriFieldTypeString","alias":"NAME","domain":null},{"name":"baseType","type":"esriFieldTypeInteger","alias":"BASE SURFACE TYPE","domain":{"type":"codedValue","name":"VolumeBaseSurfaceType","description":"Base surface types for volume calculation.","codedValues":[{"name":"Costant Z","code":0},{"name":"Best Fit","code":1},{"name":"Minimum Z","code":2},{"name":"Maximum Z","code":3},{"name":"Average Z","code":4}],"mergePolicy":"esriMPTDefaultValue","splitPolicy":"esriSPTDefaultValue"}},{"name":"constantZ","type":"esriFieldTypeDouble","alias":"CONSTANT Z","domain":null},{"name":"area","type":"esriFieldTypeDouble","alias":"AREA","domain":null},{"name":"minz","type":"esriFieldTypeDouble","alias":"MINIMUM Z","domain":null},{"name":"maxz","type":"esriFieldTypeDouble","alias":"MAXIMUM Z","domain":null},{"name":"meanz","type":"esriFieldTypeDouble","alias":"MEAN Z","domain":null},{"name":"cut","type":"esriFieldTypeDouble","alias":"CUT","domain":null},{"name":"fill","type":"esriFieldTypeDouble","alias":"FILL","domain":null}],"geometryType":"esriGeometryPolygon","spatialReference":{"wkid":102100,"latestWkid":3857},"features":[{"geometry":{"rings":[[[-13034818.299460374,4029761.0475366744],[-13034772.914974842,4029762.241865241],[-13034776.497960543,4029728.5020832345],[-13034835.915806731,4029729.3978296597],[-13034818.299460374,4029761.0475366744]]],"spatialReference":{"wkid":102100,"latestWkid":3857}},"attributes":{"id":1,"name":"AOI 1","baseType":0,"constantZ":90,"area":1172.3330906432095,"minz":626.8749025576568,"maxz":629.5470508029413,"meanz":627.6681208213765,"cut":631398.5623827629,"fill":0}}]}',    base_surface_type="MINIMUM",    
constant_z=300,    
out_volume_info=r"C:\cutfill\volume.json",    
out_cut_fill_raster=r"C:\cutfill\CutFillRaster.crf")
CalculateCutfillVolume 示例 2(独立脚本)

此示例使用面要素类作为基础表面来计算体积。

# Import system modules 
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Define parameters.  
in_raster = r"C:\Data\YVWD_dsm.crf " 
in_base_surface = r"C:\Data\YVWD.gdb\AOI_2D"    
base_surface_type = "SURFACE"
Constant_z = "None"    
out_volume_info = r"C:\Output\volume.json"
out_cut_fill_raster = r"C:\Data\YVWD.gdb\CutFillRaster"

# Execute CalculateVolume
 arcpy.ia.CalculateCutfillVolume(in_raster, in_base_surface, base_surface_type, constant_z, out_volume_info, out_cut_fill_raster)

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 需要 Image Analyst
  • Standard: 需要 Image Analyst
  • Advanced: 需要 Image Analyst

相关主题