填挖方 (Spatial Analyst)
插图
![]() |
OutRas = CutFill(Before_Ras, After_Ras) |
![]() |
When the Cut Fill operation is performed, by default, a specialized renderer is applied to the layer that highlights the locations of cut and of fill. The determinant is in the attribute table of the output raster, which considers positive volume to be where material was cut (removed), and negative volume where material was filled (added). |
用法
-
通过填挖方工具可基于操作前后两个输入表面创建一个地图,以便显示出由于移除或添加表面材料而发生变化的表面材料的面积和体积。
-
这两个输入栅格表面必须重叠。即必须具有公共原点、相同的像元行数和列数以及相同的像元大小。
-
要获得精确的结果,z 单位应与 x,y 地面单位相同。这样可以确保所生成体积的单位属于有意义的立方单位制(如立方米)。如果二者不同,可使用 z 因子将 z 单位转换为 x,y 单位。例如,如果 x,y 单位是米而 z 单位是英尺,则应指定 0.3048 的 z 因子以将英尺转换为米。
或者,使用乘数学工具创建一个表面栅格,在此栅格中,z 值已调整为与地面单位保持一致。
-
输出栅格的属性表可显示出执行填挖操作后表面体积的变化情况。使用正体积差值表示执行过挖操作(移除材料)前的栅格表面区域。使用负值表示执行过填操作(添加材料)的区域。请参阅填挖方工具的工作原理获取有关如何计算结果的详细信息。
-
利用此工具执行填/挖操作时,默认情况下,将使用专用渲染器来高亮显示执行填挖操作的位置。该渲染器将被挖的区域绘制成蓝色,将被填的区域绘制成红色。没有变化的区域将显示为灰色。
若要对输入栅格进行重采样,需使用双线性技术。例如,当输出栅格与输入栅格的坐标系统、范围或像元大小不同时,可对输入栅格进行重采样。
语法
参数 | 说明 | 数据类型 |
in_before_surface |
表示填/挖操作之前的表面的输入。 | Raster Layer |
in_after_surface |
表示填/挖操作之后的表面的输入。 | Raster Layer |
z_factor (可选) | 一个表面 z 单位中地面 x,y 单位的数量。 z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。 如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。这是默认值。 如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。例如,如果 z 单位是英尺而 x,y 单位是米,则应使用 z 因子 0.3048 将 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。 | Double |
返回值
名称 | 说明 | 数据类型 |
out_raster |
定义挖填区域的输出栅格。 这些值显示了已向表面添加或从表面移除的位置和数量。 | Raster |
代码实例
在本例中将计算出填挖操作位置处的体积和面积,并将结果输出为 Grid 栅格。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCutFill = CutFill("elevation01", "elevation02", 1)
outCutFill.save("C:/sapyexamples/output/outcutfill01")
在本例中将计算出填挖操作位置处的体积和面积,并将结果输出为 Grid 栅格。
# Name: Cutfill_Ex_02.py
# Description: Calculates the volume and area of cut and
# fill locations.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inBeforeRaster = "elevation01"
inAfterRaster = "elevation02"
zFactor = 0.5
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CutFill
outCutFill = CutFill(inBeforeRaster, inAfterRaster, zFactor)
# Save the output
outCutFill.save("C:/sapyexamples/output/outcutfill02")