GeoDjango: есть ли готовый способ генерировать кластеры точек?

Я пытаюсь вычислить кластеры по набору точек в Python, используя GeoDjango.

Задача: по заданному набору точек вывести набор кластеров этих точек. (я могу заранее указать количество кластеров/размер кластера/расстояние для упрощения)

Есть несколько решений в Интернете для кластеризации, так что это хорошо известная проблема. Я думал, что GeoDjango справится с такими проблемами «из коробки», но неясно, как — я искал документацию GeoDjango, Google и несколько других мест, но ничего не нашел.

Прежде чем я разверну свое собственное кластерное решение, я решил спросить, есть ли простой способ сделать это с помощью GEOS или другого пакета в GeoDjango.


person vaughnkoch    schedule 27.05.2010    source источник


Ответы (3)


GeoDjango не имеет встроенной поддержки кластеризации; эта операция обычно не предоставляется каким-либо известным мне ГИС-приложением с открытым исходным кодом, которое вы будете использовать с GeoDjango.

Несколько сайтов, использующих Django/GeoDjango (например, everyblock.com), опубликовали свой метод кластеризации, но эта поддержка не встроена в GeoDjango.

Как правило, функциональные возможности, предоставляемые этими приложениями, основаны на базовой поддержке базы данных. GEOS, библиотека, лежащая в основе PostGIS, и общее «современное состояние» (по крайней мере, в мире, отличном от Java), не имеет какого-либо кластерного API или поведения.

person Christopher Schmidt    schedule 15.06.2010

Как упомянул Кристофер Шмидт, кажется, что в GeoDjango нет готовой поддержки кластеризации. Однако, если кто-то еще столкнется с этой проблемой, вот что я сделал:

  • Установлены mlpy и numpy
  • Использован алгоритм иерархической кластеризации HCluster.
  • Написал функцию-оболочку для преобразования объектов GEOS Point в матрицу, которую может понять mlpy.

Документация по адресу: https://mlpy.fbk.eu/data/doc/clustering.html

person vaughnkoch    schedule 16.06.2010

Если кто наткнется на эту тему:

https://github.com/biodiv/anycluster

Я открыл исходный код своего кластерного приложения geodjango. После его установки вам просто нужно несколько строк javascript, и он кластеризуется. Вы можете легко изменить некоторые настройки и использовать собственную графику. Я также добавил несколько примеров использования на github...

person biodiv    schedule 28.03.2013