Визначення кластерів у векторних точкових даних за допомогою QGIS?


34

У мене є векторний набір даних для широкосмугових точок передачі даних про сільські мережі (як швидко і т. Д.), І я хотів би вивчити, чи є скупчення точок з подібними характеристиками, та побудувати побудову полігонів, що їх охоплюють.

Наприклад, я можу мати 45 000 балів в одному наборі даних PostGIS, розподіленому по пейзажу. Я хочу визначити кластери, які лежать в межах х км один від одного і де швидкість нижче y kbps, і створити опуклі корпуси для кожного кластеру, що кваліфікується.

Чи є простий спосіб зробити це, наприклад, у QGIS?


3
Ви можете звернути увагу на характер широкосмугового зв’язку. Високі швидкості відбуватимуться в міських районах; промислові конгломерації; випромінювання вздовж проїжджих частин від СО, модемів та іншої інфраструктури волокон / кабелів / DSL; та транслювати з певних стільникових веж (залежно від вашого визначення "широкосмугового зв'язку"). Таким чином, високі швидкості будуть схожі на кластери, а нижчі швидкості будуть схожі на прогалини в кластерах. Зокрема, навряд чи опуклі корпуси будуть навіть пристойними характеристиками областей низької швидкості. Було б добре знати, як ви маєте намір інтерпретувати всі "кластери", які ви знайдете.
whuber

Дякую за допомогу. Я вивчаю більш сільські райони, де архітектура провідного широкосмугового зв’язку може спричинити більш незвичні ситуації через розподіл вуличних шаф та прямих живильних ліній на стовпах, а також географію районів, наприклад. В результаті ви знайдете кластери, які можуть стати корисною відправною точкою для розробки місцевих рішень і можуть бути важливим кроком у розробці стратегії. Насправді їх можна знайти навіть у міських районах, часто через промислову спадщину чи речі, такі як залізничні лінії та річки, які важко перетнути.
Адріан

Відповіді:


15

Я поєднав біти з декількох пропозицій і додав трохи власного і знайшов рішення, яке добре працює для мене - і все з QGis!

Я вперше запустив PostGis SELECT, щоб знайти точки, які мають правильні спільні атрибути і лежать в межах х км один від одного:

ВИБІРТЕ ДИСТАНЦІЯ s1.postcode, s1.the_geom, s1.gid ВІД широкосмугових_даних AS s1 ПРИЄДНАЙТЕ широкосмугових_даних AS s2 НА ST_DWithin (s1.the_geom, s2.the_geom, 1000) ДЕ s1.postcode! = S2.postcode AND s1.fastest_broadband <= 2000

(Досить прямо з дуже хорошої книжки PostGis в екшені Меннінга , лише додавши самостійне приєднання)

Потім я завантажив плагін ManageR Carson Farmer і імпортував шар. Звідси я стежив за запропонованим тут процесом кластеризації PAM і експортував результат у файл форми, на якому опуклі корпуси були обчислені за секунди за допомогою fTools (Carson дійсно обійдеться!).


Перше видання PostGIS в дії вийшло з друку. Ось посилання на друге видання manning.com/books/postgis-in-action-second-edition та посилання на перший розділ, який є безкоштовним manning-content.s3.amazonaws.com/download/a/… який є чудово підходить для отримання фотографії PostGIS
Мартін Хюгі

8

Хоча це не рішення QGIS, я особисто вибрав дослідницький аналіз із використанням SaTScan . Це швидко, добре документовано та широко застосовується, тому у вас не повинно виникнути проблем із запуском. 45k балів може зажадати деякої оперативної пам’яті.

Я не впевнений, чи може він читати безпосередньо з Postgres, але легко імпортує з dbf та текстових файлів.

Потім результати аналізу можна легко прочитати на Postgres або QGIS. Ви можете вирішити пошук кругових скупчень або еліпсів (це може бути корисно використовувати, якщо у ваших даних є певний тип населених пунктів, наприклад довгі форми міст / сіл у долинах тощо). Потім ви можете генерувати багатокутники або еліпси або відображати лише місця, які є членами кластерів.

Для швидкого попереднього перегляду результатів у Google Планета Земля ви також можете скористатися інструментом перетворення SaACcan NAACCR на інструмент перетворення Google Планета Земля .

Важливо - якщо ви вирішите запустити моделювання Монте-Карло (я думаю, що мінімум 99), ви також зможете розповісти щось про статистичну значимість своїх кластерів. Інтерпретація та обґрунтування цих кластерів буде ще одним питанням, оскільки воно обговорювалося в просторових науках протягом принаймні двох десятиліть (я думаю;).

Ви можете спробувати запустити чисто просторовий аналіз, шукаючи кластери високого, низького або високого та низького значення. Якщо у ваших даних є якісь часові атрибути * щоденні, щотижневі агрегації), я думаю, було б дуже цікаво запустити кілька просторово-часових моделей.


2
Виглядає добре - хороша відповідь
Mapperz

5

У SciPy є пакет кластеризації (для python), ви можете використовувати його в консолі python, написати простий плагін для цього або використовувати PL / python всередині postgis.

http://docs.scipy.org/doc/scipy/reference/cluster.html

Після аналізу просто використовуйте f-інструменти для створення опуклих корпусів.


Я простий користувач з дуже малим досвідом роботи python, але я погляну - я знаю, що мені потрібно вчитися!
Адріан

чи враховує кластеризація SciPy просторових зв’язків між точками?
radek

1
Ви просто додаєте ще два коваріати для координат x і y своєї точки.
Хосе

5

Там є схожий приклад того , що ви хочете зробити з допомогою R і GRASS тут . Як альтернатива, ви можете скористатися інструментами кластеризації scipy, як пропонується, а потім виконати обчислення опуклого корпусу за допомогою цього методу .


3

Ви можете спробувати плагін Ftools. Vector> Geoprocessing Tools> Convex Hulls.

Існує можливість, щоб Create convex hulls based on input fieldпараметр поля введення повинен походити з атрибутів вхідних точок.


Дякую за допомогу. Біт опуклих корпусів створить багатокутники, але він не визначає, чи існують кластери чи де вони можуть бути. Мені дуже хотілося б спочатку знайти спосіб поєднання точок з подібними характеристиками протягом х км один від одного. Я здогадуюсь, що мені потрібно запустити якийсь сценарій, який однозначно визначає існування кластерів та оновлює додаткове поле в таблиці postgis для членів кожного кластеру. Наприклад, створити триангуляцію Делоне і відфільтрувати всі точки, де сторони трикутників перевищують х км, але я не маю уявлення, як це зробити
Адріан,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.