最小成本廊道 (Spatial Analyst)

摘要

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

了解如何使用廊道连接位置

使用情况

  • 输入栅格应该是来自距离累积距离分配工具的距离累积或返回方向栅格输出。

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

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

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

  • 所有输入栅格必须为浮点型,并且必须具有相同的像元大小、范围和空间参考。

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

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

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

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

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

  • 当输出栅格格式为 .crf 时,此工具支持金字塔栅格存储环境。 默认情况下,将在输出中创建金字塔。 对于任何其他输出格式,不支持此环境,并且不会创建金字塔。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 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 窗口脚本演示了如何使用 LeastCostCorridor 函数。

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")

相关主题