Доступно с лицензией Spatial Analyst.
Краткая информация
Вычисляет перекрестную таблицу площадей между двумя наборами данных и выдает таблицу.
Иллюстрация
Использование
Зона определяется как все области входных данных, имеющие одно значение. Области не обязательно должны быть непрерывными. Наборы растровых данных и наборы классов объектов могут использоваться для входных данных зоны.
Если Входные растровые или векторные данные зоны (in_zone_data в Python) или Входные растровые или векторные данные классов (in_class_data в Python) являются растром, это должен быть целочисленный растр.
Если оба входных набора растровые, и размеры их ячеек различаются, выходным размером ячейки будет Максимальное из входных значений. Входные растровые или векторные данные классов (in_class_data в Python) будет использован в качестве Растра замыкания. Если размеры ячейки совпадают, но ячейки не выровнены, для внутреннего замыкания растра будут использоваться данные классов. В обоих случаях перед выполнением операции зонирования будет вызвано внутреннее вычисление пикселов.
Если наборы входных зоны и классов растровые с одинаковым размером ячейки и ячейки выровнены, они будут использованы напрямую в инструменте. Они не будут пересчитываться при выполнении инструмента.
Если Входные растровые или векторные данные зоны (in_zone_data в Python) - векторные, а Входные растровые или векторные данные классов (in_class_data в Python) - растровые, данные зоны будут растеризованы с использованием размера ячейки и их выравнивания данных классов.
Если Входные растровые или векторные данные классов (in_class_data в Python) являются векторными, а Входные растровые или векторные данные зоны (in_zone_data в Python) - растр, данные классов будут растеризованы с использованием размера ячейки и их выравнивания данных зоны.
Если оба набора векторные, Экстент будет равен Минимальному входному значению, а размер ячейки - минимальному значению из ширины или высоты экстента набора данных зоны, разделенному на 250, в выходной системе координат.
Если Входные растровые или векторные данные зоны (in_zone_data в Python) содержат перекрывающиеся полигоны, зональный анализ не будет выполняться для каждого отдельного полигона. Поскольку векторные входные данные конвертируются в растр, каждое местоположение может иметь только одно значение.
Альтернативный метод заключается в обработке зональной статистики итеративно для каждой из полигональных зон с последующим сопоставлением результатов.
При указании входной зоны или данных классов полем по умолчанию будет первое доступное и допустимое поле. Если других допустимых полей нет, по умолчанию используется поле ObjectID (например, OID или FID).
Если в качестве Входных растровых или векторных данных классов (in_class_data в Python) используются точки или линии, в отчет будут включены области, пересекаемые этими объектами.
Выходными данными инструмента Таблица площадей является таблица.
В этой таблице:
- Содержится запись о каждом уникальном значении в наборе данных зоны.
- Содержится поле для каждого уникального значения в наборе данных классов.
- Каждая запись будет хранить площадь каждого класса в пределах каждой зоны.
Обратитесь к статье Работа с инструментом Таблица площадей для конкретного выбранного формата выходного растра, а также предложений по работе с ними.
См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
TabulateArea (in_zone_data, zone_field, in_class_data, class_field, out_table, {processing_cell_size})
Параметр | Объяснение | Тип данных |
in_zone_data | Набор данных, который определяет зоны. Зоны могут быть определены слоем целочисленного растра или векторным слоем. | Raster Layer; Feature Layer |
zone_field | Поле, в котором содержатся значения, определяющие каждую зону. Это может быть целочисленное или строковое поле набора данных зоны. | Field |
in_class_data | Набор данных, определяющий классы, для которых вычисляется суммарная площадь внутри каждой зоны. Входные данные классов могут быть представлены слоем целочисленного растра или векторным слоем. | Raster Layer; Feature Layer |
class_field | Поле, содержащее значения классов. Поле может быть представлено целочисленным или строковым полем входных данных классов. | Field |
out_table | Выходная таблица, которая будет содержать итоговые суммарные значения площадей каждого класса в пределах каждой зоны. Формат таблицы определяется выходным местоположением и путем к ней. По умолчанию выходными данными будет таблица базы геоданных. Если путь указывает не на базу геоданных, формат будет определяется расширением. Если выбрано расширение .dbf, данные будут в формате dBASE. Если расширение не указано, это будет таблица INFO. | Table |
processing_cell_size (Дополнительный) | Размер обрабатываемой ячейки для выполнения зональной операции. Значение, устанавливаемое в параметрах среды. Если не заданы параметры среды, значение по умолчанию для размера ячейки определяется по типу данных зоны, как показано ниже:
| Analysis Cell Size |
Пример кода
TabulateArea, пример 1 (окно Python)
В этом примере выдаётся таблица с площадью каждого значения класса, которые содержатся в каждой зоне.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
TabulateArea("zonedata.shp", "IDStr", "valueraster", "VALUE",
"C:/sapyexamples/output/areatable.dbf", 2)
TabulateArea, пример 2 (автономный скрипт)
В этом примере выдаётся таблица с площадью каждого значения класса, которые содержатся в каждой зоне.
# Name: TabulateArea_Ex_02.py
# Description: Calculates cross tabulated areas between two datasets.
# 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"
env.extent = "classgrid"
env.snapRaster = "classgrid"
# Set local variables
inZoneData = "zonedata.shp"
zoneField = "IDStr"
inClassData = "valueraster"
classField = "VALUE"
outTable = "C:/sapyexamples/output/areatable02.dbf"
processingCellSize = 2
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute TabulateArea
TabulateArea(inZoneData, zoneField, inClassData, classField, outTable,
processingCellSize)
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Требует Spatial Analyst
- ArcGIS Desktop Standard: Требует Spatial Analyst
- ArcGIS Desktop Advanced: Требует Spatial Analyst