Доступно с лицензией Spatial Analyst.
Краткая информация
Суммирует значения растра в пределах зон, определяемых другим набором данных, и записывает результаты в таблицу.
Более подробно о том, как работает инструмент Зональная статистика
Иллюстрация
Использование
Зона определяется как все области входных данных, имеющие одно значение. Области не обязательно должны быть непрерывными. Наборы растровых данных и наборы классов объектов могут использоваться для входных данных зоны.
Когда и входные данные зон, и входные данные значений представлены растрами с одинаковым разрешением, они будут использованы напрямую.
Если разрешения растров отличаются, до выполнения зональной операции для приведения растров в соответствие друг другу применяется внутренний пересчет.
Если во входных данных есть ячейки с значением NoData, пересчет может привести к тому, что в выходных данных участки с значением NoData могут быть больше, чем вы ожидаете. Чтобы избежать этой ситуации, следует Изменить разрешение (Resample) более грубого входного растра на значение разрешения более качественного входного растра или присвоить Размеру ячейки (Cell size) значение Минимальный из всех входных (Minimum Of Inputs) в среде анализа растра.
Если входные данные зон представлены набором растровых данных, у него должна быть таблица атрибутов. Таблица атрибутов обычно создается для целочисленных растров автоматически, но при определенных обстоятельствах этого может не произойти. Для создания можно использовать средство Построить таблицу атрибутов растра.
Если входные данные зон представлены набором векторных данных, к нему будет внутренне применено преобразование Вектор в растр. Чтобы убедиться, что результаты преобразования корректно совместятся с входными растровыми данными классов, рекомендуется проверить, заданы ли в параметрах среды и в параметрах анализа растров корректные параметры экстента и привязки растра.
Поскольку внутренний растр должен иметь таблицу атрибутов, будет выдано сообщение об ошибке, если в процессе преобразования таковой создано не было. Если это произошло, преобразуйте набор классов объектов непосредственно в Объекты в растр (Feature To Raster), Полигон в растр (Polygon To Raster), Точки в растр (Point To Raster) или Полилинии в растр (Polyline To Raster). Создайте таблицу атрибутов для него, как описано в предыдущей подсказке, и используйте результирующий растр как входные данные Зоны (Zone).
Если входные данные зоны являются набором классов объектов со сравнительно небольшими пространственными объектами, помните, что разрешение информации, необходимой для соответствия, сходно с разрешением растра значения. Если площади автономных пространственных объектов такие же или меньше, чем площадь автономных ячеек в растре значения, при преобразовании пространственного объекта в растр некоторые из этих зон могут быть не представлены.
Чтобы убедиться в этом, попробуйте преобразовать набор классов объектов в растр с помощью соответствующего инструмента конвертации объекта в растр и задайте такое же разрешение, как у растра Value. Результат этого преобразования укажет на то, какими будут выходные данные зональной операции по умолчанию.
Если результаты в выходных данных хуже, чем вы ожидали, вам необходимо определить соответствующее разрешение растра, которое будет отображать все детали входных пространственных объектов. Используйте это разрешение как Размер ячейки (Cell Size) параметров среды растрового анализа.
Если входные данные зон представлены набором точечных данных, возможно, что в каждую конкретную ячейку входного растра значений попадет больше одной точки. Для таких ячеек значение зоны определяется точкой с наибольшим идентификатором объекта ID.
Если входные векторные данные зон имеют перекрывающиеся полигоны, зональный анализ не будет выполняться для каждого индивидуального полигона. Поскольку векторные входные данные конвертируются в растр, каждое местоположение может иметь только одно значение.
Альтернативный метод заключается в обработке зональной статистики итеративно для каждой из полигональных зон с последующим сопоставлением результатов.
В качестве входных данных зон рекомендуется использовать только растры, поскольку это обеспечивает больший контроль за выполнением преобразований Вектор в растр. Соответственно, это позволит вам получить ожидаемые результаты.
При указании данных входной зоны полем зоны по умолчанию будет первое доступное и допустимое поле. Если других допустимых полей нет, по умолчанию используется поле ObjectID (например, OID или FID).
Если для Поля зоны выбрано зарезервированное поле (например, OBJECTID, FID или OID), это может привести к неоднозначному результату. Результат содержит имя определенного зарезервированного поля, необходимое для конкретного типа выходного формата, а также заданное Поле зоны . Если имя указанного поля такое же, как у зарезервированного поля для конкретного выходного формата, имя поля зоны в выходных данных будет изменено таким образом, чтобы все имена полей в результате были уникальными.
Входной растр значений может быть либо целочисленным, либо может быть представлен значениями с плавающей точкой. Но если тип данных – числа с плавающей точкой, не будут вычислены такие зональные характеристики, как большинство, медиана, меньшинство и разнообразие.
Для вычислений большинства и меньшинства, если есть привязка, выходные данные для зоны основаны на наименьшем из значений привязки.
В выходной таблице будет создано поле или ряд полей, в зависимости от параметра Тип статистики. Если входное Значение – целое число, для вычисления доступны все типы статистики (Минимум, Максимум, Диапазон, Среднее, Среднеквадратическое отклонение, Сумма, Разнообразие, Большинство, Меньшинство и Медиана). Если входное Значение – с плавающей точкой, типы статистики Большинство, Меньшинство, Медиана и Разнообразие не будут вычисляться.
Тип данных для каждого значения в полях выходной таблицы зависит от выполняемых зональных вычислений. Обратитесь к статье Как работает инструмент Зональная статистика за информацией по конкретным характеристикам статистических показателей.
Число строк в выходной таблице равно числу зон.
По умолчанию этот инструмент использует преимущества многоядерных процессоров. Максимальное число ядер, использующихся инструментом – четыре.
Если вы хотите, чтобы инструмент использовал меньшее число ядер, измените параметр среды 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")
Параметры среды
- Автоподтверждение (Auto Commit)
- Размер ячейки (Cell size)
- Сжатие (Compression)
- Текущая рабочая область (Current Workspace)
- Экстент (Extent)
- Географические преобразования (Geographic Transformations)
- Маска (Mask)
- Выходное ключевое слово CONFIG (Output CONFIG Keyword)
- Выходная система координат (Output Coordinate System)
- Коэффициент параллельной обработки (Parallel Processing Factor)
- Стандартизированные имена полей (Qualified Field Names)
- Статистика растра (Raster Statistics)
- Временная рабочая область (Scratch Workspace)
- Растр привязки (Snap Raster)
- Размер листа (Tile Size)
- Перенос описаний доменов полей (Transfer Field Domain Descriptions)
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst