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

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

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

Удаление границ

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

Сортировать по приоритету

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

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

Степень сглаживания

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

Процесс расширения и сокращения

Процесс расширения и сокращения оценивает непосредственных соседей каждой обрабатываемой ячейки в соответствии с типом приоритета сортировки, установленным в параметре Тип сортировки.

Далее за расширением следует сокращение. Этот процесс будет происходить один раз, если не отмечен параметр Запустить расширение и сокращение дважды (в Python параметр number_of_runs задан как ONE_WAY). Если параметр отмечен (в Python параметр number_of_runs задан как TWO_WAY), процесс расширения и сокращения будут выполняться два раза.

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

Одностороннее расширение и сокращение

При использовании настройки односторонней обработки процесс расширения и сокращения выполняется один раз.

В ходе расширения происходит следующее:

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

В ходе сокращения происходит следующее:

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

Двустороннее расширение и сокращение

Если параметр Запустить расширение и сокращение дважды отмечен (в Python параметр number_of_runs задан как TWO_WAY), выполняется второй процесс расширения и сокращения, но на этот раз приоритеты меняются местами. Выходные данные первого прохода операции используются как входные данные второго прохода.

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

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

Во втором проходе расширения происходит следующее:

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

В ходе второго сокращения происходит следующее:

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

Работа с NoData

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

Пример

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

Пример входного растра для инструмента Удаление границ

Пример входного растра для инструмента Удаление границ. Ячейки NoData показаны серым.

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

Если параметр Тип сортировки установлен как Не сортировать, выходные растры будут следующими:

Пример выходных данных для настроек Не сортировать и Одностороннее (не отмечено)
Одностороннее (не отмечено)
Пример выходных данных для настроек Не сортировать и Двустороннее (отмечено)
Двустороннее (отмечено)

Если параметр Тип сортировки установлен как По убыванию, выходные растры будут следующими:

Пример выходных данных для настроек По убыванию и Одностороннее (не отмечено)
Одностороннее (не отмечено)
Пример выходных данных для настроек По убыванию и Двустороннее (отмечено)
Двустороннее (отмечено)

Если параметр Тип сортировки установлен как По возрастанию, выходные растры будут следующими:

Пример выходных данных для настроек По возрастанию и Одностороннее (не отмечено)
Одностороннее (не отмечено)
Пример выходных данных для настроек По возрастанию и Двустороннее (отмечено)
Двустороннее (отмечено)

Фильтр большинства

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

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

Фильтр большинства, иллюстрация 1
OutRas = MajorityFilter(InRas1)

На рисунке ниже инструмент Фильтр большинства применен с использованием фильтра ближайших восьми ячеек, требуя, чтобы как минимум половина (четыре из восьми ячеек) были одинаковыми, прежде чем ячейка изменит свое значение. Обратите внимание, эффект сглаживания больше.

Фильтр большинства, иллюстрация 2
OutRas = MajorityFilter(InRas1, eight, half)

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