Функция Удаление границ используется для генерализации границ зон растра. Границы сглаживаются путем растяжения и сокращения границ между зонами.
Генерализация границ
Функция Удаление границ генерализует или упрощает растры путем сглаживания границ между зонами. Он применяет метод расширения и сокращения для вычисления значения каждой ячейки, используя значения ее ближайших соседей. Доступно несколько опций, управляющих влиянием значений ячеек зон на сглаживание. Степень сглаживания также можно контролировать.
Сортировать по приоритету
Процесс начинается с сортировки зон во входном растре по определенному приоритету. Приоритет используется для каждой ячейки входных данных, чтобы определить, какое значение зоны из соседних ячеек может заменить значение обрабатываемой ячейки.
Приоритет сортировки может быть основан на значениях зон или на размере зон. Параметр Тип сортировки определяет какой приоритет сортировки будет использоваться. При использовании настройки по умолчанию Не сортировать зоны с большими значениями имеют более высокий приоритет и расширяются в зоны с меньшими значениями. При использовании настройки По убыванию зоны с большей площадью имеют приоритет расширения в зоны с меньшими площадями. При использовании настройки По возрастанию зоны с меньшей площадью имеют приоритет расширения в зоны с большими площадями.
Степень сглаживания
Степень сглаживания контролируется тем, сколько раз выполняется процесс расширения и сокращения: один или два раза. По умолчанию задано два раза, что приводит к большему сглаживанию.
Процесс расширения и сокращения
Процесс расширения и сокращения оценивает непосредственных соседей каждой обрабатываемой ячейки в соответствии с типом приоритета сортировки, установленным в параметре Тип сортировки.
Далее за расширением следует сокращение. Этот процесс будет выполнен один раз, если параметр Запустить расширение и сокращение дважды не отмечен. Если параметр отмечен, процесс расширения и сокращения будут выполняться два раза.
Дополнительные сведения об алгоритмах, используемых в процессе, приведены ниже.
Одностороннее расширение и сокращение
При использовании настройки односторонней обработки процесс расширения и сокращения выполняется один раз.
В ходе расширения происходит следующее:
- Оценивается каждая соседняя ячейка для каждой обрабатываемой ячейки входного растра.
- Для каждой соседней ячейки оценивается, меньше ли значение ее приоритета, чем значение приоритета обрабатываемой ячейки. Если это так, входной обрабатываемой ячейке назначается приоритет внутреннего соседа. Внутренний расширенный растр обновляется новым значением приоритета и анализ переходит к следующей соседней ячейке.
В ходе сокращения происходит следующее:
- Оценивается каждая соседняя ячейка для каждой обрабатываемой ячейки входного растра, используя значение внутреннего расширенного растра, созданного в результате первого прохода.
- Если приоритет соседней ячейки равен приоритету обрабатываемой ячейки, значение ячейки из исходного входного растра копируется в выходной растр. Если условие не выполняется ни для одной из соседних ячеек, значение ячейки из расширенного растра копируется в выходной растр.
Двустороннее расширение и сокращение
Если параметр Запустить расширение и сокращение дважды отмечен (в Python параметр number_of_runs задан как TWO_WAY), выполняется второй процесс расширения и сокращения, но на этот раз приоритеты меняются местами. Выходные данные первого прохода операции используются как входные данные второго прохода.
В первом проходе расширения используется та же логика, которая использовалась в ходе расширения при одностороннем выполнении инструмента.
В первом проходе сокращения используется та же логика, что использовалась в ходе сокращения при одностороннем выполнении инструмента.
Во втором проходе расширения происходит следующее:
- Оценивается каждая соседняя ячейка для каждой обрабатываемой ячейки внутреннего растра, созданного в результате первого процесса расширения и сокращения.
- Для каждой соседней ячейки оценивается, больше ли значение ее приоритета, чем значение приоритета обрабатываемой ячейки. Если это так, входной обрабатываемой ячейке назначается приоритет внутреннего соседа. Внутренний расширенный растр обновляется новым значением приоритета и анализ переходит к следующей соседней ячейке.
В ходе второго сокращения происходит следующее:
- Оценивается каждая соседняя ячейка для каждой обрабатываемой ячейки внутреннего расширенного растра из предыдущего шага.
- Для каждой соседней ячейки, если значение приоритета соседней ячейки меньше или больше значения обрабатываемой ячейки в расширенном растре, значение обрабатываемой ячейки копируется из исходного растра в выходной.
- Если значение приоритета соседней ячейки равно значению обрабатываемой ячейки в расширенном растре, значение обрабатываемой ячейки копируется из расширенного растра в выходной.
Работа с NoData
Входные ячейки NoData имеют самый низкий приоритет, если процесс расширения и сокращения выполняется один раз, или во втором проходе, если процесс расширения и сокращения выполняется дважды. Во втором проходе двусторонней сортировки ячейки NoData будут иметь наивысший приоритет.
Пример
Чтобы показать влияние различных параметров на выходные данные, рассмотрим входной растр ниже.
Будут показаны выходные данные для всех настроек параметра Тип сортировки, для обеих настроек параметра Запустить расширение и сокращение дважды (отмечено или не отмечено).
Если параметр Тип сортировки установлен как Не сортировать, выходные растры будут следующими:
Если параметр Тип сортировки установлен как По убыванию, выходные растры будут следующими:
Если параметр Тип сортировки установлен как По возрастанию, выходные растры будут следующими: