У меня есть векторный набор данных сельских широкополосных точек данных (как быстро и т. Д.), И я хотел бы изучить, существуют ли кластеры точек с похожими характеристиками, и построить окружающие их многоугольники.
Например, у меня может быть 45 000 точек в одном наборе данных PostGIS, распределенном по ландшафту. Я хочу идентифицировать кластеры, которые лежат в пределах x км друг от друга и где скорость ниже y кбит / с, и производить выпуклые корпуса для каждого подходящего кластера.
Есть ли простой способ сделать это в QGIS, например?
qgis
qgis-processing
clustering
Адриан
источник
источник
Ответы:
Я соединил биты из нескольких предложений и добавил немного своего собственного и нашел решение, которое хорошо работает для меня - и все изнутри QGis!
Сначала я запустил PostGis SELECT, чтобы найти точки, которые имеют правильные общие атрибуты и находятся в пределах x км друг от друга:
(Практически прямо из очень хорошей книги Мэннинга « PostGis in Action» , только добавление самостоятельного соединения)
Затем я загрузил плагин ManageR от Carson Farmer и импортировал слой. Отсюда я последовал за предложенный процесс кластеризации РАМ здесь , и экспортировать результат в файл формы, на которой Выпуклые шелуха были рассчитаны в секундах , используя fTools (Carson делает обойти!).
источник
Хотя это не решение QGIS, я лично выбрал бы некоторый предварительный анализ с использованием SaTScan . Это быстро, хорошо документировано и широко применяется, поэтому у вас не должно возникнуть проблем с запуском. 45k очков может потребовать некоторого объема ОЗУ.
Я не уверен, что он может читать напрямую из Postgres, но легко импортирует из dbf и текстовых файлов.
Результаты анализа могут быть легко прочитаны обратно в Postgres или QGIS. Вы можете решить искать круговые скопления или эллипсы (может быть полезно использовать, если в ваших данных есть определенный тип поселений, например, длинные города / деревни в долинах и т. Д.). Затем вы можете создавать полигоны или эллипсы или отображать только те места, которые являются членами кластеров.
Для быстрого просмотра результатов в Google Планета Земля вы также можете использовать инструмент преобразования SaTScan в Google Планета Земля NAACCR .
Важно отметить, что если вы решите запустить симуляции Монте-Карло (думаю, минимум 99), вы также сможете рассказать кое-что о статистической значимости ваших кластеров. Интерпретация и обоснование этих кластеров будет еще одной проблемой, поскольку она обсуждалась в пространственных науках, по крайней мере, в течение последних двух десятилетий (я думаю;).
Вы можете попытаться запустить чисто пространственный анализ в поисках кластеров с высокими, низкими или высокими значениями. Если у вас есть некоторые временные атрибуты в ваших данных * ежедневно, еженедельные агрегации), то я думаю, что было бы действительно интересно запустить некоторые модели пространства-времени.
источник
SciPy имеет пакет кластеризации (для python), вы можете использовать его в консоли python, написать простой плагин для этого или использовать PL / python внутри postgis.
http://docs.scipy.org/doc/scipy/reference/cluster.html
После анализа просто используйте f-инструменты для создания выпуклых оболочек.
источник
Там есть похожий пример того , что вы хотите сделать с помощью R и GRASS здесь . В качестве альтернативы вы можете использовать инструменты кластеризации scipy, как это было предложено, а затем выполнить вычисления выпуклой оболочки, используя этот метод .
источник
Вы можете попробовать плагин Ftools.
Vector
>Geoprocessing Tools
>Convex Hulls
.Существует опция для
Create convex hulls based on input field
, параметр поля ввода должен исходить из атрибутов ваших точек ввода.источник