Удаление границ (Spatial Analyst)

Доступно с лицензией Spatial Analyst.

Сводка

Сглаживает границу между зонами растра.

Более подробно о том, как работает инструмент Удаление границ

Иллюстрация

Иллюстрация инструмента Удаление границ
OutRas = BoundaryClean(InRas1)

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

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

  • Инструмент применяет методы математической морфологии расширения (дилатации) и сокращения (эрозии) при сглаживании границ (Серра, 1982). Каждая входная ячейка оценивается с использованием ее ближайших ортогональных и диагональных соседей.

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

  • Приоритет может быть основан либо на значении зон, либо на размере зон. Параметр Тип сортировки (в Python sort_type) определяет используемый тип сортировки.

    Метод по умолчанию, Не сортировать (в Python NO_SORT), оценивает приоритет на основе значения зон. Ячейки из зон с большими значениями будут иметь более высокий приоритет для расширения в зоны с меньшими значениями. Размер зон не учитывается.

    Размер или общую площадь зон можно использовать для сортировки по приоритету. Размер определяется количеством ячеек, составляющих каждую зону. При установке настройки По убыванию (в Python DESCEND) зоны сортируются по размеру в порядке убывания. Зоны с большей общей площадью будут иметь приоритет при расширении в зоны с меньшими площадями. При установке настройки По возрастанию (в Python ASCEND) верно обратное: зоны с меньшей общей площадью будут иметь приоритет для расширения в зоны с большей общей площадью.

  • Степень сглаживания контролируется параметром Запустить расширение и сокращение дважды (в Python number_of_runs), который определяет, сколько раз будет выполняться процесс расширения и сокращения.

    Если настройка не отмечена (в Python ONE_WAY), процесс расширения и сокращения выполняется один раз. При отмеченной настройке (в Python TWO_WAY) процесс расширения и сокращения выполняется дважды, что приводит к дополнительной степени сглаживания границ зоны.

    Дополнительные сведения об алгоритме см. в разделе Удаление границ в Сглаживание краев зоны с Удалением границ и Фильтром большинства.

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

  • Литература:

    • Serra, J. Image Analysis and Mathematical Morphology, Academic Press, London 1982.
  • См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.

Синтаксис

BoundaryClean(in_raster, {sort_type}, {number_of_runs})
ParameterОбъяснениеТип данных
in_raster

Входной растр, для которого будет сглажена граница между зонами.

Должен быть целочисленным.

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

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

Сортировка может быть основана на значении зоны или размере зоны.

  • NO_SORTПриоритет определяется значением зоны. Размер зон не учитывается. Зоны с большими значениями имеют более высокий приоритет при сглаживании, чем зоны с меньшими значениями. Это значение по умолчанию
  • DESCENDЗоны сортируются в по убыванию в соответствии с их размером. Зоны с общей площадью меньшего размера будут иметь более высокий приоритет при расширении в зоны с большими по общей площади зонами. Этот параметр имеет тенденцию устранять или уменьшать преобладание ячеек из меньших зон в сглаженном выходе.
  • ASCENDЗоны сортируются в порядке возрастания размера. Зоны с общей площадью большего размера будут иметь более высокий приоритет при расширении в зоны с меньшими по общей площади зонами. Этот параметр имеет тенденцию сохранять или увеличивать преобладание ячеек из меньших зон в сглаженном выходе.
String
number_of_runs
(Дополнительный)

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

  • TWO_WAYОперации расширения-сокращения выполняются дважды. Первый раз операция выполняется в соответствии с выбранным типом сортировки. Второй раз операции расширения-сокращения выполняются с обратным приоритетом. Это значение по умолчанию
  • ONE_WAYОперации расширения-сокращения выполняются один раз в соответствии с типом сортировки.
Boolean

Значение отраженного сигнала

NameОбъяснениеТип данных
out_raster

Выходной генерализованный растр.

Границы между зонами во входных данных будут сглажены.

Выходные данные всегда будут целочисленными.

Raster

Пример кода

BoundaryClean, пример 1 (окно Python)

В этом примере сглаживается граница между зонами в порядке убывания с двойным выполнением.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
OutBndCln = BoundaryClean("land", "DESCEND", "TWO_WAY")
OutBndCln.save("c:/sapyexamples/output/bndcln_des2")
BoundaryClean, пример 2 (автономный скрипт)

В этом примере сглаживается граница между зонами в порядке убывания с двойным выполнением.

# Name: BoundaryClean_Ex_02.py
# Description: Smoothes the boundary between zones 
#              by expanding and shrinking it.
# 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 = "land"

# Execute BoundaryClean
OutBndCln = BoundaryClean(inRaster, "ASCEND", "TWO_WAY")

# Save the output 
OutBndCln.save("c:/sapyexamples/output/bndcln_asc2")

Информация о лицензиях

  • Basic: Требуется Spatial Analyst
  • Standard: Требуется Spatial Analyst
  • Advanced: Требуется Spatial Analyst

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