Выборка и укрупнение полигонов

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Vedmed
Участник
Сообщения: 70
Зарегистрирован: 19 янв 2012, 14:48
Репутация: 6

Выборка и укрупнение полигонов

Сообщение Vedmed » 25 фев 2019, 11:44

Есть
100500 разнообразных полигонов с площадями от десятков кв. метров до нескольких кв. километров.

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

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

В питон не умею :( Если есть вариант решения проблемы через табличный конструктор запросов, было бы самое то. В нем вроде есть геометрические команды, но разобраться, как их применить для решения задачи, не смог.

lam
Гуру
Сообщения: 1018
Зарегистрирован: 01 авг 2012, 13:55
Репутация: 241

Re: Выборка и укрупнение полигонов

Сообщение lam » 25 фев 2019, 11:47

Выложите фрагмент шейпа полигонов.

Vedmed
Участник
Сообщения: 70
Зарегистрирован: 19 янв 2012, 14:48
Репутация: 6

Re: Выборка и укрупнение полигонов

Сообщение Vedmed » 25 фев 2019, 12:04

Example.zip
(74.39 КБ) 264 скачивания
Площадь в метрах. Меньше миллиона метров надо объединить с соседями

Аватара пользователя
oldbay
Участник
Сообщения: 53
Зарегистрирован: 14 июл 2015, 11:46
Репутация: 19
Откуда: Санкт-Петербург
Контактная информация:

Re: Выборка и укрупнение полигонов

Сообщение oldbay » 25 фев 2019, 12:36

Я ведь правильно понимаю что это обработка массива точек по Воронову?
Может поработать именно с точками - уменьшить их количество с использованием той же кластеризации?

Vedmed
Участник
Сообщения: 70
Зарегистрирован: 19 янв 2012, 14:48
Репутация: 6

Re: Выборка и укрупнение полигонов

Сообщение Vedmed » 25 фев 2019, 14:18

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

trir
Гуру
Сообщения: 5287
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Выборка и укрупнение полигонов

Сообщение trir » 25 фев 2019, 14:24

записать площад в точки и кластеризовать

Аватара пользователя
oldbay
Участник
Сообщения: 53
Зарегистрирован: 14 июл 2015, 11:46
Репутация: 19
Откуда: Санкт-Петербург
Контактная информация:

Re: Выборка и укрупнение полигонов

Сообщение oldbay » 25 фев 2019, 14:55

Vedmed писал(а):
25 фев 2019, 14:18
Не совсем понял, как можно кластеризовать исходные точки.
Думаю что кластеризовать можно по дистанции между точками, а вот полигоны принадлежащие точкам попавшим в один кластер потом объединить.

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

Re: Выборка и укрупнение полигонов

Сообщение gamm » 25 фев 2019, 17:37

нужно ввести метрику для соседей, типа расстояние между центроидами (исходными точками) умножить на корень из суммы площадей. Потом построить минимальное остовое дерево (minimal spaning tree) посмотреть гистограмму длин ребер, и резать по каком-то порогу, либо по числу оставшихся, либо типа того. Это если руками - но навернякака в Питоне есть готовые функции. Соседей искать - это триангуляция Делоне (двойственная к Вороному), она уже есть, площади есть, осталось дерево построить.

P.S. Но вообще постановка странная, для построения карты плотности напускаем Kernel Density Estimation с ядром Епанечникова, с учетом краевых эффектов, и получаем сетку, которую раскрашиваем, как новогоднюю елку..

Vedmed
Участник
Сообщения: 70
Зарегистрирован: 19 янв 2012, 14:48
Репутация: 6

Re: Выборка и укрупнение полигонов

Сообщение Vedmed » 26 фев 2019, 08:30

gamm писал(а):
25 фев 2019, 17:37
нужно ввести метрику для соседей, типа расстояние между центроидами (исходными точками) умножить на корень из суммы площадей. Потом построить минимальное остовое дерево (minimal spaning tree) посмотреть гистограмму длин ребер, и резать по каком-то порогу, либо по числу оставшихся, либо типа того. Это если руками - но навернякака в Питоне есть готовые функции. Соседей искать - это триангуляция Делоне (двойственная к Вороному), она уже есть, площади есть, осталось дерево построить.
Интересная идея, спасибо. Всем остальным тоже спасибо за обсуждение. Буду пытаться пробовать двигаться в этом направлении.
gamm писал(а):
25 фев 2019, 17:37
Но вообще постановка странная, для построения карты плотности напускаем Kernel Density Estimation с ядром Епанечникова, с учетом краевых эффектов, и получаем сетку, которую раскрашиваем, как новогоднюю елку..
Интерполяция приводит к огрублению точности данных. Хочу получить максимально точную плотность событий, при том на нерегулярной основе, чтобы не было привязки к пикселам растра. Или я неправильно понял и речь не шла о растре?

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

Re: Выборка и укрупнение полигонов

Сообщение gamm » 26 фев 2019, 12:52

Vedmed писал(а):
26 фев 2019, 08:30
Или я неправильно понял
неправильно. Речь не о интерполяции, а о построении правильной (статистически достоверной) оценки плотности, с последующим представлением ее на растре. Который может быть сколь угодно детальным.

Vedmed
Участник
Сообщения: 70
Зарегистрирован: 19 янв 2012, 14:48
Репутация: 6

Re: Выборка и укрупнение полигонов

Сообщение Vedmed » 26 фев 2019, 13:30

gamm писал(а):
26 фев 2019, 12:52
неправильно. Речь не о интерполяции, а о построении правильной (статистически достоверной) оценки плотности, с последующим представлением ее на растре.
С помощью какого модуля это делается в QGIS или GRASS, не подскажете? Мне кажется, в любом случае, получится огрубление, хотя бы до статпогрешности. Диаграммы Вороного мне нравятся тем, что величины площадей остаются абсолютными без сглаживания данных и статметодов. Есть событие, есть его конкретная площадь, без полутонов. Статдостоверность плотности это хорошо, но предполагает вероятность ошибки, а с диаграммами все как в аптеке. Тем не менее, метод любопытен.

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

Re: Выборка и укрупнение полигонов

Сообщение gamm » 26 фев 2019, 14:26

Vedmed писал(а):
26 фев 2019, 13:30
Есть событие, есть его конкретная площадь, без полутонов.
это иллюзия, у события нет площади. Есть латентный непрерывный процесс, которые задает вероятность событий, и есть его проявление в виде реализации событий. Интерес представляет только латентный процесс (если события случайны). Но дело хозяйской.

А инструменты ищите по ключевым словам, в Питоне все наверняка есть. Скорее всего есть и в виде модулей (это те же "тепловые карты", только там не всегда правильно все делается).

Ответить

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

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

Сейчас этот форум просматривают: _taras_ и 12 гостей