最低成本通道 (空间分析)

需要 Spatial Analyst 许可。

摘要

通过选择基于百分比或累积成本应用阈值,来计算两个累积成本距离栅格的总和。

了解有关如何通过通道连接位置的详细信息

使用情况

  • 输入栅格应为从距离累积距离分配工具输出的距离累积和反向栅格。

  • 使用距离累积栅格的成本版本。 栅格的单位可以是但不限于美元每米、优先级每英尺或分钟每米,具体取决于应用程序。 将在成本表面中捕获这些成本单位。 有关其他信息,请参阅使用成本表面调整遇到的距离

  • 廊道是无方向的,这意味着从第一个源到第二个源的行驶成本与从第二个源到第一个源的成本相同。 创建累积成本距离和反向栅格时,不要为任何依赖于方向性的参数指定值,这些参数包括水平系数、垂直系数和行驶方向。

  • 在创建第一个源的累积成本距离和反向栅格以及第二个源的累积成本距离和反向栅格时,对距离累积距离分配工具使用相同的参数设置。

  • 输出廊道上的值表示到达给定位置的累积成本总和,其单位与输入累积成本距离栅格相同。

  • 如果两个距离累积栅格相加时指定的阈值大于最大累积成本,则输出廊道栅格将覆盖与输入累积栅格相同的区域。

  • 如果指定的阈值小于廊道栅格中的最小值,则将返回警告消息,并且输出栅格将为空。

  • 输出廊道栅格可能包含累积成本略高于阈值的像元。 其来自反向栅格,使用比阈值稍高的成本分配的像元将断开连接的像元连接到廊道。 有关更多信息,请参阅使用廊道连接位置

  • 要生成廊道,将忽略像元大小环境设置,并且将使用输入累积成本栅格计算输出栅格。 如果将输出重新采样为不同的分辨率,则输入栅格的模式将被更改。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
输入累积成本距离栅格 1

表示距第一个源的累积成本距离的输入栅格。

使用距离累积距离分配工具中的距离累积输出。

Raster Layer
输入反向栅格 1

来自第一个源的输入反向栅格。 单位是度数,用于标识沿着最小成本路径返回到第一个源的下一个像元。

使用距离累积距离分配工具中的反向输出。 值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。

Raster Layer
输入累积成本距离栅格 2

表示距第二个源的累积成本距离的输入栅格。

使用距离累积距离分配工具中的距离累积输出。

Raster Layer
输入反向栅格 2

来自第二个源的输入反向栅格。 单位是度数,用于标识沿着最小成本路径返回到第二个源的下一个像元。

使用距离累积距离分配工具中的反向输出。 值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。

Raster Layer
阈值方法

指定阈值的定义方式。

  • 无阈值将不应用任何阈值,生成的廊道将覆盖输入栅格的整个范围。 这是默认设置。
  • 最低成本百分比阈值将定义为总和累积成本距离栅格的最小值的百分比。
  • 累积成本阈值将以累积成本距离单位定义。
String
阈值

用于确定给定像元是否包含在输出廊道栅格中的百分比或累积成本阈值。

阈值方法参数设置为最低成本的百分比时,指定值表示从求和的累积成本距离栅格的最小值开始应用的增加百分比。 当阈值方法参数设置为累积成本时,该值表示求和的累积成本等于或低于该值的像元将包含在廊道中。

仅当阈值方法参数设置为最小成本百分比累积成本时,此参数才有效。

Double

返回值

标注说明数据类型
输出栅格

包含值低于累积成本距离单位阈值的像元的输出廊道栅格。

输出栅格为浮点型。

Raster

LeastCostCorridor(in_accumulative_cost_distance_raster1, in_back_direction_raster1, in_accumulative_cost_distance_raster2, in_back_direction_raster2, threshold_method, threshold)
名称说明数据类型
in_accumulative_cost_distance_raster1

表示距第一个源的累积成本距离的输入栅格。

使用距离累积距离分配工具中的距离累积输出。

Raster Layer
in_back_direction_raster1

来自第一个源的输入反向栅格。 单位是度数,用于标识沿着最小成本路径返回到第一个源的下一个像元。

使用距离累积距离分配工具中的反向输出。 值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。

Raster Layer
in_accumulative_cost_distance_raster2

表示距第二个源的累积成本距离的输入栅格。

使用距离累积距离分配工具中的距离累积输出。

Raster Layer
in_back_direction_raster2

来自第二个源的输入反向栅格。 单位是度数,用于标识沿着最小成本路径返回到第二个源的下一个像元。

使用距离累积距离分配工具中的反向输出。 值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。

Raster Layer
threshold_method

指定阈值的定义方式。

  • NO_THRESHOLD将不应用任何阈值,生成的廊道将覆盖输入栅格的整个范围。 这是默认设置。
  • PERCENT_OF_LEAST_COST阈值将定义为总和累积成本距离栅格的最小值的百分比。
  • ACCUMULATIVE_COST阈值将以累积成本距离单位定义。
String
threshold

用于确定给定像元是否包含在输出廊道栅格中的百分比或累积成本阈值。

threshold_method 参数设置为 PERCENT_OF_LEAST_COST 时,指定值表示从求和的累积成本距离栅格的最小值开始应用的增加百分比。 当 threshold_method 参数设置为 ACCUMULATIVE_COST 时,该值表示求和的累积成本等于或低于该值的像元将包含在廊道中。

仅当将 threshold_method 参数设置为 PERCENT_OF_LEAST_COSTACCUMULATIVE_COST 时,才会启用此参数。

Double

返回值

名称说明数据类型
out_raster

包含值低于累积成本距离单位阈值的像元的输出廊道栅格。

输出栅格为浮点型。

Raster

代码示例

Least Cost Corridor 示例 1(Python 窗口)

以下 Python 窗口脚本演示了最低成本通道分析工具的使用方法。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/arcpyexamples/data"
out_LCC_raster = LeastCostCorridor("DistAccumRaster1.tif", "BackDirRaster1.tif",
                                   "DistAccumRaster2.tif", "BackDirRaster2.tif") 
out_LCC_raster.save("c:/arcpyexamples/output/corridor.tif")
Least Cost Corridor 示例 2(独立脚本)

计算两个区域之间的廊道。

# Name: LeastCostCorridor_Ex_02.py
# Description: Calculates a potential wildlife corridor between two known 
#               protected areas.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

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

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

# Set local variables
in_accumulative_cost_distance_raster1 = "distaccum_s1.tif"
in_back_direction_raster1 = "backdir_s1.tif"
in_accumulative_cost_distance_raster2 = "distaccum_s2.tif"
in_back_direction_raster2 = "backdir_s2.tif"
threshold_method = "ACCUMULATIVE_COST" 
threshold = 500

# Run Least Cost Corridor
out_LCC_raster = LeastCostCorridor(
    in_accumulative_cost_distance_raster1, in_back_direction_raster1, 
    in_accumulative_cost_distance_raster2, in_back_direction_raster2, 
    "ACCUMULATIVE_COST", "500")

# Save the output 
out_LCC_raster.save("c:/arcpyexamples/output/corridor.tif")