成本分配 (空间分析)

摘要

根据成本面上的最小累积成本计算每个像元的最近源。

了解有关成本距离工具的工作原理的详细信息

插图

Cost Allocation illustration
Cost_Alloc = CostAllocation(Source_Ras, Cost_Ras)

用法

语法

CostAllocation (in_source_data, in_cost_raster, {maximum_distance}, {in_value_raster}, {source_field}, {out_distance_raster}, {out_backlink_raster})
参数说明数据类型
in_source_data

输入源位置。

此为栅格或要素数据集,用于标识计算每个输出像元位置的最小积累成本距离所依据的像元或位置。

对于栅格,输入类型可以为整型或浮点型。

如果输入源栅格是浮点型,则必须设置整型的 {in_value_raster}。此类赋值栅格优先于 {source_field} 中的任何设置。

Raster Layer | Feature Layer
in_cost_raster

定义以平面测量的经过每个像元所需的阻抗或成本。

每个像元位置上的值表示经过像元时移动每单位距离所需的成本。每个像元位置值乘以像元分辨率,同时也会补偿对角线移动来获取经过像元的总成本。

成本栅格的值可以是整型或浮点型,但不可以为负值或零(不存在负成本或零成本)。

Raster Layer
maximum_distance
(可选)

定义累积成本值不能超过的阈值。

如果累积的成本距离值超过该值,则像元位置的输出值为 NoData。最大距离定义计算累积成本距离适用的范围。

默认距离是到输出栅格边的距离。

Double
in_value_raster
(可选)

标识应该用于每个输入源位置的区域值的输入整型栅格。

对于每个源位置(像元或要素),由 {in_value_raster} 定义的值将被分配至所有分配到供计算使用的源位置的像元。此类赋值栅格优先于 {source_field} 中的任何设置。

Raster Layer
source_field
(可选)

用于向源位置分配值的字段。该字段必须为整型。

如果已设置 {in_value_raster},则该输入中的值优先于 {source_field} 中的任何设置。

Field
out_distance_raster
(可选)

输出成本距离栅格。

此成本距离栅格用于标识每个像元到标识的源位置在成本表面上的最小累积成本距离。

源可以是一个像元、一组像元或者一个或更多要素位置。

输出栅格为浮点型。

Raster Dataset
out_backlink_raster
(可选)

输出成本回溯链接栅格。

回溯链接栅格包含从 0 到 8 的值,这些值用于定义方向或从某像元开始沿最小累积成本路径标识下一个邻近像元(接续像元),以达到最小成本源。

如果该路径穿过右侧的相邻像元,则为像元分配值 1、2 来与右下角像元相对应,并按顺时针方向依此类推。值 0 留供源像元使用。

回溯链接位置
Raster Dataset

返回值

名称说明数据类型
out_allocation_raster

输出成本分配栅格。

该栅格可识别花费最小累积成本便可到达的每个源位置(像元或要素)的区域。

输出栅格为整型

Raster

代码示例

CostAllocation 示例 1(Python 窗口)

以下 Python 窗口脚本演示了成本分配工具的使用方法。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
out = ()
costAllocOut = CostAllocation("observers.shp", "costraster", 25000,"elevation",
                               "FID", "c:/sapyexamples/output/distout", 
                               "c:/sapyexamples/output/backlinkout")
costAllocOut.save("c:/sapyexamples/output/costalloc")
CostAllocation 示例 2(独立脚本)

该脚本使用成本栅格、源点的要素图层以及若干可选参数,来计算含有最近源的值的像元的栅格。

# Name: CostAllocation_Ex_02.py
# Description: Calculates for each cell its nearest source 
#              based on the least accumulative cost over a 
#              cost surface.
# 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
inFeature = "observers.shp"
costRaster = "costraster"
maxDist = 25000
valRaster = "elevation"
featField = "FID"
outDistanceRaster = "c:/sapyexamples/output/distout"
outBacklink = "c:/sapyexamples/output/backlinkout"

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

# Execute CostAllocation
costAllocOut = CostAllocation(inFeature, costRaster, maxDist,
                              valRaster, featField, outDistanceRaster,
                              outBacklink)

# Save the output 
costAllocOut.save("c:/sapyexamples/output/costalloc01")

环境

相关主题

许可信息

ArcView: 需要 Spatial Analyst
ArcEditor: 需要 Spatial Analyst
ArcInfo: 需要 Spatial Analyst

7/10/2012