批量计算统计数据 (Data Management)
摘要
计算多个栅格数据集的统计数据。
用法
-
通过计算统计值,ArcGIS 应用程序能适当地对显示的栅格数据进行拉伸和符号化操作。
-
在计算统计值时使用的那部分栅格数据集由跳跃因子控制。特定输入值可指示水平或垂直跳跃因子,值为 1 时使用每个像素,值为 2 时则每隔一个像素使用一个。此跳跃因子的取值范围只能从 1 至栅格数据集中列/行中的数量。
-
以 GRID 和 RADARSAT2 格式计算统计值时始终将跳跃因子设为 1。
-
对于储存在文件地理数据库或 ArcSDE 地理数据库中的栅格数据集,它们的跳跃因子则大为不同。首先,如果 x 和 y 跳跃因子不同,则使用两者中较小的一个来作为 x 和 y 共同的跳跃因子。其次,跳跃因子同与其最接近的金字塔等级相关联。如果跳跃因子的值不等于金字塔中像素的数量(例如,如果跳跃因子为 5,且最接近的金字塔等级为 4 x 4 像素,即等级 2),则软件将向下舍入到下一个金字塔等级(在此示例中为 2)并使用该值作为跳跃因子。
-
并不是所有栅格格式都可使用跳跃因子。计算统计值时可利用跳跃因子的栅格格式包括:TIFF、IMG、NITF、DTED、RAW、ADRG、CIB、CADRG、DIGEST、GIS、LAN、CIT、COT、ERMapper、ENVI DAT、BIL、BIP、BSQ 和地理数据库。
-
“忽略值”选项可用于从统计值计算中排除特定值。如果某值为 NoData 或会影响计算,则最好忽略该值。
语法
参数 | 说明 | 数据类型 |
Input_Raster_Datasets [input_raster_dataset,...] |
输入栅格数据集。 | Raster Dataset |
Number_of_columns_to_skip (可选) |
样本之间水平像素的数量。 此值必须大于零,并且小于等于栅格数据集中的列数。默认值为 1 或者为上次使用的跳跃因子。 对于储存在文件地理数据库或 ArcSDE 地理数据库中的栅格数据集,它们的跳跃因子并不相同。首先,如果 x 和 y 跳跃因子不同,则使用两者中较小的一个来作为 x 和 y 共同的跳跃因子。其次,跳跃因子同与其最接近的金字塔等级相关联。如果跳跃因子不等于金字塔图层中像素的数量,则该数量向下舍入至下一个金字塔等级,并使用那些统计值。 | Long |
Number_of_rows_to_skip (可选) |
样本之间垂直像素的数量。 此值必须大于零并小于等于栅格中的行数。默认值为 1 或者为上次使用的 y 跳跃因子。 对于储存在文件地理数据库或 ArcSDE 地理数据库中的栅格数据集,它们的跳跃因子并不相同。首先,如果 x 和 y 跳跃因子不同,则使用两者中较小的一个来作为 x 和 y 共同的跳跃因子。其次,跳跃因子同与其最接近的金字塔等级相关联。如果跳跃因子不等于金字塔图层中像素的数量,则该数量向下舍入至下一个金字塔等级,并使用那些统计值。 | Long |
Ignore_values [ignore_value,...] (可选) |
排除在统计值计算之外的像素值。 默认情况下没有值。 | Double |
Skip_Existing (可选) | 指定在缺少统计数据的位置进行计算,还是重新计算全部统计数据(即使已经存在仍重新计算)。
| Boolean |
代码实例
这是 BatchCalculateStatistics 的 Python 示例。
import arcpy
arcpy.BatchCalculateStatistics_management(
"C:/data/img1.tif;C:/data/img2.jp2",
"5", "5", "0;255", "SKEP_EXISTING")
这是 BatchCalculateStatistics 的 Python 脚本示例。
#Calculate Statistics for multiple raster datasets with
#multiple ignore values.
#Skip datasets that already have the statistics.
import arcpy
arcpy.env.workspace = "C:/Workspace"
inras = "image1.tif;image2.img;fgdb.gdb/image3"
skipcol = "5"
skiprow = "5"
ignoreval = "0;255;21"
skipexist = "SKIP_EXISTING"
arcpy.BatchCalculateStatistics_management(
inras, skipcol, skiprow, ignoreval,skipexist)