需要 Spatial Analyst 许可。
摘要
记录输出中每个像元所属的连接区域的标识。每个区域都分配有唯一编号。
插图
用法
扫描的第一个区域接收值为 1,第二个区域接收值为 2,依此类推,直到所有区域均已赋值。扫描将按从左至右、从上至下的顺序进行。分配给输出区域的值取决于扫描过程中系统扫描与区域的相遇时间。
默认情况下,为输出数据增加链接字段(Python 中的 ADD_LINK)选项已启用。这将在输出栅格的属性表中创建名为 LINK 的项,该项会保留输入栅格的每个像元的原始值。
LINK 字段用于跟踪每个新创建的查询或分析区域的来源。
例如,上图所示的输出栅格的属性表如下:
如果不创建 LINK 字段,则将会显著加快处理速度。如果不再需要每个区域的原始值,请取消选中此选项。
如果已在环境中设置掩膜,则输出栅格中已掩膜的那些像元将会接受 NoData。利用掩膜,可改变输出栅格上区域的空间配置和编号。如果某一区域是连续的,但由于强加掩膜而导致连接断开,则在输出栅格上将该区域分为两个具有不同值或分组标识符的区域。
掩膜不仅可通过将一个区域分为两个或更多个单独区域来创建更多区域,而且可减少输出上的区域数。如果掩膜完全覆盖或消除已连接像元的潜在区域,则在输出上这些像元将不会被视为新区域;这些像元会接收 NoData 值。
对区域 (region) 而非区域 (zone) 进行分析时,区域合并特别有用。由于维持输入区域值,在分析中也可使用原始区域分类。
输出时,包含排除的值的像元位置会接收零,因此,这些区域便不会与现有 NoData 像元位置相混淆。由于区域合并的编号从值 1 开始,因此被排除在重新分组操作之外的像元将被视为背景。这些背景像元可被重新分类或处理为任何其他值。使用条件函数工具,可将包含排除的值的位置轻松地转换为 NoData。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
RegionGroup (in_raster, {number_neighbors}, {zone_connectivity}, {add_link}, {excluded_value})
参数 | 说明 | 数据类型 |
in_raster | 将标识唯一连接区域的输入栅格。 必须为整型。 | Raster Layer |
number_neighbors (可选) | 在评估像元间的连接时使用的相邻像元数。
| String |
zone_connectivity (可选) | 定义在进行连通性测试时应考虑的像元值。
| String |
add_link (可选) | 指定是否将链接字段添加到输出的表中。
| Boolean |
excluded_value (可选) | 标识一个值,这样一来,如果像元位置包含该值,则不管将邻近像元数指定为多少(FOUR 或 EIGHT),都不会评估空间连通性。 具有排除的值的像元将被视为 NoData,并被从计算中排除。在输出栅格上,包含排除的值的像元位置将接收 0。 排除的值类似于背景值的概念或在运行一次工具的环境中设置掩膜。如果关键字指定为 CROSS,则必须为此参数指定值。 | Long |
返回值
名称 | 说明 | 数据类型 |
out_raster | 输出区域合并栅格。 输出始终为整型。 | Raster |
代码示例
RegionGroup 示例 1(Python 窗口)
此示例使用八向连接方法为输入栅格的每个区域分配一个唯一编号。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outRgnGrp = RegionGroup("land", "EIGHT", "", "", 5)
outRgnGrp.save("c:/sapyexamples/output/reggrp_ex5")
RegionGroup 示例 2(独立脚本)
此示例使用具有排除的值的八向连接方法为输入栅格的每个区域分配一个唯一编号。
# Name: RegionGroup_Ex_02.py
# Description: Records, for each cell in the output, the
# identity of the connected region to which
# it belongs within the Analysis window. A
# unique number is assigned to each region.
# 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
inRaster = "land"
valToIgnore = 5
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute RegionGroup
outRegionGrp = RegionGroup(inRaster, "EIGHT", "CROSS",
"NO_LINK", valToIgnore)
# Save the output
outRegionGrp.save("C:/sapyexamples/output/reggrpout")
环境
许可信息
- ArcGIS Desktop Basic: 需要 Spatial Analyst
- ArcGIS Desktop Standard: 需要 Spatial Analyst
- ArcGIS Desktop Advanced: 需要 Spatial Analyst