Зональная статистика (Spatial Analyst)

Краткая информация

Суммирует значения растра в пределах зон другого набора данных.

Подробнее о том, как работают инструменты зональной статистики

Иллюстрация

Иллюстрация инструмента Зональная статистика
OutRas = ZonalStatistics(ZoneRas, "VALUE", ValRas, "MINIMUM", "DATA", "CURRENT_SLICE")

Использование

  • Зона определяется как все области входных данных, имеющие одно значение. Области не обязательно должны быть непрерывными. И растры, и векторные объекты могут использоваться для входных данных зон.

  • Если значение Входных растровых или Векторных данных зон (in_zone_data в Python) является растром, это должен быть целочисленный растр.

  • Если Входные растровые или Векторные данные зон являются объектами, они будут конвертированы в растр при использовании размера ячейки и выравнивания ячеек из параметра Входной растр значений (in_value_raster в Python).

  • Если Размер ячейки Входных растровых или векторных данных зон и Входного растра значений различается, то размер выходной ячейки будет Максимальный из входных, а Входной растр значений будет использоваться как Растр привязки при внутренней конвертации. Если размер ячейки совпадает, но ячейки не выровнены, то Входной растр значений будет использоваться как растр замыкания для внутренних целей. В любом из этих случаев перед выполнением зональной операции будет инициирован внутренний пересчет.

    Если входные данные зон и значений являются растрами с одинаковым размером ячеек, и с корректным выравниванием, они будут использоваться непосредственно в инструменте и не будут пересчитаны во время обработки инструмента.

  • Если Входные растровые или векторные данные зон представлены объектами, для любых зональных объектов, которые не пересекаются с любыми центрами ячеек растра значений, эти зоны не будут конвертироваться во внутренний растр зон. В результате, эти зоны не будут представлены в выходных данных. Вы можете управлять этим поведением, задав соответствующее значение для параметра среды Размер ячеек, что позволит сохранить желательный уровень детализации объектов зон, и задать его в параметрах среды анализа.

  • Если значение Входные растровые или векторные данные зон представлено точечными объектами, возможно, что в каждую конкретную ячейку входного растра значений попадет больше одной точки. Для таких ячеек значение зоны определяется точкой с наименьшим значением ObjectID (в частности, OID или FID).

  • Если Входные растровые или векторные данные зон имеют перекрывающиеся полигоны, зональный анализ не будет выполняться для каждого индивидуального полигона. Поскольку векторные входные данные конвертируются в растр, каждое местоположение может иметь только одно значение.

    Альтернативный метод заключается в обработке зональных данных итеративно для каждой из полигональных зон с последующим сопоставлением результатов.

  • При указании значения Входных растровых или векторных данных зон полем зоны по умолчанию будет первое доступное целочисленное или текстовое поле. Если других допустимых полей нет, по умолчанию используется поле ObjectID (например, OID или FID).

  • Поддерживаемый тип статистики зависит от типа данных значения Входного растра значений и типа вычисления статистики, заданного параметром Вычислить круговую статистику.

    Если тип данных - целое число, вычисление арифметической статистики поддерживает следующие опции: Среднее, Большинство, Подсчет большинства, Процент большинства, Максимум, Медиана, Минимум, Меньшинство, Подсчет меньшинства, Процент меньшинства, Процентиль, Диапазон, Среднеквадратическое отклонение, Сумма и Разнообразие. Вычисление круговой статистики поддерживает опции Среднее, Большинство, Меньшинство, Среднеквадратическое отклонение и Разнообразие.

    Если данные с плавающей точкой, вычисление арифметической статистики поддерживает следующие опции: Среднее, Максимум, Медиана, Минимум, Процентиль, Диапазон, Среднеквадратическое отклонение и Сумма. Вычисление круговой статистики поддерживает опции Среднее и Среднеквадратическое отклонение.

  • Для вычислений большинства и меньшинства при наличии привязки выходные данные будут представлять собой наименьшее из значений привязки.

  • Чтобы вычислить круговую статистику, отметьте параметр Вычислить круговую статистику (circular_calculation = "CIRCULAR" в Python) и укажите значение для параметра Значение обхвата окружности (circular_wrap_value в Python).

  • Поддерживаемые типы наборов данных многомерных растров включают многомерный растровый слой, мозаику, сервисы изображений и Esri CRF.

  • Тип выходных данных (целочисленный или с плавающей точкой) зависит от выполняемого зонального вычисления и типа данных входного растра значений. Обратитесь к статье Как работает инструмент Зональная статистика за информацией по конкретным характеристикам статистических показателей.

  • По умолчанию этот инструмент будет использовать многоядерные процессоры, если они доступны. Максимальное число использующихся ядер – четыре.

    Чтобы использовать меньшее число ядер, настройте параметр среды Коэффициент параллельной обработки.

  • Если формат выходного растра .crf, этот инструмент поддерживает параметр среды хранения растровых изображений Пирамида. Пирамиды будут созданы в выходных данных по умолчанию. Для любого другого формата вывода этот параметр среды не поддерживается, и пирамиды создаваться не будут.

Параметры

ПодписьОписаниеТип данных
Входные растровые или векторные данные зон

Набор данных, определяющий зоны.

Зоны могут быть определены слоем целочисленного растра или векторным слоем.

Raster Layer; Feature Layer
Поле зоны

Поле, которое содержит значения, определяющие каждую зону.

Это может быть целочисленное или строковое поле набора данных зоны.

Field
Входной растр значений

Растр, содержащий значения, по которым будет рассчитываться статистика.

Raster Layer
Тип статистики
(Дополнительный)

Задает вычисляемый тип статистики.

  • СреднееБудет рассчитано среднее из значений всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.Используется по умолчанию.
  • БольшинствоБудет рассчитано значение, наиболее часто встречающееся в значениях всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • Число большинстваБудет вычислена частота всех ячеек, содержащих значение большинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • Процент большинстваБудет вычислен процент ячеек, содержащих значение большинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • МаксимумБудет рассчитано наибольшее значение всех ячеек растра значений, которые принадлежат той же зоне, что выходная ячейка.
  • МедианаБудет вычислено медианное значение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • МинимумБудет рассчитано наименьшее значение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • МеньшинствоБудет рассчитано значение, наименее часто встречающееся в значениях всех ячеек в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • Число меньшинстваБудет вычислена частота всех ячеек, содержащих значение меньшинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • Процент меньшинстваБудет вычислен процент ячеек, содержащих значение меньшинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • ПроцентильВычисляет процентиль всех ячеек в растре значений, которые принадлежат той же зоне, что выходная ячейка. Девяностый процентиль вычисляется по умолчанию. Вы можете задать другие значения (от 1 до 100) с помощью параметра Значение процентиля.
  • ДиапазонБудет рассчитана разница между наименьшим и наибольшим значениями всех ячеек растра, которые принадлежат той же зоне, что и выходная ячейка.
  • Среднеквадратическое отклонениеБудет рассчитано Среднеквадратическое отклонение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • СуммаБудет рассчитано общее значение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • РазнообразиеБудет рассчитано количество уникальных значений для всех ячеек во входном растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
String
Игнорировать значение NoData при вычислениях
(Дополнительный)

Определяет, будут ли значения NoData входного набора данных значений влиять на результаты зоны, в которую они попадают.

  • Отмечено – в любой зоне только ячейки, имеющие значение во входном растре значений, будут использованы при определении выходного значения для этой зоны. При определении статистики будут использованы только ячейки из окрестности обрабатываемой ячейки, имеющие значения. Это значение по умолчанию
  • Не отмечено - если в пределах конкретной зоны в растре значений присутствуют ячейки NoData, ячейка не игнорируется и наличие такой ячейки указывает на отсутствие необходимой информации для вычисления статистики для всех ячеек этой зоны. Соответственно, все ячейки зоны получат значения NoData в выходном растра.
Boolean
Обработать как многомерный
(Дополнительный)

Определяет, как будут вычисляться входные растры, если они являются многомерными.

  • Не отмечено – статистика будет вычисляться из текущего среза входного многомерного набора данных. Это значение по умолчанию
  • Отмечено – статистика будет вычисляться для всех измерений (таких как время или глубина) многомерного набора данных.
Boolean
Значение процентиля
(Дополнительный)

Процентиль, который будет вычислен. Значение по умолчанию – 90, для 90-го процентиля.

Значения могут варьироваться от 0 до 100. 0-й процентиль по существу эквивалентен Минимума в статистике, а 100-й процентиль эквивалентен Максимуму. Значение 50 даст по существу тот же результат, что и Медиана в статистике.

Этот параметр доступен, только если для параметра Тип статистики задано значение Процентиль.

Double
Тип интерполяции процентиля
(Дополнительный)

Определяет метод интерполяции, который будет использоваться, когда значение процентиля находится между двумя значениями ячеек из растра входных значений.

  • Автоматическое определениеЕсли входной растр значений содержит целочисленные пикселы, бут использоваться метод Ближайший. Если входной растр значений содержит пикселы с плавающей точкой, будет использоваться метод Линейная. Это значение по умолчанию
  • Ближайшая окрестностьИспользуется ближайшее доступное значение к желаемому процентилю. В этом случае выходной тип пиксела будет таким же, как и во входном растре значений.
  • ЛинейнаяИспользуется средневзвешенное значение двух окружающих значений из желаемого процентиля. В этом случае тип выходного пиксела - с плавающей точкой.
String
Вычислить круговую статистику
(Дополнительный)

Задает способ обработки круговых данных входного растра.

  • Не отмечено — Будет вычислена ординарная линейная статистика. Это значение по умолчанию
  • Отмечено — будет вычислена статистика для углов или других циклических величин, таких как компасное направление в градусах, время дня и дробная часть вещественного числа.
Boolean
Значение охвата окружности
(Дополнительный)

Значение, которое будет использоваться для округления линейного значения до диапазона заданной круговой статистики. Это значение должно быть положительное целочисленное значение или значение с плавающей запятой. Значением по умолчанию является 360 градусов.

Этот параметр поддерживается только в том случае, если отмечен параметр Вычислить круговую статистику.

Double

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной растр

Выходной растр зональной статистики.

Raster

ZonalStatistics(in_zone_data, zone_field, in_value_raster, {statistics_type}, {ignore_nodata}, {process_as_multidimensional}, {percentile_value}, {percentile_interpolation_type}, {circular_calculation}, {circular_wrap_value})
ИмяОписаниеТип данных
in_zone_data

Набор данных, определяющий зоны.

Зоны могут быть определены слоем целочисленного растра или векторным слоем.

Raster Layer; Feature Layer
zone_field

Поле, которое содержит значения, определяющие каждую зону.

Это может быть целочисленное или строковое поле набора данных зоны.

Field
in_value_raster

Растр, содержащий значения, по которым будет рассчитываться статистика.

Raster Layer
statistics_type
(Дополнительный)

Задает вычисляемый тип статистики.

  • MEANБудет рассчитано среднее из значений всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.Используется по умолчанию.
  • MAJORITYБудет рассчитано значение, наиболее часто встречающееся в значениях всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • MAJORITY_COUNTБудет вычислена частота всех ячеек, содержащих значение большинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • MAJORITY_PERCENTБудет вычислен процент ячеек, содержащих значение большинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • MAXIMUMБудет рассчитано наибольшее значение всех ячеек растра значений, которые принадлежат той же зоне, что выходная ячейка.
  • MEDIANБудет вычислено медианное значение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • MINIMUMБудет рассчитано наименьшее значение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • MINORITYБудет рассчитано значение, наименее часто встречающееся в значениях всех ячеек в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • MINORITY_COUNTБудет вычислена частота всех ячеек, содержащих значение меньшинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • MINORITY_PERCENTБудет вычислен процент ячеек, содержащих значение меньшинства в растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
  • PERCENTILEВычисляет процентиль всех ячеек в растре значений, которые принадлежат той же зоне, что выходная ячейка. Девяностый процентиль вычисляется по умолчанию. Вы можете задать другие значения (от 1 до 100) с помощью параметра Значение процентиля.
  • RANGEБудет рассчитана разница между наименьшим и наибольшим значениями всех ячеек растра, которые принадлежат той же зоне, что и выходная ячейка.
  • STDБудет рассчитано Среднеквадратическое отклонение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • SUMБудет рассчитано общее значение всех ячеек на растре значений, которые принадлежат той же зоне, что и выходная ячейка.
  • VARIETYБудет рассчитано количество уникальных значений для всех ячеек во входном растре значений, которые принадлежат к той же зоне, что и выходная ячейка.
String
ignore_nodata
(Дополнительный)

Определяет, будут ли значения NoData входного набора данных значений влиять на результаты зоны, в которую они попадают.

  • DATAВ любой зоне только ячейки, содержащие значение во входном растре значений, используются при определении выходного значения для этой зоны. При определении статистики будут использованы только ячейки из окрестности обрабатываемой ячейки, имеющие значения. Это значение по умолчанию
  • NODATAЕсли в пределах конкретной зоны в растре значений присутствуют ячейки NoData, ячейка не игнорируется и наличие такой ячейки указывает на отсутствие необходимой информации для вычисления статистики для всех ячеек этой зоны. Соответственно, все ячейки зоны получат значения NoData в выходном растра.
Boolean
process_as_multidimensional
(Дополнительный)

Определяет, как будут вычисляться входные растры, если они являются многомерными.

  • CURRENT_SLICEСтатистика будет вычисляться из текущего среза входного многомерного набора данных. Это значение по умолчанию
  • ALL_SLICESСтатистика будет вычисляться для всех измерений (таких как время или глубина) многомерного набора данных.
Boolean
percentile_value
(Дополнительный)

Процентиль, который будет вычислен. Значение по умолчанию – 90, для 90-го процентиля.

Значения могут варьироваться от 0 до 100. 0-й процентиль по существу эквивалентен Минимума в статистике, а 100-й процентиль эквивалентен Максимуму. Значение 50 даст по существу тот же результат, что и Медиана в статистике.

Этот параметр поддерживается, если параметр statistics_type задан как PERCENTILE.

Double
percentile_interpolation_type
(Дополнительный)

Определяет метод интерполяции, который будет использоваться, когда значение процентиля находится между двумя значениями ячеек из растра входных значений.

  • AUTO_DETECTЕсли входной растр значений имеет целочисленный пикселный тип, будет использоваться метод NEAREST. Если тип пикселов входного растра - значение с плавающей точкой, будет использоваться метод LINEAR. Это значение по умолчанию
  • NEARESTИспользуется ближайшее доступное значение к желаемому процентилю. В этом случае выходной тип пиксела будет таким же, как и во входном растре значений.
  • LINEARИспользуется средневзвешенное значение двух окружающих значений из желаемого процентиля. В этом случае тип выходного пиксела - с плавающей точкой.
String
circular_calculation
(Дополнительный)

Задает способ обработки круговых данных входного растра.

  • ARITHMETICБудет вычислена ординарная линейная статистика. Это значение по умолчанию
  • CIRCULARБудет вычислена статистика для углов или других циклических величин, таких как компасное направление в градусах, время дня и дробная часть вещественного числа.
Boolean
circular_wrap_value
(Дополнительный)

Значение, которое будет использоваться для округления линейного значения до диапазона заданной круговой статистики. Это значение должно быть положительное целочисленное значение или значение с плавающей запятой. Значением по умолчанию является 360 градусов.

Этот параметр поддерживается, если параметр circular_calculation задан как CIRCULAR.

Double

Возвращаемое значение

ИмяОписаниеТип данных
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_standalone.py
# Description: Summarizes values of a multidimensional raster within the zones 
#              of another dataset.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# 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")

Связанные разделы