最佳廊道连接 (空间分析)

摘要

在两个或多个输入区域之间计算最佳廊道连接。

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

使用情况

  • 输入区域可以是栅格数据或要素数据。

  • 在栅格中,区域是含有相同值且彼此相连(邻近)的像元组。 输入区域由栅格识别时,如果有任何区域(具有相同值的像元)由多个区域组成,首先请运行区域分组工具作为一项预处理步骤,以便向每个区域分配唯一值。 然后,将生成的栅格用作此工具的输入区域。

  • 如果输入区域由面、线或点数据进行标识,则系统会利用要素 ID 将其转换为栅格,以确保生成的区域具有唯一值。 多部件面无法用作输入。 如果提供了多点数据,该工具会随机选择位置上的其中一个点作为区域值。

    您可以通过像元大小环境来控制栅格化输入要素区域的分辨率。 默认情况下,分辨率将设置为输入成本栅格(如果提供)的分辨率。

  • 当输入区域数据为面要素数据时,如果输出像元大小相对于输入中的详细信息较为粗略,则必须注意输出像元大小的处理方式。 内部栅格化过程将使用与面转栅格工具相同的默认像元分配类型方法,即像元中心。 这意味着,不在像元中心的数据将不会包含在中间栅格化区域中,因此也不会在距离计算中表示出来。 例如,如果区域是一系列相对于输出像元大小偏小的面(如建筑物轮廓线),则可能只有一部分面会落入输出栅格像元的中心,从而导致分析中会缺少其他大部分面。

    为避免出现这种情况,需使用面转栅格工具直接将输入要素栅格化并设置优先级字段值,将生成的输出用作此工具的输入。 或者,选择一个足够小的像元大小以从输入要素中捕获适当量的详细信息。

  • 当区域输入是要素时,ObjectID 字段将用作区域标识符。

  • 输入栅格或要素障碍参数识别的位置、在输入成本栅格参数值中具有 NoData 的像元位置,或者在环境掩膜范围外的位置都将作为障碍。

  • 分析掩膜环境可以设置为要素或栅格数据集。 如果掩膜为要素,它将被转换为栅格。 具有值的像元定义了位于掩膜区域内的位置。 NoData 像元定义了位于掩膜区域外的位置,并将被视为障碍

  • 默认处理范围与输入成本栅格参数值(如果提供)的范围相同;否则,该范围将设置为输入区域的范围。

  • 由于算法为乘法过程,输入成本栅格参数值不能包含零。 如果成本栅格包含零值,并且这些值表示成本最低的区域,则在运行此工具之前,将零值更改为较小的正值(例如 0.01)。

    您可以使用条件函数工具将零像元更改为其他值。 如果零值表示应从分析中排除的区域,请先通过运行设置空函数工具将这些值转换为 NoData。

  • 当提供了输入成本栅格参数值时,工具会根据廊道宽度参数的值对该成本表面进行计算。 这样可确保创建指定宽度的最佳廊道,但可能导致位于表面边缘附近的区域与其他结果无法连接。

    指定位于输入栅格或要素障碍参数值附近的区域也可能导致廊道之间断开连接。

  • 对于输出邻近廊道面输出邻近连接线参数,如果未提供成本表面,则将通过欧氏距离来确定相邻要素。 此时,区域的最近邻域为在距离上最近的邻域。 但是,如果提供了成本表面,可以通过成本距离来识别邻域,此时区域的最近邻域为出行成本最低的邻域。 执行成本分配操作的目的是识别出那些彼此相邻的区域。

  • 输出邻近廊道面参数值是根据可选的邻近连接线输出中生成的路径创建的。 系统会将可选相邻连接线输出中生成的路径转换为图论。 其中区域为折点,路径为边,累积距离或成本为边的权重。 可通过路径的图形表达计算出最小跨度树,以确定两区域间出行所需的最佳连接线网络。 然后,根据最佳连接线网络创建最佳廊道面网络。

  • 输出最佳连接线参数值是由输出可选邻近连接线参数生成的路径的子集。 要计算该子集,需将邻近连接线转换为图论。 其中区域为折点,路径为边,累积距离或成本为边的权重。 可通过路径的图形表达计算出最小跨度树,以确定两区域间出行所需的最佳连接线子集。

  • 每条最佳线均将到达面或多像元区域的外边界。 然后,此工具会从该区域的周边继续处理带有其他线段的路径,允许区域之间设置入口点和出口点,以及在区域内移动。 沿上述线段移动不会产生附加距离或成本。

  • 根据输入区域及其分配邻域的配置,路径可能经由中间区域到达相邻区域。 该路径在通过该中间区域时会产生成本。

  • 输出相邻连接线参数值可以用作最小跨度树网络的替代网络。 该输出可将每个区域与其相邻成本区域相连接,从而生成具有多条路径的更加复杂的网络。 要素类可以按原样使用,也可以作为创建您自己的网络的基础。 要执行此操作,可以使用按属性选择按钮、地图选项卡上的选择组或按属性选择图层工具,在网络中选择所需的特定路径。 可以根据区域知识和生成的属性表中与路径相关的统计数据来选择路径。

  • 该工具创建的廊道具有固定宽度。 廊道宽度参数用于指定廊道的固定宽度,以线性距离表示。 当廊道宽度参数值为 0 时,输出廊道将为最佳路径线。

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

参数

标注说明数据类型
输入栅格或要素区域

将通过最佳廊道连接的输入区域。

区域可以通过栅格或要素数据集来定义。

如果区域输入为栅格,则区域将通过值相同的连续(邻近)像元组进行定义。 每个区域必须具有唯一的编号。 不属于任何区域的像元一定是 NoData。 栅格类型必须为整型,值可正可负。

如果区域输入为要素数据集,则它可以是面、折线或点。 面要素区域不能包含多部分面。

Raster Layer; Feature Layer
输出最佳廊道面

输出面或线要素类表示连接每个输入区域的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。

每个廊道(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • CORR_ID - 廊道的唯一标识符。
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域
Feature Class
输入栅格和要素障碍
(可选)

定义障碍的数据集。

可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。

Raster Layer; Feature Layer
输入成本栅格
(可选)

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

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

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

Raster Layer
输出最佳连接线
(可选)

输出线要素类用于标识连接每个输入区域的最佳线。 在路线通过相同路径的位置,线会重叠。

每条路径(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • PATHID- 路径的唯一标识符
  • PATHCOST- 路径的总累积距离或成本
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域

Feature Class
输出邻近廊道面
(可选)

该输出面或线要素类用于标识将每个区域与其每个最近邻域连接的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。

每个廊道都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • CORRIDORID - 廊道的唯一标识符。
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域

Feature Class
输出邻近连接线
(可选)

该输出线要素类用于标识从每个区域到其每个最近邻域的最佳线。

每个廊道(或面)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • PATHID- 路径的唯一标识符
  • PATHCOST- 路径的总累积距离或成本
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域

由于每条路径都是由唯一的线所表示,因此最佳路径相同的位置内会存在多条线。

Feature Class
廊道方法
(可选)

指定廊道的创建方式。

  • 固定宽度廊道廊道将具有固定的宽度,并且基于该宽度创建最佳廊道和路径。 这是默认设置。
注:

在此版本中,仅提供了一种创建廊道的方法:固定宽度。 由于只有一个默认选项,此参数将处于非活动状态,并且不会出现在工具对话框中。

String
廊道宽度
(可选)

用于定义廊道宽度的线性距离。 该值必须大于或等于零。 默认值为零。

Double
距离法
(可选)

指定是否使用平面(平地)或测地线(椭球)方法计算距离。

  • 平面将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • 测地线距离计算将在椭圆体上执行。 无论输入或输出投影,结果均不会改变。
String

OptimalCorridorConnections(in_regions, out_optimal_polygons, {in_barriers}, {in_cost_raster}, {out_optimal_lines}, {out_neighbor_polygons}, {out_neighbor_lines}, {corridor_method}, {corridor_width}, {distance_method})
名称说明数据类型
in_regions

将通过最佳廊道连接的输入区域。

区域可以通过栅格或要素数据集来定义。

如果区域输入为栅格,则区域将通过值相同的连续(邻近)像元组进行定义。 每个区域必须具有唯一的编号。 不属于任何区域的像元一定是 NoData。 栅格类型必须为整型,值可正可负。

如果区域输入为要素数据集,则它可以是面、折线或点。 面要素区域不能包含多部分面。

Raster Layer; Feature Layer
out_optimal_polygons

输出面或线要素类表示连接每个输入区域的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。

每个廊道(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • CORR_ID - 廊道的唯一标识符。
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域
Feature Class
in_barriers
(可选)

定义障碍的数据集。

可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。

Raster Layer; Feature Layer
in_cost_raster
(可选)

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

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

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

Raster Layer
out_optimal_lines
(可选)

输出线要素类用于标识连接每个输入区域的最佳线。 在路线通过相同路径的位置,线会重叠。

每条路径(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • PATHID- 路径的唯一标识符
  • PATHCOST- 路径的总累积距离或成本
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域

Feature Class
out_neighbor_polygons
(可选)

该输出面或线要素类用于标识将每个区域与其每个最近邻域连接的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。

每个廊道都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • CORRIDORID - 廊道的唯一标识符。
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域

Feature Class
out_neighbor_lines
(可选)

该输出线要素类用于标识从每个区域到其每个最近邻域的最佳线。

每个廊道(或面)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些附加字段如下:

  • PATHID- 路径的唯一标识符
  • PATHCOST- 路径的总累积距离或成本
  • REGION1- 该路径连接的第一个区域
  • REGION2- 该路径连接的另一个区域

由于每条路径都是由唯一的线所表示,因此最佳路径相同的位置内会存在多条线。

Feature Class
corridor_method
(可选)

指定廊道的创建方式。

注:

在此版本中,仅提供了一种创建廊道的方法:固定宽度。 由于只有一个默认选项,此参数将处于非活动状态,并且不会出现在工具对话框中。

  • FIXED_WIDTH_CORRIDOR廊道将具有固定的宽度,并且基于该宽度创建最佳廊道和路径。 这是默认设置。
String
corridor_width
(可选)

用于定义廊道宽度的线性距离。 该值必须大于或等于零。 默认值为零。

Double
distance_method
(可选)

指定是否使用平面(平地)或测地线(椭球)方法计算距离。

  • PLANAR将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • GEODESIC距离计算将在椭圆体上执行。 无论输入或输出投影,结果均不会改变。
String

代码示例

OptimalCorridorConnections 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 OptimalCorridorConnections 函数。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/arcpyexamples/data"
out_OCC_raster = OptimalCorridorConnections("InRegions.tif", 
    "OutCorridors.shp", "InBarriers.tif", "InCostRaster.tif", 
    "OutOptimalPaths.shp", "OutNbrPoly.shp", "OutNbrLines.shp", 
    "FIXED_WIDTH_CORRIDOR", 5000, "PLANAR")
OptimalCorridorConnections 示例 2(独立脚本)

计算已知栖息地之间的最佳野生动物廊道网络。

# Name: OptimalCorridorConnections_standalone.py
# Description: Calculates corridor.
# 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
regions = "Lakes.tif"
outCorridors = "NewCorridors.shp"
roadBarriers = "Roads.shp"
costSurface = "CostSurface.tif"
optimalLines = "OutCorridorCenterLines.shp"
outAllCorridors = "OutAllCorridors.shp"
outAllLines = "OutAllCenterLines.shp"
corridorMethod = "FIXED_WIDTH_CORRIDOR"
corridorWidth = 5000
distanceMethod = "GEODESIC"

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

# Execute  OptimalCorridorConnections

OptimalCorridorConnections(regions, outCorridors, roadBarriers,
                           costSurface, optimalLines,
                           outAllCorridors, outAllLines,
                           corridorMethod, corridorWidth, distanceMethod)