『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS教程:分区统计

ArcGIS教程:分区统计


计算另一个数据集的区域内栅格数据值的统计信息。

摘要

    计算另一个数据集的区域内栅格数据值的统计信息。

插图


用法

·      区域定义为输入中具有相同值的所有区。各区无需相连。栅格和要素数据集都可用于区域输入。

·      如果区域输入和值输入均为具有相同分辨率的栅格,则可直接使用它们。

如果分辨率不同,则可先应用内部重采样以使其相一致,然后再执行区域操作。

倘若输入中存在任何 NoData 像元,重采样就可能在输出中产生比您预期更大的 NoData 区域。要避免此种情况,或者重新采样粗糙输入栅格,提高输入栅格的分辨率,或者在栅格分析环境下将像元大小设置为输入的最小值

·      如果区域输入为栅格数据集,则该输入必须具有属性表。通常会自动为整型栅格数据创建属性表,但是某些情况下可能不会这样做。您可以使用构建栅格属性表来创建一个属性表。

·      如果区域输入是要素数据集,则可在内部对其应用矢量至栅格转换。要确保转换结果与值栅格完全对齐,建议您检查环境设置和栅格设置中的范围和捕捉栅格是否设置正确。

由于内部栅格必须具有属性表,因此在转换中不创建属性表的情况下将会发生错误。如果发生此错误,则使用要素转栅格面转栅格点转栅格折线转栅格直接转换要素数据集。按先前提示中所述内容为其生成属性表,然后使用生成的栅格作为区域输入。

·      如果区域输入为要素相对较小的要素数据集,则需要牢记,信息的分辨率需要适合于值栅格的分辨率。如果单个要素的区域相似于或小于值栅格中单个像元的区域,则在要素转栅格转换过程中,某些区域可能不会显示。

要对此进行显示,需尝试使用适当的要素转栅格转换工具将要素数据集转换为栅格,然后将分辨率指定为值栅格的分辨率。通过此转换产生的结果会指明区域操作的默认输出将是什么。

如果输出中的结果比您可能已预期的少,则需要确定表示要素输入细节的适当的栅格分辨率,然后使用此分辨率作为栅格分析环境设置像元大小

·      如果区域输入为点要素数据集,则其可能具有值输入栅格的任何特定像元内所含的多个点。对于这种像元,区域值将通过具有最高要素 ID 的点来确定。

·      如果区域要素输入具有叠置的面,则无法为每一个单独的面执行区域分析。因为要素输入已转换为栅格,所以每个位置只能拥有一个值。

另一种方法就是要为每个面区域反复进行分区统计并核对结果。

·      建议您仅使用栅格作为区域输入,因为这可使您更好地控制矢量至栅格转换。这将有助于确保您始终获得预期的结果。

·      在指定输入区域数据时,默认区域字段将为第一个可用的有效字段。如果无其他有效字段存在,则 ObjectID 字段(如 OID FID)将为默认字段。

·      如果为区域字段选择保留字段(例如,OBECTIDFID OID),则这可能导致结果中存在一些不明确现象。结果包括特定输出格式类型以及指定区域字段所必需的特定保留字段名称。如果对于特定输出格式,指定字段具有与保留字段相同的名称,则在输出中以结果中所有字段名均唯一的方式更改区域字段的名称。

·      输入值栅格可以为整型,也可以为浮点型。但是,当它是浮点型时,无法对众数、中值、少数和变异性执行分区计算。

·      对于众数和少数计算,当存在平局时,区域的输出将基于平局值的最低值。

  •        输出的数据类型取决于所执行的分区计算以及输入值栅格类型。

语法

    ZonalStatistics (in_zone_data, zone_field, in_value_raster, {statistics_type}, {ignore_nodata})

参数

说明

数据类型

in_zone_data

定义区域的数据集。

可通过整型栅格或要素图层来定义区域。

Raster Layer | Feature Layer

zone_field

保存定义每个区域的值的字段。

该字段可以是区域数据集的整型字段或字符串型字段。

Field

in_value_raster

含有要计算统计数据的值的栅格。

Raster Layer

statistics_type

(可选)

要计算的统计类型。

·         MEAN — 计算值栅格中与输出像元同属一个区域的所有像元的平均值。

·         MAJORITY — 确定值栅格中与输出像元同属一个区域的所有像元中最常出现的值。

·         MAXIMUM — 确定值栅格中与输出像元同属一个区域的所有像元的最大值。

·         MEDIAN — 确定值栅格中与输出像元同属一个区域的所有像元的中值。

·         MINIMUM — 确定值栅格中与输出像元同属一个区域的所有像元的最小值。

·         MINORITY — 确定值栅格中与输出像元同属一个区域的所有像元中出现次数最少的值。

·         RANGE — 计算值栅格中与输出像元同属一个区域的所有像元的最大值与最小值之差。

·         STD — 计算值栅格中与输出像元同属一个区域的所有像元的标准差。

·         SUM — 计算值栅格中与输出像元同属一个区域的所有像元的值的总和。

·         VARIETY — 计算值栅格中与输出像元同属一个区域的所有像元中唯一值的数目。

String

ignore_nodata

(可选)

指示值输入中的 NoData 值是否会影响其所落入区域的结果。

·         DATA — 在任意特定区域内,仅使用在输入值栅格中拥有值的像元来确定该区域的输出值。在统计计算过程中,值栅格内的 NoData 像元将被忽略。

·         NODATA — 在任意特定区域内,如果值栅格中存在任何 NoData 像元,则会视作对该区域中所有像元执行统计计算的信息不足;因此,整个区域在输出栅格中都将接收 NoData 值。

Boolean

返回值

名称

说明

数据类型

out_raster

输出分区统计栅格。

Raster

代码实例

    ZonalStatistics 示例 1Python 窗口)

    本示例为各区域确定了值输入栅格中的像元值范围。

import arcpy

from arcpy import env

from arcpy.sa import *

env.workspace = "C:/sapyexamples/data"

outZonalStats = ZonalStatistics("zone", "value", "valueraster", "RANGE",

                                "NODATA")

outZonalStats.save("C:/sapyexamples/output/zonestatout")

    ZonalStatistics 示例 2(独立脚本)

    本示例为各区域确定了值输入栅格中的像元值范围。

# Name: ZonalStatistics_Ex_02.py

# Description: Calculates statistics on values of a raster

#    within the zones of another dataset.

# 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

inZoneData = "zone"

zoneField = "value"

inValueRaster = "valueraster"

# Check out the ArcGIS Spatial Analyst extension license

arcpy.CheckOutExtension("Spatial")

# Execute ZonalStatistics

outZonalStatistics = ZonalStatistics(inZoneData, zoneField, inValueRaster,

                                     "RANGE", "NODATA")

# Save the output

outZonalStatistics.save("C:/sapyexamples/output/zonestatout2")

      京ICP备2025132830号-1 京公网安备 号