Ekstrakcja funkcji pokrycia terenu ze zdjęć satelitarnych

14

Interesuje mnie niedrogie lub otwarte oprogramowanie do tworzenia warstw GIS pokrywających ziemię, które wykorzystują algorytmy ekstrakcji spektralnej i teksturalnej. W przeszłości korzystałem z PCI Geomatica, ENVI i Feature Analyst VLS; jednak te rozwiązania są nieco poza moim zakresem cen, jakieś zalecenia dotyczące oprogramowania?

grafika 21
źródło

Odpowiedzi:

8

Jeśli dobrze cię rozumiem, szukasz nadzorowanej procedury klasyfikacji. Niektóre podstawy teoretyczne: http://rst.gsfc.nasa.gov/Sect1/Sect1_17.html

Z pewnością jest to możliwe dzięki trawie: http://grass.osgeo.org/wiki/Image_classification#Supervised_classification_2

Jako alternatywę możesz również spojrzeć na sagę (nie mówię, że jest lepiej, ja po prostu lepiej to wiem), która również ładnie gra z qgis i R. Jest kilka filmów demonstrujących to na tej stronie: http: // www.uni-koblenz-landau.de/landau/fb7/umweltwissenschaften/landscape-ecology/Teaching/geostat (pobierz pliki danych, aby uzyskać prezentacje).

We wszystkich programach gis należy zdefiniować liczbę punktów odniesienia lub wielokątów w jednym typie terenu, które są następnie ekstrapolowane na resztę obszaru. Oto przykład klasyfikacji użytkowania gruntów:

wprowadź opis zdjęcia tutaj

W rzeczywistości, jeśli narysowałeś wielokąty treningowe w dowolnym programie gis, możesz użyć R do przewidywania. Zrób nakładkę ze swoimi siatkami, a następnie użyj dowolnego systemu przewidywania, który ci się podoba (np. Rpart, jeśli chcesz drzew klasyfikacyjnych). Więcej informacji w tej książce na stronie 222: http://www.lulu.com/product/file-download/a-practical-guide-to-geostatistic-mapping/14938111

Jest o wiele więcej do powiedzenia, zestawy treningowe powinny być reprezentatywne dla twojego obszaru badań (być może nawet lepiej byłoby wygenerować losowe punkty w R i je sklasyfikować). Powinieneś także starannie dobierać zestawy danych pomocniczych i możesz chcieć wygenerować nowe, jeśli np. Tekstura jest ważną własnością.

-

Jeśli wszystko, co chcesz zrobić, to wyodrębnić regiony lub funkcje (bez ich klasyfikacji), algorytm segmentacji jest bardziej prawdopodobny. Jeden przykład (zaimplementowany w SAGA GIS) omówiono w tym dokumencie: http://mirror.transact.net.au/pub/sourceforge/s/project/sa/saga-gis/SAGA%20-%20Documentation/GGA115/gga115_03 .pdf

johanvdw
źródło
Dziękuję bardzo za odpowiedź. Wygląda na to, że dokładnie wiesz, jak osiągnąć moje cele. Byłbym bardzo wdzięczny, gdybyś bardziej szczegółowo wyjaśnił swoją odpowiedź. Interesują mnie szczególnie te kroki, dzięki którym mogę nauczyć program, które funkcje są poprawne, a które błędne, dopóki wszystkie (lub większość) właściwych funkcji nie zostanie wyodrębniona.
NetConstructor.com
Podaj więcej informacji (w pytaniu, a nie w komentarzach), jakie dokładnie funkcje chcesz wyodrębnić. Poza tym: jeśli sygnał nakłada się (patrz link nasa) różnych rodzajów użytkowania gruntów (lub cokolwiek, co mapujesz), automatyczna klasyfikacja nie będzie działać dobrze.
johanvdw
3

Byłbyś w stanie to zrobić za pomocą GRASS.

Najpierw będziesz pracować z danymi rastrowymi:

Wreszcie będziesz manipulować danymi wektorowymi . v.db.select i v.class pomogą ci.

simo
źródło
1
To podejście wykorzystuje tylko jeden raster - co zwykle jest niewystarczające.
johanvdw
Mówi o regionie (jeden obraz lub wielokrotność). W każdym razie obrazy można łączyć.
simo