Выборка и укрупнение полигонов
-
- Участник
- Сообщения: 70
- Зарегистрирован: 19 янв 2012, 14:48
- Репутация: 6
Выборка и укрупнение полигонов
Есть
100500 разнообразных полигонов с площадями от десятков кв. метров до нескольких кв. километров.
Проблема
Нужно объединить мелкие полигоны с соседними полигонами таким образом, чтобы не осталось полигонов мельче одного кв.км. Желательно друг с другом объединять именно мелкие полигоны, в случае если по соседству нет мелких, тогда можно вести присоединение мелкого к крупному.
Надо именно соседние полигоны объединять, выборка всей мелочи чохом и слияние не подходят. То есть нужна проверка на размер площади и соседство.
В питон не умею Если есть вариант решения проблемы через табличный конструктор запросов, было бы самое то. В нем вроде есть геометрические команды, но разобраться, как их применить для решения задачи, не смог.
100500 разнообразных полигонов с площадями от десятков кв. метров до нескольких кв. километров.
Проблема
Нужно объединить мелкие полигоны с соседними полигонами таким образом, чтобы не осталось полигонов мельче одного кв.км. Желательно друг с другом объединять именно мелкие полигоны, в случае если по соседству нет мелких, тогда можно вести присоединение мелкого к крупному.
Надо именно соседние полигоны объединять, выборка всей мелочи чохом и слияние не подходят. То есть нужна проверка на размер площади и соседство.
В питон не умею Если есть вариант решения проблемы через табличный конструктор запросов, было бы самое то. В нем вроде есть геометрические команды, но разобраться, как их применить для решения задачи, не смог.
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: Выборка и укрупнение полигонов
Выложите фрагмент шейпа полигонов.
-
- Участник
- Сообщения: 70
- Зарегистрирован: 19 янв 2012, 14:48
- Репутация: 6
Re: Выборка и укрупнение полигонов
Площадь в метрах. Меньше миллиона метров надо объединить с соседями
- oldbay
- Участник
- Сообщения: 53
- Зарегистрирован: 14 июл 2015, 11:46
- Репутация: 19
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Выборка и укрупнение полигонов
Я ведь правильно понимаю что это обработка массива точек по Воронову?
Может поработать именно с точками - уменьшить их количество с использованием той же кластеризации?
Может поработать именно с точками - уменьшить их количество с использованием той же кластеризации?
-
- Участник
- Сообщения: 70
- Зарегистрирован: 19 янв 2012, 14:48
- Репутация: 6
Re: Выборка и укрупнение полигонов
Да, все верно, это диаграммы Вороного. Результатом нужна карта плотности событий. Поскольку события измеряются в количестве на кв.км, то диаграммы размера меньше 1 кв.км приводят к завышенным показателям плотности.
Теплокарты, интерполяция через взвешивание точек в радиусе кв.км, или создание регулярной сетки плотности (например, растра с пикселем 1 кв.км) в силу определенных причин не подходят. Плотность событий на основе диаграмм Вороного самый точный вариант, если бы не проблема с мелкими полигонами.
Не совсем понял, как можно кластеризовать исходные точки. Их число уменьшать не надо - они представляют собой случившееся событие.
Теплокарты, интерполяция через взвешивание точек в радиусе кв.км, или создание регулярной сетки плотности (например, растра с пикселем 1 кв.км) в силу определенных причин не подходят. Плотность событий на основе диаграмм Вороного самый точный вариант, если бы не проблема с мелкими полигонами.
Не совсем понял, как можно кластеризовать исходные точки. Их число уменьшать не надо - они представляют собой случившееся событие.
-
- Гуру
- Сообщения: 5287
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Выборка и укрупнение полигонов
записать площад в точки и кластеризовать
- oldbay
- Участник
- Сообщения: 53
- Зарегистрирован: 14 июл 2015, 11:46
- Репутация: 19
- Откуда: Санкт-Петербург
- Контактная информация:
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Выборка и укрупнение полигонов
нужно ввести метрику для соседей, типа расстояние между центроидами (исходными точками) умножить на корень из суммы площадей. Потом построить минимальное остовое дерево (minimal spaning tree) посмотреть гистограмму длин ребер, и резать по каком-то порогу, либо по числу оставшихся, либо типа того. Это если руками - но навернякака в Питоне есть готовые функции. Соседей искать - это триангуляция Делоне (двойственная к Вороному), она уже есть, площади есть, осталось дерево построить.
P.S. Но вообще постановка странная, для построения карты плотности напускаем Kernel Density Estimation с ядром Епанечникова, с учетом краевых эффектов, и получаем сетку, которую раскрашиваем, как новогоднюю елку..
P.S. Но вообще постановка странная, для построения карты плотности напускаем Kernel Density Estimation с ядром Епанечникова, с учетом краевых эффектов, и получаем сетку, которую раскрашиваем, как новогоднюю елку..
-
- Участник
- Сообщения: 70
- Зарегистрирован: 19 янв 2012, 14:48
- Репутация: 6
Re: Выборка и укрупнение полигонов
Интересная идея, спасибо. Всем остальным тоже спасибо за обсуждение. Буду пытаться пробовать двигаться в этом направлении.gamm писал(а): ↑25 фев 2019, 17:37нужно ввести метрику для соседей, типа расстояние между центроидами (исходными точками) умножить на корень из суммы площадей. Потом построить минимальное остовое дерево (minimal spaning tree) посмотреть гистограмму длин ребер, и резать по каком-то порогу, либо по числу оставшихся, либо типа того. Это если руками - но навернякака в Питоне есть готовые функции. Соседей искать - это триангуляция Делоне (двойственная к Вороному), она уже есть, площади есть, осталось дерево построить.
Интерполяция приводит к огрублению точности данных. Хочу получить максимально точную плотность событий, при том на нерегулярной основе, чтобы не было привязки к пикселам растра. Или я неправильно понял и речь не шла о растре?
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
-
- Участник
- Сообщения: 70
- Зарегистрирован: 19 янв 2012, 14:48
- Репутация: 6
Re: Выборка и укрупнение полигонов
С помощью какого модуля это делается в QGIS или GRASS, не подскажете? Мне кажется, в любом случае, получится огрубление, хотя бы до статпогрешности. Диаграммы Вороного мне нравятся тем, что величины площадей остаются абсолютными без сглаживания данных и статметодов. Есть событие, есть его конкретная площадь, без полутонов. Статдостоверность плотности это хорошо, но предполагает вероятность ошибки, а с диаграммами все как в аптеке. Тем не менее, метод любопытен.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Выборка и укрупнение полигонов
это иллюзия, у события нет площади. Есть латентный непрерывный процесс, которые задает вероятность событий, и есть его проявление в виде реализации событий. Интерес представляет только латентный процесс (если события случайны). Но дело хозяйской.
А инструменты ищите по ключевым словам, в Питоне все наверняка есть. Скорее всего есть и в виде модулей (это те же "тепловые карты", только там не всегда правильно все делается).
Кто сейчас на конференции
Сейчас этот форум просматривают: _taras_ и 12 гостей