最佳区域连接 (空间分析)

摘要

在两个或多个输入区域之间计算最佳连通性网络。

了解有关区域之间的最佳连接网络的详细信息

使用情况

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

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

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

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

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

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

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

  • 如果输入区域是栅格并且行 ID 的范围非常大(即使只有几个区域),则最佳区域连接工具的性能可能会受到负面影响。

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

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

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

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

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

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

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

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

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

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

  • 针对最小跨度树或可选相邻连接生成的网络可以转换为 Network Analyst 网络,以执行附加网络分析。

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

参数

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

要通过最佳网络连接的输入区域。

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

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

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

Raster Layer; Feature Layer
输出最佳连通性线

最佳路径网络的输出面要素类用于连接每个输入区域。

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

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

该信息有助于您深入分析网络内的路径。

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

Feature Class
输入障碍栅格或要素数据
(可选)

定义障碍的数据集。

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

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

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

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

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

Raster Layer
相邻连接的输出要素类
(可选)

该输出面要素类用于标识从每个区域到其每个最近或成本最低邻域的所有路径。

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

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

该信息有助于深入分析网络内的路径,而且对于决定应该移除哪条路径非常有用(如有必要)。

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

Feature Class
距离法
(可选)

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

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

指定路径是否将继续并在输入区域内连接。

  • 生成连接路径将在输入区域内继续以连接进入区域的所有路径。
  • 无连接路径将在输入区域的边缘停止,并且不会在输入区域内继续或连接。
String

OptimalRegionConnections(in_regions, out_feature_class, {in_barrier_data}, {in_cost_raster}, {out_neighbor_paths}, {distance_method}, {connections_within_regions})
名称说明数据类型
in_regions

要通过最佳网络连接的输入区域。

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

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

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

Raster Layer; Feature Layer
out_feature_class

最佳路径网络的输出面要素类用于连接每个输入区域。

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

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

该信息有助于您深入分析网络内的路径。

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

Feature Class
in_barrier_data
(可选)

定义障碍的数据集。

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

Raster Layer; Feature Layer
in_cost_raster
(可选)

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

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

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

Raster Layer
out_neighbor_paths
(可选)

该输出面要素类用于标识从每个区域到其每个最近或成本最低邻域的所有路径。

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

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

该信息有助于深入分析网络内的路径,而且对于决定应该移除哪条路径非常有用(如有必要)。

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

Feature Class
distance_method
(可选)

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

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

指定路径是否将继续并在输入区域内连接。

  • GENERATE_CONNECTIONS路径将在输入区域内继续以连接进入区域的所有路径。
  • NO_CONNECTIONS路径将在输入区域的边缘停止,并且不会在输入区域内继续或连接。
String

代码示例

OptimalRegionConnections 示例 1(Python 窗口)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outOptRegConnect = OptimalRegionConnections("source.shp", "elevation")
outOptRegConnect.save("C:/sapyexamples/output/optregconnect.tif")
OptimalRegionConnections 示例 2(独立脚本)

生成用于连接各个输入区域的路径的最低成本优化网络。

# Name: OptimalRegionConnections_Ex_02.py
# Description: Calculates for each cell the optimum region connections.
#
# 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.tif"

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

# Execute the tool
outOptRegConnect = OptimalRegionConnections(inSourceData, inCostRaster)

# Save the output 
outOptRegConnect.save.save("C:/sapyexamples/output/optregconnect.tif")