Mam wektorowy zestaw danych wiejskich punktów danych szerokopasmowych (jak szybko itp.) I chciałbym zbadać, czy istnieją skupiska punktów o podobnych cechach, i wykreślić otaczające je wielokąty.
Na przykład mogę mieć 45 000 punktów w jednym zestawie danych PostGIS rozłożonym na krajobraz. Chcę zidentyfikować klastry, które leżą w odległości x km od siebie i których prędkość jest mniejsza niż y kb / s, oraz stworzyć wypukłe kadłuby dla każdej kwalifikującej się grupy.
Czy istnieje na przykład prosty sposób na zrobienie tego w QGIS?
qgis
qgis-processing
clustering
Adrian
źródło
źródło
Odpowiedzi:
Połączyłem fragmenty z kilku sugestii i dodałem trochę własnych i znalazłem rozwiązanie, które działa dobrze dla mnie - i wszystko z poziomu QGis!
Najpierw uruchomiłem PostGis SELECT, aby znaleźć punkty, które mają właściwe wspólne atrybuty i leżą w odległości x km od siebie:
(Prawie prosto z bardzo dobrej książki ManGinga w PostGis w akcji , dodając tylko samodzielne dołączenie)
Następnie załadowałem wtyczkę Carson Farmer's ManageR i zaimportowałem warstwę. Odtąd śledziłem sugerowany tutaj proces klastrowania PAM i wyeksportowałem wynik do pliku kształtu, w którym wypukłe kadłuby zostały obliczone w ciągu kilku sekund za pomocą fTools (Carson się porusza!).
źródło
Chociaż nie jest to rozwiązanie QGIS, osobiście wybrałbym analizę eksploracyjną za pomocą SaTScan . Jest szybki, dobrze udokumentowany i szeroko stosowany, więc nie powinieneś mieć problemów z uruchomieniem. 45 000 punktów może jednak wymagać trochę pamięci RAM.
Nie jestem pewien, czy może czytać bezpośrednio z Postgres, ale łatwo importuje z plików dbf i plików tekstowych.
Wyniki analizy można następnie łatwo odczytać z powrotem do Postgres lub QGIS. Możesz zdecydować się na wyszukiwanie skupisk kołowych lub elips (przydatne może być użycie, jeśli w danych występują określone typy osad, na przykład miasta / wioski o długich kształtach w dolinach itp.). Następnie można wygenerować wielokąty lub elipsy lub wyświetlić tylko lokalizacje będące członkami klastrów.
Aby szybko wyświetlić podgląd wyników w Google Earth, możesz również użyć narzędzia SaTScan NAACCR do Google Earth Conversion Tool .
Co ważne - jeśli zdecydujesz się uruchomić symulacje Monte Carlo (wydaje mi się, że min. 99), będziesz mógł także powiedzieć coś o statystycznym znaczeniu twoich klastrów. Interpretacja i uzasadnienie tych klastrów będzie kolejną kwestią, ponieważ była dyskutowana w naukach przestrzennych przynajmniej przez ostatnie dwie dekady (tak myślę;).
Możesz spróbować przeprowadzić analizę czysto przestrzenną w poszukiwaniu klastrów o wysokich, niskich lub hagh i niskich wartościach. Jeśli masz jakieś atrybuty czasowe w swoich danych * codziennych, cotygodniowych agregacjach), myślę, że byłoby naprawdę interesujące uruchomić niektóre modele czasoprzestrzenne.
źródło
SciPy ma pakiet klastrowy (dla Pythona), możesz go użyć w konsoli Pythona, napisać prostą wtyczkę, aby to zrobić lub użyć PL / python wewnątrz Postgis.
http://docs.scipy.org/doc/scipy/reference/cluster.html
Po analizie wystarczy użyć f-narzędzi, aby utworzyć wypukłe kadłuby.
źródło
Jest podobny przykład tego, co chcesz zrobić za pomocą R i trawy tutaj . Alternatywnie możesz użyć narzędzi do tworzenia klastrów Scipy'ego zgodnie z sugestią, a następnie wykonać obliczenia wypukłego kadłuba przy użyciu tej metody .
źródło
Możesz wypróbować wtyczkę Ftools.
Vector
>Geoprocessing Tools
>Convex Hulls
.Istnieje opcja
Create convex hulls based on input field
, parametr pola wejściowego powinien pochodzić z atrybutów punktów wejściowych.źródło