标注 | 说明 | 数据类型 |
输入栅格或要素区域 | 将通过最佳廊道连接的输入区域。 区域可以通过栅格或要素数据集来定义。 如果区域输入为栅格,则区域将通过值相同的连续(邻近)像元组进行定义。 每个区域必须具有唯一的编号。 不属于任何区域的像元一定是 NoData。 栅格类型必须为整型,值可正可负。 如果区域输入为要素数据集,则其可以是面、折线或点。 面要素区域不能包含多部分面。 | Raster Layer; Feature Layer |
输出最佳廊道面 | 输出面或线要素类表示连接每个输入区域的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。 每个廊道(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
| Feature Class |
输入栅格和要素障碍 (可选) | 定义障碍的数据集。 可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。 | Raster Layer; Feature Layer |
输入成本栅格 (可选) | 定义以平面测量的经过每个像元所需的阻抗或成本。 每个像元位置上的值表示经过像元时移动每单位距离所需的成本。 每个像元位置值乘以像元分辨率,同时也会补偿对角线移动来获取经过像元的总成本。 成本栅格的值可以是整型或浮点型。 如果成本栅格值为负值或零,则该值无效,但将被视为较小的正成本值。 | Raster Layer |
输出最佳连接线 (可选) | 输出线要素类用于标识连接每个输入区域的最佳线。 在路线通过相同路径的位置,线会重叠。 每条路径(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
| Feature Class |
输出邻近廊道面 (可选) | 该输出面或线要素类用于标识将每个区域与其每个最近邻域连接的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。 每个廊道都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
| Feature Class |
输出邻近连接线 (可选) | 该输出线要素类用于标识从每个区域到其每个最近邻域的最佳线。 每个廊道(或面)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
由于每条路径都是由唯一的线所表示,因此最佳路径相同的位置内会存在多条线。 | Feature Class |
廊道方法 (可选) | 指定廊道的创建方式。
注:在此版本中,仅提供了一种创建廊道的方法:固定宽度。 由于只有一个默认选项,此参数将处于非活动状态,并且不会出现在工具对话框中。 | String |
廊道宽度 (可选) | 用于定义廊道宽度的线性距离。 该值必须大于或等于零。 默认值为零。 | Double |
距离法 (可选) | 指定是否使用平面(平地)或测地线(椭球)方法计算距离。
| String |
需要 Spatial Analyst 许可。
使用情况
输入区域可以是栅格数据或要素数据。
在栅格中,区域是含有相同值且彼此相连(邻近)的一组像元。 输入区域由栅格识别时,如果有任何区域(具有相同值的像元)由多个区域组成,首先请运行区域分组工具作为一项预处理步骤,以便向每个区域分配唯一值。 然后,将生成的栅格用作此工具的输入区域。
如果输入区域由面、线或点数据进行标识,则系统会利用要素 ID 将其转换为栅格,以确保生成的区域具有唯一值。 多部分面无法用于输入。 如果提供了多点数据,该工具会随机选择位置上的其中一个点作为区域值。
您可以通过像元大小环境来控制栅格化输入要素区域的分辨率。 默认情况下,分辨率将会设置为输入成本栅格(如已提供)的分辨率。
当输入区域数据为面要素数据时,如果输出像元大小相对于输入中的详细信息较为粗略,则必须注意输出像元大小的处理方式。 内部栅格化过程将使用与面转栅格工具相同的默认像元分配类型方法,即像元中心。 这意味着,不在像元中心的数据将不会包含在中间栅格化区域中,也不会在距离计算中表示出来。 例如,如果区域是一系列相对于输出像元大小偏小的面(如建筑物轮廓线),则可能只有一部分面会落入输出栅格像元的中心,从而导致分析中会缺少其他大部分面。
为避免出现这种情况,需使用面转栅格工具直接将输入要素栅格化并设置优先级字段值,将生成的输出用作此工具的输入。 或者,选择一个足够小的像元大小以从输入要素中捕获适当量的详细信息。
当区域输入是要素时,ObjectID 字段将用作区域标识符。
由输入栅格或要素障碍参数识别的位置、在输入成本栅格参数值中具有 NoData 的像元位置,或者在环境掩膜范围外的位置都将作为障碍。
分析掩膜环境可以设置为要素或栅格数据集。 如果掩膜为要素,它将被转换为栅格。 具有值的像元定义了位于掩膜区域内的位置。 NoData 像元定义了位于掩膜区域外的位置,并将被视为障碍。
默认处理范围与输入成本栅格参数值(如果提供)的范围相同;否则,该范围将设置为输入区域的范围。
如果成本栅格值为负值或零,则该值无效,但将被视为较小的正值。 累积成本算法是一个相乘的过程,如果成本值为负或零,则无法正确计算累积成本。
如果成本栅格包含这些值,并且这些位置表示要从分析中排除的区域,则在运行工具之前,将这些像元更改为 NoData。 您可以使用设为空工具执行此操作。
NoData 值在此分析中会被视为障碍,因此所有输入为 NoData 的位置在结果中都将为 NoData。
当提供了输入成本栅格参数值时,工具会根据廊道宽度参数的值对该成本表面进行计算。 这样可确保创建指定宽度的最佳廊道,但可能导致位于表面边缘附近的区域与其他结果无法连接。
指定位于输入栅格或要素障碍参数值附近的区域也可能导致廊道之间断开连接。
对于输出邻近廊道面和输出邻近连接线参数,如果未提供成本表面,则将通过欧氏距离来确定相邻要素。 在此情况下,一个区域的最近相邻要素是距离最近的相邻要素。 但是,如果提供了成本表面,可以通过成本距离来识别邻域,此时区域的最近邻域为出行成本最低的邻域。 执行成本分配操作的目的是识别出那些彼此相邻的区域。
输出邻近廊道面参数值是根据可选的邻近连接线输出中生成的路径创建的。 系统会将可选相邻连接线输出中生成的路径转换为图论。 其中区域为折点,路径为边,累积距离或成本为边的权重。 可通过路径的图形表达计算出最小跨度树,以确定两区域间出行所需的最佳连接线网络。 然后,根据最佳连接线网络创建最佳廊道面网络。
输出最佳连接线参数值是由输出可选邻近连接线参数生成的路径的子集。 要计算该子集,需将邻近连接线转换为图论。 其中区域为折点,路径为边,累积距离或成本为边的权重。 可通过路径的图形表达计算出最小跨度树,以确定两区域间出行所需的最佳连接线子集。
每条最佳线均将到达面或多像元区域的外边界。 此工具会从该区域的周边继续处理带有其他线段的路径,允许区域之间设置入口点和出口点,以及在区域内移动。 沿上述线段移动不会产生附加距离或成本。
根据输入区域及其分配相邻要素的配置,路径可以通过中间区域以到达相邻区域。 该路径穿过中间区域时将产生成本。
输出相邻连接线参数值可以用作最小跨度树网络的替代网络。 该输出可将每个区域与其相邻成本区域相连接,并生成具有多条路径的更加复杂的网络。 要素类可以按原样使用,也可以作为创建您自己的网络的基础。 要执行此操作,可以使用按属性选择按钮、地图选项卡上的选择组或按属性选择图层工具,在网络中选择所需的特定路径。 可以根据区域知识和生成的属性表中与路径相关的统计数据来选择路径。
该工具创建的廊道具有固定宽度。 廊道宽度参数用于指定廊道的固定宽度,以线性距离表示。 当廊道宽度参数值为 0 时,输出廊道将为最佳路径线。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
参数
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 | 输出面或线要素类表示连接每个输入区域的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。 每个廊道(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
| Feature Class |
in_barriers (可选) | 定义障碍的数据集。 可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。 | Raster Layer; Feature Layer |
in_cost_raster (可选) | 定义以平面测量的经过每个像元所需的阻抗或成本。 每个像元位置上的值表示经过像元时移动每单位距离所需的成本。 每个像元位置值乘以像元分辨率,同时也会补偿对角线移动来获取经过像元的总成本。 成本栅格的值可以是整型或浮点型。 如果成本栅格值为负值或零,则该值无效,但将被视为较小的正成本值。 | Raster Layer |
out_optimal_lines (可选) | 输出线要素类用于标识连接每个输入区域的最佳线。 在路线通过相同路径的位置,线会重叠。 每条路径(或线)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
| Feature Class |
out_neighbor_polygons (可选) | 该输出面或线要素类用于标识将每个区域与其每个最近邻域连接的最佳廊道。 在廊道通过相同路径的位置,廊道(或线)会重叠。 每个廊道都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
| Feature Class |
out_neighbor_lines (可选) | 该输出线要素类用于标识从每个区域到其每个最近邻域的最佳线。 每个廊道(或面)都是唯一标识的,同时属性表中的其他字段用于存储有关路径的特定信息。 这些其他字段包括:
由于每条路径都是由唯一的线所表示,因此最佳路径相同的位置内会存在多条线。 | Feature Class |
corridor_method (可选) | 指定廊道的创建方式。 注:在此版本中,仅提供了一种创建廊道的方法:固定宽度。 由于只有一个默认选项,此参数将处于非活动状态,并且不会出现在工具对话框中。
| String |
corridor_width (可选) | 用于定义廊道宽度的线性距离。 该值必须大于或等于零。 默认值为零。 | Double |
distance_method (可选) | 指定是否使用平面(平地)或测地线(椭球)方法计算距离。
| String |
代码示例
以下 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")
计算已知栖息地之间的最佳野生动物廊道网络。
# 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)
环境
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst