Требуется консультант QGis3
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 11 ноя 2023, 23:22
- Репутация: 0
- Откуда: СПб
Требуется консультант QGis3
В рамках научной работы занимаюсь обработкой данных в QGis. Требуется специалист, который мог-бы подсказать, помочь разобраться в технических вопросах. Оплата по договоренности.
-
- Участник
- Сообщения: 52
- Зарегистрирован: 30 апр 2012, 21:48
- Репутация: 14
- Откуда: Астрахань
Re: Требуется консультант QGis3
По QGIS в интернете очень много уроков. Любой вопрос можете задавать здесь, а можете, скажем, мне в личку. Обрисуйте более конкретно задачу.
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 11 ноя 2023, 23:22
- Репутация: 0
- Откуда: СПб
Re: Требуется консультант QGis3
Действительно уроков очень много. В течении 3 лет с нуля QGis осваиваю сам, но сейчас пытаюсь решить такую задачу:
Имеется территория города. В ее границах точечный слой отображает распределение событий. Требуется разделить территорию на заданное число полигонов так, чтобы каждый полигон имел равное количество событий, при этом желательно, чтобы площадь полигонов была минимальной и компактной.
Имеется территория города. В ее границах точечный слой отображает распределение событий. Требуется разделить территорию на заданное число полигонов так, чтобы каждый полигон имел равное количество событий, при этом желательно, чтобы площадь полигонов была минимальной и компактной.
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: Требуется консультант QGis3
Если не найдется готовое решение (поищите у буржуев формирование избирательных участков из кварталов переписи с заданными ограничениями по составу избирателей), то можно подумать.
В целом решение зависит от нескольктих факторов:
1) требуемая точность решения (насколько число точек в разных частях может отличаться)
2) количество точек и полигонов (порядки - десятки, сотни, тысячи, миллионы)
3) делать это нужно много раз автоматом и быстро, регулярно раз в интерактиве, один раз в интерактиве.
Чтобы лучше понимать задачу, ответьте на вопросы, а лучше выложите пример точек (в обезличенных координатах, отображенных в единичный квадрат) и требуемое число частей.
Если делать надо один раз, и частей немного, то можно построить диаграмму Вороного, обрезать по границе города, на глаз нарезать полигоны (разрезая существующие, начиная с города), идентифицировать их, и присвоить ID полигонов ячейкам Вороного. А потом считать, где точек лишнего, а где не хватает (запросами SQL), и перекидывать руками (менять ID у соседей). Если заморочиться, то можно найти соседей, а потом решать балансовую систему уравнений для перекидывания, сколько откуда куда перекинуть. Как-то так
В целом решение зависит от нескольктих факторов:
1) требуемая точность решения (насколько число точек в разных частях может отличаться)
2) количество точек и полигонов (порядки - десятки, сотни, тысячи, миллионы)
3) делать это нужно много раз автоматом и быстро, регулярно раз в интерактиве, один раз в интерактиве.
Чтобы лучше понимать задачу, ответьте на вопросы, а лучше выложите пример точек (в обезличенных координатах, отображенных в единичный квадрат) и требуемое число частей.
Если делать надо один раз, и частей немного, то можно построить диаграмму Вороного, обрезать по границе города, на глаз нарезать полигоны (разрезая существующие, начиная с города), идентифицировать их, и присвоить ID полигонов ячейкам Вороного. А потом считать, где точек лишнего, а где не хватает (запросами SQL), и перекидывать руками (менять ID у соседей). Если заморочиться, то можно найти соседей, а потом решать балансовую систему уравнений для перекидывания, сколько откуда куда перекинуть. Как-то так
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 11 ноя 2023, 23:22
- Репутация: 0
- Откуда: СПб
Re: Требуется консультант QGis3
1) Требуемая точность умеренная. Отличия могут быть, но чем точнее, тем лучше.
2) Количество точек явлений от десятков (выборка жителей по параметру) до нескольких миллионов (население города)
3) Сейчас я как раз делю явления руками, передвигая границы полигонов, и глядя статистикой перераспределение. Технически несложно, но некрасивое решение. Как раз в связи с регулярностью задачи хочется создать автоматическую возможность.
Разбивку на полигоны Вороного я уже обдумывал. Для меня сложность пока в том, что все точки привязаны к домам, и в одном доме может быть много явлений. Значит полигоны "Воронова" должны увеличиваться по весу конкретного дома (из за количества явлений в этом доме) Все-таки разделить границами требуется не дома, а именно явления.
Не нашел, как отправить личное сообщение, наверное по электронке, но тоже не могу найти Вашу.
2) Количество точек явлений от десятков (выборка жителей по параметру) до нескольких миллионов (население города)
3) Сейчас я как раз делю явления руками, передвигая границы полигонов, и глядя статистикой перераспределение. Технически несложно, но некрасивое решение. Как раз в связи с регулярностью задачи хочется создать автоматическую возможность.
Разбивку на полигоны Вороного я уже обдумывал. Для меня сложность пока в том, что все точки привязаны к домам, и в одном доме может быть много явлений. Значит полигоны "Воронова" должны увеличиваться по весу конкретного дома (из за количества явлений в этом доме) Все-таки разделить границами требуется не дома, а именно явления.
Не нашел, как отправить личное сообщение, наверное по электронке, но тоже не могу найти Вашу.
-
- Активный участник
- Сообщения: 107
- Зарегистрирован: 09 окт 2009, 16:49
- Репутация: 10
Re: Требуется консультант QGis3
Bori$, мне кажется стандартными средствами тут ничего не сделать. Нужно городить какой-то свой алгоритм, на питоне писать модуль для QGIS. Возможно как основу можно использовать алгоритмы построения диаграммы Вороного.
можно представлять это не как 1 точку, а как облако точек по кол-ву явлений. просто раздвигать точки вокруг центра по спиралив одном доме может быть много явлений
-
- Завсегдатай
- Сообщения: 318
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 137
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Требуется консультант QGis3
Надо искать способ кластеризации заданного количества точек (событий), ближайших, с сохранением результата в виде точки-центра. А потом полигоны Вороного.
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: Требуется консультант QGis3
Нет ответа про число частей-полигонов, и стабильность разбиения (число, примерное расположение)
Готовое вряд ли найдете, пока понятно только, что мы имеем дело не с точками, а с домами, которые точки с весом, и нужно равенство сумм весов точек. Т.е с построением диаграммы Вороного проблем нет.
Еще вариант, если разбиение более-менее устойчиво, то брать прототип его, считать, и двигать границы. Для этого нужна целевая функция, включающая "красоту" полигонов (например, близость к окружности, квадрату или шестигранной гайке).
Но это точно не QGIS, тут программу писать надо. Типа накладываем на город заданное число шестигранных гаек (сот, у них хорошее смыкание), и начинаем двигать границы по диаграмме Вороного, суммируя веса. Там всегда есть граница в терминах границ ячеек Вороного, и мы знаем, сколько прибудет/убудет, если перекинуть одну ячейку. Вычисляем, как поменяется целевая функция, и напускаем на все это что-то типа artificial annealing для максимизации общей красоты. Прототип можно вообще на прямоугольной сетке сделать и поиграться.
Готовое вряд ли найдете, пока понятно только, что мы имеем дело не с точками, а с домами, которые точки с весом, и нужно равенство сумм весов точек. Т.е с построением диаграммы Вороного проблем нет.
Еще вариант, если разбиение более-менее устойчиво, то брать прототип его, считать, и двигать границы. Для этого нужна целевая функция, включающая "красоту" полигонов (например, близость к окружности, квадрату или шестигранной гайке).
Но это точно не QGIS, тут программу писать надо. Типа накладываем на город заданное число шестигранных гаек (сот, у них хорошее смыкание), и начинаем двигать границы по диаграмме Вороного, суммируя веса. Там всегда есть граница в терминах границ ячеек Вороного, и мы знаем, сколько прибудет/убудет, если перекинуть одну ячейку. Вычисляем, как поменяется целевая функция, и напускаем на все это что-то типа artificial annealing для максимизации общей красоты. Прототип можно вообще на прямоугольной сетке сделать и поиграться.
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 11 ноя 2023, 23:22
- Репутация: 0
- Откуда: СПб
Re: Требуется консультант QGis3
gamm, да, идею правильно уловили. Как связаться с Вами напрямую?
-
- Завсегдатай
- Сообщения: 318
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 137
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Требуется консультант QGis3
Соты - вообще отличная штука. Позволяют собрать на единице площади города (в соте), в свои атрибуты, статистику (количество, сумма площадей, средние, медианы, концентрации, плотности и т.п.), из совершенно разных данных. Из зданий - площадь жилого фонда и жителей, из биг-дата сотового оператора - количество звонков, с карт - протяженность тротуаров, с навигатора - плотность лавочек и урн, с интернет-карт - наличие, характер и количество магазинов и сервисов. И, мечта аналитика, открывается возможность поиска коррелят в такой нормализованной пространственной информации, к примеру как связана активность абонентов сотовой связи с количеством урн и остановок и с Вашими событиями. Сами соты при этом отлично позволяют все визуализировать, сравнивать территории (вот здесь все хорошо, а чем отличается от вон там). Несложно генерализуются (укрупняются). Используются в куче индексов, таких как Индекс процветания городов (ООН Хабитат). К сожалению, в этой теме не прикрепляются иллюстрации.
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: Требуется консультант QGis3
а смысл - я от подобного программирования давно отошел, раздаю исключительно бесплатные советы, по настроениюgamm, да, идею правильно уловили. Как связаться с Вами напрямую?
описанного нормальному молодому программисту (с классическим образованием) достаточно, чтобы написать программу. Если выложите типовой пример данных, и у меня будет время и настроение, попробую прикидку набросать, на прямоугольной сетке.
Последний раз редактировалось gamm 15 ноя 2023, 11:23, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 4064
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1061
- Ваше звание: программист
- Откуда: Казань
Re: Требуется консультант QGis3
это совсем другая задача ...
-
- Новоприбывший
- Сообщения: 7
- Зарегистрирован: 11 ноя 2023, 23:22
- Репутация: 0
- Откуда: СПб
Re: Требуется консультант QGis3
Вчера идея пришла, разбросать в пределах общей границы нужное количество случайных точек, а потом найти требуемое количество ближайших к ним явлений, присвоить им соответствующие атрибуты, а уже после этого разграничить группы - дело техники. Вопрос том, какой инструмент найдет заданное число ближайших точек?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей