Доступно с лицензией Spatial Analyst.
Доступно с лицензией Image Analyst.
Сводка
Вычисляет статистику по значениям растра в пределах зон, определяемых другим набором данных.
Иллюстрация
Использование
Зона определяется как все области входных данных, имеющие одно значение. Области не обязательно должны быть непрерывными. И растры, и векторные объекты могут использоваться для входных данных зон.
Если Входные растровые или векторные данные зон (in_zone_data в Python) являются растром, это должен быть целочисленный растр.
Если Входные растровые или векторные данные зон (in_zone_data в Python) являются векторными объектами, они будут конвертированы в растр при использовании размера ячейки и выравнивания ячеек из Входного растра значений (in_value_raster в Python).
Если Размер ячейки Входных растровых или векторных данных зон (in_zone_data в Python) и Входного растра значений (in_value_raster в Python) различается, то размер выходной ячейки будет Максимальный из входных, а Входной растр значений будет использоваться как Растр привязки при внутренней конвертации. Если размер ячейки совпадает, но ячейки не выровнены, то Входной растр значений будет использован как растр привязки при внутренней конвертации. В любом из этих случаев перед выполнением зональной операции будет инициирован внутренний пересчет.
Если входные данные зон и значений являются растрами с одинаковым размером ячеек, и с корректным выравниванием, они будут использоваться непосредственно в инструменте и не будут пересчитаны во время выполнения инструмента.
Если Входные растровые или векторные данные зон (in_zone_data в Python) представлены объектами, для любых зональных объектов, которые не пересекаются с любыми центрами ячеек растра значений, эти зоны не будут конвертироваться во внутренний растр зон. В результате, эти зоны не будут представлены в выходных данных. Вы можете управлять этим поведением, задав соответствующее значение для параметра среды Размер ячеек, что позволит сохранить желательный уровень детализации объектов зон, и задать его в параметрах среды анализа.
Если Входные растровые или векторные данные зон (in_zone_data в Python) представлены набором точечных данных, возможно, что в каждую конкретную ячейку входного растра значений попадет больше одной точки. Для таких ячеек значение зоны определяется точкой с наименьшим ObjectID (например, OID или FID).
Если Входные растровые или векторные данные зон (in_zone_data в Python) имеют перекрывающиеся полигоны, зональный анализ не будет выполняться для каждого индивидуального полигона. Поскольку векторные входные данные конвертируются в растр, каждое местоположение может иметь только одно значение.
Альтернативный метод заключается в обработке зональных данных итеративно для каждой из полигональных зон с последующим сопоставлением результатов.
При указании растровых или векторных данных входной зоны (in_zone_data в Python) полем зоны по умолчанию будет первое доступное целочисленное или текстовое поле. Если других допустимых полей нет, по умолчанию используется поле ObjectID (например, OID или FID).
Входной растр значений (in_value_raster в Python) может быть либо целочисленным, либо может быть представлен значениями с плавающей точкой. Но если используется тип с плавающей точкой, опции для вычисления большинства, меньшинства и разнообразия будут не доступны.
Для вычислений большинства и меньшинства, если есть привязка, выходные данные для зоны основаны на наименьшем из значений привязки. Дополнительную информацию см. в разделе Как работают инструменты зональной статистики.
Поддерживаемые типы наборов данных многомерных растров включают многомерный растровый слой, мозаику, сервисы изображений и Esri CRF.
Тип выходных данных (integer или float) зависит от выполняемого зонального вычисления и типа данных входного растра значений.
По умолчанию, этот инструмент использует преимущества многоядерных процессоров. Максимальное число ядер, которое может быть использовано,– четыре.
Чтобы инструмент использовал меньшее число ядер, измените параметр среды parallelProcessingFactor.
Синтаксис
ZonalStatistics(in_zone_data, zone_field, in_value_raster, {statistics_type}, {ignore_nodata}, {process_as_multidimensional}, {percentile_value}, {percentile_interpolation_type})
Parameter | Объяснение | Тип данных |
in_zone_data | Набор данных, определяющий зоны. Зоны могут быть определены слоем целочисленного растра или векторным слоем. | Raster Layer; Feature Layer |
zone_field | Поле, которое содержит значения, определяющие каждую зону. Это может быть целочисленное или строковое поле набора данных зоны. | Field |
in_value_raster | Растр, содержащий значения, на основании которых будет вычислена статистика. | Raster Layer |
statistics_type (Дополнительный) | Указывает тип вычисляемой статистики.
| String |
ignore_nodata (Дополнительный) | Определяет, будут ли значения NoData входного набора данных значений влиять на результаты зоны, в которую они попадают.
| Boolean |
process_as_multidimensional (Дополнительный) | Определяет, как будет обрабатываться входные растры, если они являются многомерными.
| Boolean |
percentile_value (Дополнительный) | Вычисляемый процентиль. Значение по умолчанию – 90, для 90-го процентиля. Значения могут варьироваться от 0 до 100. 0-й процентиль по существу эквивалентен Минимума в статистике, а 100-й процентиль эквивалентен Максимуму. Значение 50 даст по существу тот же результат, что и Медиана в статистике. Эта опция доступна, только если для параметра statistics_type задано значение PERCENTILE. | Double |
percentile_interpolation_type (Дополнительный) | Задает метод интерполяции Процентиль, используемый когда число вычисляемых значений входного растра - четное.
| String |
Значение отраженного сигнала
Name | Объяснение | Тип данных |
out_raster | Выходной растр зональной статистики. | Raster |
Пример кода
В этом примере для каждой зоны определяется диапазон значений ячеек во входном растре значений.
import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C://data"
outZonalStats = ZonalStatistics("zone", "value", "valueraster", "RANGE",
"NODATA")
outZonalStats.save("C:/output/zonestatout")
В этом примере создается многомерные выходные данные зональной статистики путем вычисления максимального значения из входного растра многомерных значений для каждой зоны.
# Name: ZonalStatistics_Ex_standalone.py
# Description: Summarizes values of a multidimensional raster within the zones
# of another dataset.
# Requirements: Image Analyst Extension
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Set the analysis environments
arcpy.env.workspace = "C:/sapyexamples/data"
# Set the local variables
inZoneData = "zones.shp"
zoneField = "sampleID"
inValueRaster = "multidimensional_valueraster.crf"
# Execute ZonalStatistics
outZonalStatistics = ZonalStatistics(inZoneData, zoneField, inValueRaster,
"MAXIMUM", "NODATA", "ALL_SLICES")
# Save the output
outZonalStatistics.save("C:/sapyexamples/output/zonestatout2.crf")
Environments
Информация о лицензиях
- Basic: Требуется Image Analyst or Spatial Analyst
- Standard: Требуется Image Analyst or Spatial Analyst
- Advanced: Требуется Image Analyst or Spatial Analyst