Фильтр большинства (Spatial Analyst)

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

Сводка

Замещает значения ячеек растра, основываясь на значениях большинства соприкасающихся смежных ячеек.

Более подробно о том, как работает инструмент Фильтр большинства

Иллюстрация

Иллюстрация инструмента Фильтр большинства
OutRas = MajorityFilter(InRas1)

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

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

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

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

  • Если задано значение Допуска перемещения (Replacement threshold), равное Половина (Half), и два значения встречаются как равные половины, замещения значения не произойдет в том случае, если значение обрабатываемой ячейки совпадает с значением одной из половинок. Опция Половина приведет к большей фильтрации, чем опция Большинство.

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

  • После нескольких запусков инструмента Фильтр большинства выходной растр будет стабилизирован (больше меняться не будет).

  • См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.

Синтаксис

MajorityFilter(in_raster, {number_neighbors}, {majority_definition})
ParameterОбъяснениеТип данных
in_raster

Входной растр, к которому будет применен фильтр на основе большинства смежных соседних ячеек.

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

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

Определяет количество соседних ячеек, которое будет использовано в матрице фильтра.

  • FOUR Матрица фильтра будет состоять из четырех прямых (ортогональных) ячеек, соседних с текущей. Используется по умолчанию.
  • EIGHT Ядром фильтра будут восемь ячеек, ближайших к текущей ячейке (окно 3 на 3 ячейки).
String
majority_definition
(Дополнительный)

Задает количество смежных (пространственно связанных) ячеек, которые должны иметь одинаковое значение, чтобы произошло замещение значения.

  • MAJORITY Большинство ячеек должно иметь одно и то же значение, и эти ячейки должны быть смежными. Три из четырех или пять из восьми смежных ячеек должны иметь одно и то же значение.
  • HALF Половина ячеек должна иметь одно и то же значение, и эти ячейки должны быть смежными. Две из четырех или четыре из восьми смежных ячеек должны иметь одно и то же значение. Эта опция приведет к большему сглаживанию.
String

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

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

Выходной отфильтрованный растр.

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

Raster

Пример кода

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

В этом примере фильтруется входной растр на основе всех 8 соседей, где больший эффект сглаживания будет иметь то же значение для замещения путем запроса половины фильтров.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outMajFilt = MajorityFilter("land", "EIGHT", "HALF")
outMajFilt.save("c:/sapyexamples/output/outmajfilt")
MajorityFilter, пример 2 (автономный скрипт)

В этом примере фильтруется входной растр на основе всех 8 соседей, где больший эффект сглаживания будет иметь то же значение для замещения путем запроса половины фильтров.

# Name: MajorityFilter_Ex_02.py
# Description: Replaces cells in a raster based on the 
#              majority of their contiguous neighboring cells.
# 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 MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")

# Save the output 
outMajFilt.save("c:/sapyexamples/output/majfilter")

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

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

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