Доступно с лицензией 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) может быть либо целочисленным, либо может быть представлен значениями с плавающей точкой. Но если тип данных – числа с плавающей точкой, не будут вычислены такие зональные характеристики, как большинство, медиана, меньшинство и дисперсия.
Для вычислений большинства и меньшинства, если есть привязка, выходные данные для зоны основаны на наименьшем из значений привязки. Дополнительную информацию см. в разделе Как работает инструмент Зональная статистика.
Тип выходных данных (integer или float) зависит от выполняемого зонального вычисления и типа данных входного растра значений. Дополнительную информацию см. в разделе Как работает инструмент Зональная статистика.
По умолчанию этот инструмент использует преимущества многоядерных процессоров. Максимальное число ядер, использующихся инструментом – четыре.
Если вы хотите, чтобы инструмент использовал меньшее число ядер, измените параметр среды parallelProcessingFactor.
См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
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 (Дополнительный) | Вычисляемый тип статистики.
| String |
ignore_nodata (Дополнительный) | Показывает, будут ли значения NoData в входных данных Значение (Value) влиять на результаты зоны, в которую они попадают.
| Boolean |
Возвращаемое значение
Название | Объяснение | Тип данных |
out_raster | Выходной растр зональной статистики. | Raster |
Пример кода
ZonalStatistics, пример 1 (окно Python)
В этом примере для каждой зоны определяется диапазон значений ячеек во входном растре значений.
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")
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst