Зональная гистограмма (Zonal Histogram) (Spatial Analyst)
Краткая информация
Создает таблицу и график гистограммы, показывающие плотность распределения значений ячеек на входных данных Значение (Value) для каждой уникальной Зоны (Zone).
Рисунок
Использование
-
Зональная гистограмма позволяет исследовать плотность распределения значений в одном наборе данных в пределах классов другого набора данных. Примеры включают распределение уклонов в классах землепользования, распределения осадков в классах высот или распределение преступлений избиения полицейскими.
Зона определяется как все области входных данных, имеющие одно значение. Области не обязательно должны быть непрерывными. Наборы растровых данных и наборы классов объектов могут использоваться для входных данных зоны.
Когда и входные данные зон, и входные данные значений представлены растрами с одинаковым разрешением, они будут использованы напрямую.
Если разрешения растров отличаются, до выполнения зональной операции для приведения растров в соответствие друг другу применяется внутренний пересчет.
Если во входных данных есть ячейки с значением 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).
Ячейки входного растра значений принадлежат зоне, в которую попали центры ячеек. В этом случае зоны представляют собой зоны после выполнения любых необходимых преобразований в растр и пересчетов.
На диаграмме гистограммы число классов (бинов) для каждой зоны определяется параметром Входной растр значений (Input value raster).
- Если указан слой, тогда символы этого слоя определяют число классов.
- Если указан набор данных, по умолчанию будет представлено 256 классов. Но если вход представлен целочисленным растром с количеством уникальных значений менее 26, тогда это и будет общим числом уникальных значений.
Диаграмма зональной гистограммы не создается по умолчанию. Чтобы она создалась при запуске инструмента, задайте Выходное имя диаграммы (Output graph name).
Диаграмма только временная (в памяти). Для создания постоянной диаграммы с помощью инструмента Сохранить диаграмму (Save Graph) создайте файл диаграммы в формате «.grf» или в любом другом формате, доступном в этом инструменте.
Синтаксис
Параметр | Объяснение | Тип данных |
in_zone_data |
Набор данных, который определяет зоны. Зоны могут быть определены слоем целочисленного растра или векторным слоем. | Raster Layer | Feature Layer |
zone_field | Поле, в котором содержатся значения, определяющие каждую зону. Это может быть целочисленное или строковое поле набора данных зоны. | Field |
in_value_raster |
Значения растра для создания гистограмм. | Raster Layer |
out_table |
Выходной файл таблицы. Формат таблицы определяется выходным местоположением и путем к ней. Если расширение не указано, это будет таблица INFO. Если в качестве местоположения задана база геоданных, будет создана выходная таблица соответствующего типа (например, таблица файловой или базы геоданных ArcSDE). Если имя имеет расширение .dbf, выходные данные будут записаны в формате dBASE. Дополнительная выходная диаграмма создается по информации в таблице. | Table |
out_graph (дополнительно) |
Имя выходной диаграммы для отображения. Диаграмма временная. Чтобы сохранить ее, используйте инструмент Сохранить диаграмму (Save Graph). | Graph |
Пример кода
В этом примере создается таблица .dbf зональной гистограммы.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonHisto = ZonalHistogram("zoneras", "zonfield", "valueras", "znhist_tbl.dbf")
В этом примере создается таблица .dbf зональной гистограммы и файл диаграммы.
# Name: ZonalHistogram_Ex_02.py
# Description: Creates a zonal histogram output table and
# a graph showing the amount of value cells
# for each unique input zone.
# 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 = "zonras"
zoneField = "zonfield"
inValueRaster = "valueras"
outTable = "C:/sapyexamples/output/zonehist_tbl.dbf"
outGraph = "zonehist_gra"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ZonalHistogram
ZonalHistogram(inZoneData, zoneField, inValueRaster, outTable, outGraph)