Закрытие отверстий в мультиполигоне

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Закрытие отверстий в мультиполигоне

Сообщение _taras_ » 27 ноя 2024, 14:59

Имеется мультиполигон с классами и значениями площади. Нужно удалить все полигоны менее 1 га и закрыть дыры. Ежели с поиском и удалением все понятно, то команда "удалить отверстия" работает ежели указать удалить всё.
Подскажите как можно избавиться от них?

Константин Силкин
Завсегдатай
Сообщения: 447
Зарегистрирован: 21 мар 2012, 07:37
Репутация: 67
Откуда: Воронеж

Re: Закрытие отверстий в мультиполигоне

Сообщение Константин Силкин » 27 ноя 2024, 15:25

Добрый день! Можно уточнить суть вопроса? А то "понятно – не понятно", а что понятно – не понятно

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Закрытие отверстий в мультиполигоне

Сообщение gamm » 27 ноя 2024, 15:30

написать программу, лучше на R, там топология понятнее. Потом пройтись циклом по всем кольцам в мультиполигоне, и выкинуть лишнее. Признак hole там есть.

Константин Силкин
Завсегдатай
Сообщения: 447
Зарегистрирован: 21 мар 2012, 07:37
Репутация: 67
Откуда: Воронеж

Re: Закрытие отверстий в мультиполигоне

Сообщение Константин Силкин » 27 ноя 2024, 15:45

Писал такие вещи для бразильского проекта. Могу поделиться

_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Re: Закрытие отверстий в мультиполигоне

Сообщение _taras_ » 27 ноя 2024, 16:57

Константин Силкин писал(а):
27 ноя 2024, 15:25
Добрый день! Можно уточнить суть вопроса? А то "понятно – не понятно", а что понятно – не понятно
Мультиполигон построен командой полигоны изолиний. Затем каждому диапазону значений был присвоен свой класс и затем командой объединение по признаку сгруппированы по классам. В таблице атрибутов были удалены полигоны площадью менее 1 га. Вот эти дырки и надобно включить в окружающий ее полигон.
Константин Силкин писал(а):
27 ноя 2024, 15:45
Писал такие вещи для бразильского проекта. Могу поделиться
Буду очень признателен. Я пытался сделать в R, но не получилось.

Константин Силкин
Завсегдатай
Сообщения: 447
Зарегистрирован: 21 мар 2012, 07:37
Репутация: 67
Откуда: Воронеж

Re: Закрытие отверстий в мультиполигоне

Сообщение Константин Силкин » 27 ноя 2024, 17:10

"Вот эти дырки и надобно включить в окружающий ее полигон" – тоже не понятно. Откуда дырки-то взялись? Их прежде не было, а потом их удалили…
Но не суть. Я писал в R скрипт по работе с полигонами, у которых есть дырки. В модели данных бразильского проекта это лесные массивы с полянами внутри них. Скрипт перебирает полигоны, если есть в них дырки, то контролируется их площадь. Если дырки невелики, то они залечиваются. В противном случае сохраняются для дальнейшего учёта. После этого ищется полюс недоступности полигона лесного массива для оценки максимальной удалённости лесной чащи от пугающих зверьё факторов.
В вашем случае поиск дырок вероятно может быть полезен. Но по-прежнему суть вашей проблемы от меня ускользает.
Я поищу своей скрипт. Мне не жалко. Было бы полезно только…

Константин Силкин
Завсегдатай
Сообщения: 447
Зарегистрирован: 21 мар 2012, 07:37
Репутация: 67
Откуда: Воронеж

Re: Закрытие отверстий в мультиполигоне

Сообщение Константин Силкин » 27 ноя 2024, 17:31

Нашёл скрипт. Дело было 5 лет назад, а комментировать я никогда код не любил. В общем, самому сейчас уже надо вспоминать его логику. Зазиповал файл скрипта, а то тут нельзя с расширением R файлы загружать. Если это то, что вам надо, то для разборок пишите в личку
Вложения
HoleHealing_v05.zip
(4.93 КБ) 104 скачивания

_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Re: Закрытие отверстий в мультиполигоне

Сообщение _taras_ » 27 ноя 2024, 17:50

Константин Силкин писал(а):
27 ноя 2024, 17:10
В вашем случае поиск дырок вероятно может быть полезен. Но по-прежнему суть вашей проблемы от меня ускользает.
Это заготовка для ландшафтного анализа.... Для него желательно убрать мелкие полигоны (например до 0,5 га), т.к. это явные ошибки, артефакты. На рисунках показал, что хочу получить
Вложения
scrin.jpg
scrin.jpg (105.84 КБ) 2049 просмотров
scrin_2.jpg
scrin_2.jpg (99.31 КБ) 2049 просмотров

Константин Силкин
Завсегдатай
Сообщения: 447
Зарегистрирован: 21 мар 2012, 07:37
Репутация: 67
Откуда: Воронеж

Re: Закрытие отверстий в мультиполигоне

Сообщение Константин Силкин » 27 ноя 2024, 17:58

Ну, понятно, т.е. мелкие дырки залечить. Мой скрипт так и называется "Залечивание дырок". Это там делается, ну и ещё кое-что по ходу

AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Закрытие отверстий в мультиполигоне

Сообщение AlexRomantsov » 28 ноя 2024, 09:16

QGIS, Анализ, Вектор-геометрия - Удалить отверстия - параметр Меньше чем. СК слоя для тестов - метрическая, отработало корректно. На градусных не пробовал

AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Закрытие отверстий в мультиполигоне

Сообщение AlexRomantsov » 28 ноя 2024, 09:23

Ну да, корректно только в проецируемых СК, если широты- долготы в слое - снесет все дыры ( 1 га, 100*100, в градусах равен половине земного шара)

_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Re: Закрытие отверстий в мультиполигоне

Сообщение _taras_ » 28 ноя 2024, 10:40

AlexRomantsov писал(а):
28 ноя 2024, 09:16
QGIS, Анализ, Вектор-геометрия - Удалить отверстия - параметр Меньше чем. СК слоя для тестов - метрическая, отработало корректно. На градусных не пробовал
Эту хохмочку я знаю... (С) И у меня система метрическая и эту команду пользовал... И мультипиолигон на отдельные составляющие и слои разносил... Но у меня срабатывала если параметр Меньше чем равен нулю.
Скорее всего сложную геометрию он обрабатывает плохо. Вроде такое поведение даже набаг-треке отметили....

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Закрытие отверстий в мультиполигоне

Сообщение gamm » 28 ноя 2024, 14:48

_taras_ писал(а):
28 ноя 2024, 10:40
Скорее всего сложную геометрию он обрабатывает плохо.
выложите пример полигона, на котром не работает, и порог по площади - я гляну.

AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Закрытие отверстий в мультиполигоне

Сообщение AlexRomantsov » 29 ноя 2024, 05:28

_taras_ писал(а):
28 ноя 2024, 10:40
Скорее всего сложную геометрию он обрабатывает плохо
Возможно, не в сложной геометрии дело, а в топологических ошибках границ, таких как петли. Нужен пример.

_taras_
Активный участник
Сообщения: 228
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 16
Откуда: Киев

Re: Закрытие отверстий в мультиполигоне

Сообщение _taras_ » 29 ноя 2024, 12:14

Доброго времени! Спасибо всем откликнувшимся.
Создал два архива. Первый полный слой с мелкими полигонами, которые надобно удалить и затянуть дырки.
https://disk.yandex.ru/d/t2bjUVNn8J9hhw
Второй - один класс.
Вложения
class_mask.zip
(66.73 КБ) 91 скачивание

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя