Статистика по блокам (Block Statistics) (Spatial Analyst)
Резюме
Разделяет входные данные на неперекрывающиеся блоки и вычисляет статистику значений в каждом блоке. Значение присваивается всем ячейкам в каждом блоке выходных данных.
Более подробно о том, как работает инструмент Статистика по блокам
Рисунок
Использование
-
Если тип значений входного растра – числа с плавающей точкой, возможно вычисление только среднего (Mean), максимального (Maximum) и минимального (Minimum) значений, а также диапазона (Range), стандартного отклонения (STD) и суммы (Sum); статистики Большинства (Majority), Меньшинства (Minority), Медианы (Median) и Разнообразие (Variety) не допускаются. Если входной растр целочисленный, доступно использование всех типов статистики.
-
Когда задана окрестность в форме круга, кольца или клина, в зависимости от размера окрестности, в вычислениях могут не учитываться ячейки, которые расположены на расстоянии, равном радиусу окрестности, и при этом радиусы из центра окрестности не перпендикулярны оси x- или y-axis. Однако, местоположениям этих ячеек будет присвоено результирующее значение, полученное при вычислениях статистики окрестности, поскольку они попадают в минимальный ограничивающий прямоугольник (или результирующий блок) перечисленных выше трёх круговых окрестностей.
-
Если входной растр целочисленный, выходной растр будет также целочисленным. Исключение - статистика, определяющая среднее значение (Mean) или стандартное отклонение (STD); для этих типов статистики выходной растр всегда будет представлен числами с плавающей точкой. Если тип входных значений - числа с плавающей точкой, выходные данные будут представлены числами с плавающей точкой для всех доступных типов статистики.
-
Для типов окрестностей Нерегулярный (Irregular) и Вес (Weight) требуется наличие керн-файла. Керн-файл должен иметь расширение .txt.
Информацию о создании и использовании файлов ядра смотрите в подразделах Нерегулярный (Irregular) и Вес (Weight) в разделе Как работает инструмент Статистика по блокам.
-
Для типа статистики Медиана, если количество ячеек в блоке нечетное, значения ранжируются, и в результате в качестве медианы выдается срединное значение, которое является целочисленным. Если количество ячеек в блоке четное, значения ранжируются и два срединных значения усредняются и округляются до ближайшего целого значения.
-
Для типа статистики Большинство, ячейкам, для которых нет единственного значения большинства будет присвоено значение NoData. Это может случиться, когда два или несколько значений в пределах блока связаны, и большинство ячеек имеют одно и то же значение. Для типа статистики Меньшинство, ячейкам, не имеющим единственного значения меньшинства, также будет присвоено значение NoData.
-
Если тип статистики — Среднее (Mean), Меньшинство (Minority), Стандартное отклонение (Standard Deviation) или Сумма (Sum), тип Окрестности (Neighborhood) может быть определён как Вес (Weight).
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster |
Растр, для которого будет вычислена статистика по блокам. | Raster Layer |
neighborhood (дополнительно) |
Класс Окрестности диктует форму области вокруг каждой ячейки, используемой для вычисления статистики. Различные типы окрестности: NbrAnnulus, NbrCircle, NbrRectangle, NbrWedge, NbrIrregular, и NbrWeight. Ниже приведены формы окрестности:
Параметр {CELL | MAP} определяет единицы расстояния как единицы ячейки или единицы карты. Окрестность по умолчанию – это квадрат NbrRectangle со стороной три ячейки. | Neighborhood |
statistics_type (дополнительно) |
Тип вычисляемой статистики.
Тип статистики, вычисляемой по умолчанию, – MEAN (среднее). | String |
ignore_nodata (дополнительно) |
Устанавливает, игнорируются ли в вычислениях статистики значения NoData.
| Boolean |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster |
Выходной растр статистики по блокам. | Raster |
Пример кода
В этом примере вычисляется минимальное значение ячейки в каждой не-перекрывающейся окрестности кольца в входном растре GRID.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
nbr = NbrAnnulus(1, 3, "MAP")
outBlockStat = BlockStatistics("block", nbr, "MINIMUM", "")
outBlockStat.save("C:/sapyexamples/output/blockstat")
В этом примере вычисляется минимальное значение ячейки в каждой не-перекрывающейся окрестности кольца в входном растре GRID.
# Name: BlockStatistics_Ex_02.py
# Description: Calculates statistics for a nonoverlapping
# neighborhood.
# 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
inRaster = "block"
nbr = NbrAnnulus(1, 3, "MAP")
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute BlockStatistics
outBlockStat = BlockStatistics(inRaster, nbr, "MINIMUM", "NODATA")
# Save the output
outBlockStat.save("C:/sapyexamples/output/blockstat")