Доступно с лицензией Spatial Analyst.
Краткая информация
Суммирует значения растра в пределах зон, определяемых другим набором данных, и записывает результаты в таблицу.
Более подробно о том, как работает инструмент Зональная статистика
Иллюстрация
Использование
Зона определяется как все области входных данных, имеющие одно значение. Области не обязательно должны быть непрерывными. Наборы растровых данных и наборы классов объектов могут использоваться для входных данных зоны.
Если значения Размера ячейки Входных растровых или векторных данных зоны (in_zone_data в Python) и Входного растра значений (in_value_raster в Python) различаются, выходным размером ячейки будет Максимальное входное значение, а Входной растр значений будет использован в качестве Растра замыкания. Если размер ячейки такой же, но ячейки не выровнены, для внутреннего замыкания растра будет использоваться Входное значение растра. В обоих случаях перед выполнением операции зонирования будет вызвано внутреннее вычисление пикселов.
Если у входного растра значений и растра зон одинаковый размер ячейки и ячейки выровнены, они будут использованы напрямую в инструменте - без пересчета значений во время выполнения.
Если Входные растровые или векторные данные зоны (in_zone_data в Python) являются растром, это должен быть целочисленный растр.
Если Входные растровые или векторные данные зоны (in_zone_data в Python) векторные, они будут конвертированы в растр с использованием размера ячейки и выравнивания ячеек из Входного растра значений (in_value_raster в Python).
Если Входные растровые или векторные данные зоны (in_zone_data в Python) представлены точечными объектами, возможно, что в каждую конкретную ячейку входного растра значений попадет больше одной точки. Для таких ячеек значение зоны определяется точкой с наименьшим значением ObjectID (в частности, OID или FID).
Если Входные растровые или векторные данные зоны (in_zone_data в Python) содержат перекрывающиеся полигоны, зональный анализ не будет выполняться для каждого отдельного полигона. Поскольку векторные входные данные конвертируются в растр, каждое местоположение может иметь только одно значение.
Альтернативный метод заключается в обработке зональной статистики итеративно для каждой из полигональных зон с последующим сопоставлением результатов.
При указании Входных растровых или векторных данных зоны (in_zone_data в Python) полем зоны по умолчанию будет первое доступное целочисленное или текстовое поле. Если других допустимых полей нет, по умолчанию используется поле ObjectID (например, OID или FID).
Входной растр значений (in_value_raster в Python) может быть либо целочисленным, либо может быть представлен значениями с плавающей точкой. Но если тип данных – числа с плавающей точкой, не будут вычислены такие зональные характеристики, как большинство, медиана, меньшинство и дисперсия.
Для вычислений большинства и меньшинства, если есть привязка, выходные данные для зоны основаны на наименьшем из значений привязки. Дополнительную информацию см. в разделе Как работает инструмент Зональная статистика.
В выходной таблице будет создано поле или ряд полей в зависимости от параметра Тип статистики. Если входное Значение – целое число, для вычисления доступны все типы статистики (Минимум, Максимум, Диапазон, Среднее, Среднеквадратическое отклонение, Сумма, Разнообразие, Большинство, Меньшинство и Медиана). Если входное Значение – с плавающей точкой, типы статистики Большинство, Меньшинство, Медиана и Разнообразие не будут вычисляться.
Тип данных для каждого значения в полях выходной таблицы зависит от выполняемых зональных вычислений. Обратитесь к статье Как работает инструмент Зональная статистика за информацией по конкретным характеристикам статистических показателей.
Число строк в выходной таблице равно числу зон.
По умолчанию этот инструмент использует преимущества многоядерных процессоров. Максимальное число ядер, использующихся инструментом – четыре.
Если вы хотите, чтобы инструмент использовал меньшее число ядер, измените параметр среды parallelProcessingFactor.
См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
ZonalStatisticsAsTable (in_zone_data, zone_field, in_value_raster, out_table, {ignore_nodata}, {statistics_type})
Параметр | Объяснение | Тип данных |
in_zone_data | Набор данных, который определяет зоны. Зоны могут быть определены слоем целочисленного растра или векторным слоем. | Raster Layer; Feature Layer |
zone_field | Поле, в котором содержатся значения, определяющие каждую зону. Это может быть целочисленное или строковое поле набора данных зоны. | Field |
in_value_raster | Растр, содержащий значения, на основании которых будет вычислена статистика. | Raster Layer |
out_table | Выходная таблица, которая содержит итоговую информацию по значениям в каждой зоне. Формат таблицы определяется выходным местоположением и путем к ней. По умолчанию выходными данными будет таблица базы геоданных. Если путь указывает не на базу геоданных, формат будет определяется расширением. Если выбрано расширение .dbf, данные будут в формате dBASE. Если расширение не указано, это будет таблица INFO. | Table |
ignore_nodata (Дополнительный) | Показывает, будут ли значения NoData в входных данных Значение (Value) влиять на результаты зоны, в которую они попадают.
| Boolean |
statistics_type (Дополнительный) | Вычисляемый тип статистики.
| String |
Пример кода
ZonalStatisticsAsTable Пример 1 (окно Python)
В этом примере суммируются значения растра в зонах, определенных шейп-файлом полигона, и результаты записываются в таблицу.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZSaT = ZonalStatisticsAsTable("zones.shp", "Classes", "valueforzone",
"zonalstattblout", "NODATA", "SUM")
ZonalStatisticsAsTable, пример 2 (автономный скрипт)
В этом примере суммируются значения растра в зонах, определенных шейп-файлом полигона, и результаты записываются в файл .dbf.
# Name: ZonalStatisticsAsTable_Ex_02.py
# Description: Summarizes values of a raster within the zones of
# another dataset and reports the results to a table.
# 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 = "zones.shp"
zoneField = "Classes"
inValueRaster = "valueforzone"
outTable = "zonalstattblout02.dbf"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ZonalStatisticsAsTable
outZSaT = ZonalStatisticsAsTable(inZoneData, zoneField, inValueRaster,
outTable, "NODATA", "MEAN")
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst