Генерация полигона по набору хаотичных точек

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
rolan
Новоприбывший
Сообщения: 12
Зарегистрирован: 10 дек 2011, 20:41
Репутация: 0

Генерация полигона по набору хаотичных точек

Сообщение rolan » 28 апр 2014, 18:58

Приветствую. Есть задачка, а на ум решений особо не приходит. Существует неким образом отфильтрованный набор устройств. В устройствах соответственно хранится их положение и прочие параметры. Необходимо нарисовать подложки для групп устройств по определенному параметру. Т.е. грубо говоря на карте 200 устройств, и они логически сгруппированы на 7 областей, вот эти области требуется выделить сглаженной кляксой. Выделение может строиться по различным параметрам (но они схожи и в принципе всегда подходящие устройства находятся рядом - т.е. нет пересечений этих клякс, хотя это и не проблема). Т.е. заведомо наделить некий абстрактный объект геометрией не вариант - создавать полигон надо на лету. Кто может какие алгоритмы подсказать?
Да, забыл указать - область должна быть несколько шире входящих устройств.

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

Re: Генерация полигона по набору хаотичных точек

Сообщение gamm » 28 апр 2014, 19:22

rolan писал(а):Кто может какие алгоритмы подсказать?
диаграмма Вороного, пересеченная с буфером. Для тонких ценителей - еще и слияние объектов по типу. Для чисто картинки - снести на растр, сделать дистанционное преобразование, и отрисовать изолинии.

rolan
Новоприбывший
Сообщения: 12
Зарегистрирован: 10 дек 2011, 20:41
Репутация: 0

Re: Генерация полигона по набору хаотичных точек

Сообщение rolan » 28 апр 2014, 19:52

gamm писал(а):
rolan писал(а):Кто может какие алгоритмы подсказать?
диаграмма Вороного, пересеченная с буфером. Для тонких ценителей - еще и слияние объектов по типу. Для чисто картинки - снести на растр, сделать дистанционное преобразование, и отрисовать изолинии.
Ох и занятнейшую задачку вы мне подкинули )) Прочел одну статью на тему этой диаграммы, стало яснее. Спасибо! Но тема не закрыта, буду рад услышать еще варианты :)

doujin
Активный участник
Сообщения: 163
Зарегистрирован: 28 июн 2012, 01:02
Репутация: 84
Откуда: Vladivostok

Re: Генерация полигона по набору хаотичных точек

Сообщение doujin » 29 апр 2014, 00:49

Построить для каждой группы выпуклую оболочку (convex hull), и построить буфер на некоторое расстояние уже от нее. Будет гладко и "несколько шире" входящих точек. По сложности примерно то же самое, что и в предложении gamm. Но это лишь в случае, если вам подходят именно выпуклые "кляксы".

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

Re: Генерация полигона по набору хаотичных точек

Сообщение gamm » 29 апр 2014, 04:21

rolan писал(а):Но тема не закрыта, буду рад услышать еще варианты :)
да не вопрос - если точек достаточно много, сносим на раст, делаем оценку плотности, и опять строим изолинии или раскрашиваем растр - получаем общее представление о местах "концентрации" разнотипных устройств. Хорошо смотрится видео, если есть временные ряды, и данных много.

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

Re: Генерация полигона по набору хаотичных точек

Сообщение gamm » 29 апр 2014, 04:23

doujin писал(а):Построить для каждой группы выпуклую оболочку (convex hull), и построить буфер на некоторое расстояние уже от нее. Будет гладко и "несколько шире" входящих точек. По сложности примерно то же самое, что и в предложении gamm. Но это лишь в случае, если вам подходят именно выпуклые "кляксы".
придется делать еще и буфер - товарищъ хочет, чтобы область была несколько больше. Кроме выпуклости получим пересечения ...

rolan
Новоприбывший
Сообщения: 12
Зарегистрирован: 10 дек 2011, 20:41
Репутация: 0

Re: Генерация полигона по набору хаотичных точек

Сообщение rolan » 01 май 2014, 15:36

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

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Генерация полигона по набору хаотичных точек

Сообщение KolesovDmitry » 02 май 2014, 14:42

Может, скользящим окном рассчитать плотность точек, а с плотностями можно много что сделать. И алгоритмы стандартные --- в любой приличной ГИС будут или руками легко пишутся.

Ответить

Вернуться в «Общие вопросы»

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

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