描述
测量同一研究区的两个区域化之间的空间关联程度,其中每个区域化由一组称为区域的类别组成。区域化之间的关联取决于每个区域化的区域之间的区域重叠。当一个区域化的每个区域与另一个区域化的区域紧密对应时,关联程度最高。同样,如果一个区域化的区域与另一个区域化的许多不同区域存在较大程度的重叠,则空间关联性最低。该工具的主要输出是分类变量之间的空间关联的全局度量:范围介于 0(无对应)到 1(区域在空间上完全对齐)的单个数字。(可选)可以为任一区域化的特定区域或区域化之间的特定区域组合计算和可视化此全局关联。
例如,可以使用此工具比较两组分类区域(例如农业区的农作物类型和土壤排水分类),以测量特定农作物与特定分类的土壤排水的对应程度。但是,也可以使用此工具来测量同一分类区域随时间的变化程度。例如,可以将 1990 年以来的气候带与 2020 年以后的气候带进行比较,以测量气候带在过去 30 年间的变化程度。使用可选输出,可确定每个气候带的变化方式,例如干旱气候带是否扩展到以前是半干旱的区域。
插图
使用方法
第一个区域化的区域称为输入区域,第二个区域化的区域称为叠加区域。可以将每组区域作为面要素或栅格提供,同时提供一个字段,用于指示每个面要素或栅格像元的类别。分类区域字段的值相同的所有要素或像元视为位于同一区域中。
默认情况下,该工具的输出为三个数字,每个数字用于衡量不同类型的全局关联。这些值将显示在地理处理消息中,并作为派生输出返回。这些派生输出可在 Python 脚本中作为变量引用(如下面的第二个代码示例所示),或用作 模型构建器 中其他工具的输入。三个关联度量如下:
- 全局关联度量 - 输入区域和叠加区域之间的整体关联度量。值范围介于 0(无关联)到 1(完全对应)之间。该值不取决于两个区域中哪个是输入区域,哪个是叠加区域(输入区域和叠加区域反转时,该值不会发生变化)。统计数据由以下两个全局关联度量的调和平均值确定。
- 输入区域内叠加区域的全局对应 - 每个输入区域中叠加类别的一致性度量,范围介于 0 到 1 之间。值 1 表示每个输入区域仅包含一个叠加区域(区域完全对应)。接近 0 的值表示输入区域均分为叠加区域的多个类别(与单个叠加区域的对应度较低)。
- 叠加区域内输入区域的全局对应 - 每个输入区域内叠加类别的一致性度量。该值与另一个全局对应值类型,但是它用于衡量叠加区域内输入区域的差异。输入区域和叠加区域反转时,这两个度量会交换值。
全局对应度量可以在空间上划分为输入区域和叠加区域的每个交集。所有这些交集用于衡量输入区域和叠加区域的特定组合的对应程度,例如单个农作物类型和单个土壤排水分类。这些特定组合可以使用输出要素参数或输出栅格参数进行创建,具体取决于区域是面要素还是栅格。所有这些输出都带有两个图表。第一张图表显示了每个输入区域内叠加区域的区域重叠并排条形图。第二张图表以类似的方式显示了每个叠加区域内输入区域的区域重叠条形图。可利用这两张图表,研究特定区域是否与其他区域化的单个区域紧密对应,例如玉米与排水良好的土壤之间的对应程度。
如果输入区域和叠加区域是面,也可以分别使用输入区域内叠加区域的全局对应和叠加区域内输入区域的对应参数将这些交集聚合到每个输入区域或叠加区域中。对于栅格,这些聚合将作为输出栅格的字段进行存储。可通过这些输出同时衡量一个特定输入区域或叠加区域与另一区域化的所有区域的整体对应程度。这样可以识别与其他区域化的整体对应程度高或低的特定区域。可通过查看区域的所有单独交集来进一步研究这些区域,以确定哪些区域组合正在推动整体对应程度增加或降低。
与全局关联和对应度量不同,局部对应度量的值越小,表示对应程度越高。最小值 0 表示完全对应,局部度量没有上限,但是几乎不会超过 2。
输入区域和叠加区域必须相交才能计算关联度量。不会在计算中包含没有与其他区域化的至少一个区域相交的某个区域化的所有区域。
有关详细信息和数学细节,请参阅以下参考文献:
- Nowosad, J., Stepinski, T. F. (2018). “Spatial association between regionalizations using the information-theoretical V-measure." International Journal of Geographical Information Science. https://doi.org/10.1080/13658816.2018.1511794
语法
arcpy.stats.SpatialAssociationBetweenZones(input_feature_or_raster, categorical_zone_field, overlay_feature_or_raster, categorical_overlay_zone_field, {output_features}, {output_raster}, {correspondence_overlay_to_input}, {correspondence_input_to_overlay})
参数 | 说明 | 数据类型 |
input_feature_or_raster | 表示第一个区域化的区域的数据集。可以使用面要素或栅格来定义区域。 | Feature Layer; Raster Layer; Image Service |
categorical_zone_field | 表示输入区域的区域类别的字段。该字段的每个唯一值定义一个单独区域。对于要素,该字段必须为整型或文本字段。对于栅格,VALUE 同样受支持。 | Field |
overlay_feature_or_raster | 表示第二个区域化的区域的数据集。区域可以是面要素或栅格。 | Feature Layer; Raster Layer; Image Service |
categorical_overlay_zone_field | 表示叠加区域的区域类别的字段。该字段的每个唯一值定义一个单独区域。对于要素,该字段必须为整型或文本字段。对于栅格,VALUE 同样受支持。 | Field |
output_features (可选) | 包含输入区域和叠加区域的所有交集的空间关联度量的输出面要素。 可使用输出要素衡量输入区域和叠加区域的特定组合之间的关联,例如玉米生产区域(农作物类型)与排水良好的土壤区域(土壤排水分类)之间的关联。仅当输入区域和叠加区域均为面要素时,此参数才会启用。 | Feature Class |
output_raster (可选) | 包含输入区域和叠加区域之间的空间关联度量的输出栅格。 输出栅格将具有三个字段,用于指示输入区域和叠加区域的交集的空间关联度量、输入区域内叠加区域的对应程度以及叠加区域内输入区域的对应程度。仅当输入区域和叠加区域中至少有一个是栅格时,此参数才会启用。 | Raster Dataset |
correspondence_overlay_to_input (可选) | 包含输入区域内叠加区域的对应度量的输出面要素。 此输出将具有与输入区域相同的几何,并且可用于识别哪些输入区域整体上与叠加区域紧密对应。然后可以使用输出要素来研究特定区域组合。仅当输入区域和叠加区域均为面要素时,此参数才会启用。 | Feature Class |
correspondence_input_to_overlay (可选) | 包含叠加区域内输入区域的对应度量的输出面要素。 此输出将具有与叠加区域相同的几何,并且可用于识别哪些叠加区域整体上与输入区域紧密对应。然后可以使用输出要素来研究特定区域组合。仅当输入区域和叠加区域均为面要素时,此参数才会启用。 | Feature Class |
派生输出
名称 | 说明 | 数据类型 |
global_measure_of_spatial_association | 输入区域和叠加区域之间的全局关联度量。值范围介于 0(无关联)到 1(完全关联)之间。 | 双精度 |
global_correspondence_overlay_to_input | 输入区域内叠加区域的全局对应度量。该值不能为负,值越接近零,表示对应程度越高(差异越小)。 | 双精度 |
global_correspondence_input_to_overlay | 叠加区域内输入区域的全局对应度量。该值不能为负,值越接近零,表示对应程度越高(差异越小)。 | 双精度 |
代码示例
以下 Python 窗口脚本演示了如何使用 SpatialAssociationBetweenZones 工具。
import arcpy
arcpy.stats.SpatialAssociationBetweenZones("forest_type", "Class_Name",
"soil_drainage", "ClassName", None,
"forest_soil", None, None)
以下独立 Python 脚本演示了如何使用 SpatialAssociationBetweenZones 工具。
# Calculate the association between forest type and soil drainage class rasters.
import arcpy
# Set the current workspace
arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.env.overwriteOutput = True
# Determine the association.
result = arcpy.stats.SpatialAssociationBetweenZones("forest_type", "Class_Name",
"soil_drainage", "ClassName", None, "forest_soil")
# Print the derived output for the Global Measure of Spatial Association.
globalV = result[4]
if globalV > 0.9:
print('Forest type and soil drainage class are highly associated.')
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是