成本距离 (空间分析)

许可等级:BasicStandardAdvanced

摘要

计算每个单元到成本面上最近源的最小累积成本距离。

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

插图

Cost Distance illustration
Cost_Dist = CostDistance(Source_Ras, Cost_Ras)

用法

语法

CostDistance (in_source_data, in_cost_raster, {maximum_distance}, {out_backlink_raster})
参数说明数据类型
in_source_data

输入源位置。

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

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

Raster Layer | Feature Layer
in_cost_raster

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

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

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

Raster Layer
maximum_distance
(可选)

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

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

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

Double
out_backlink_raster
(可选)

输出成本回溯链接栅格。

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

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

回溯链接位置
Raster Dataset

返回值

名称说明数据类型
out_distance_raster

输出成本距离栅格。

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

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

输出栅格为浮点型。

Raster

代码实例

CostDistance 示例 1(Python 窗口)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCostDist = CostDistance("source.shp", "elevation", 200000, "backlink")
outCostDist.save("C:/sapyexamples/output/costdist")
CostDistance 示例 2(独立脚本)

计算点 shapefile 的源位置中的最小累积成本距离栅格。

# Name: CostDistance_Ex_02.py
# Description: Calculates for each cell the least accumulative cost distance
#    to the nearest source 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
inSourceData = "source.shp"
inCostRaster = "elevation"
maxDistance = 20000000   
outBkLinkRaster = "C:/sapyexamples/output/outbklink"

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

# Execute CostDistance
outCostDistance = CostDistance(inSourceData, inCostRaster, maxDistance, outBkLinkRaster)

# Save the output 
outCostDistance.save("C:/sapyexamples/output/outcostdist")

环境

相关主题

许可信息

ArcGIS for Desktop Basic:需要 Spatial Analyst
ArcGIS for Desktop Standard:需要 Spatial Analyst
ArcGIS for Desktop Advanced:需要 Spatial Analyst
9/15/2013