Raport

Cel ćwiczenia

Celem ćwiczenia jest wykorzystanie danych sagelitarnych oraz lotniczych i na ich podstawie dokonanie oceny ich dokładności. W tym celu zostaną wykorzystane następujące rastry: lotnicze2.tif, sentinel2.tif oraz landsat8.tif

Opis danych

W ramach tego projektu użyte zostały:

• rastry: lotnicze2.tif, sentinel2.tif oraz landsat8.tif

• plik „dana_ref.shp”

Obszar badań

Obszarem badań jest miasto Post Falls i jego okolice w północno-zachodniej części stanu Idaho.

Kolejne kroki przetworzeń

Na samym początku należy zainstalować oraz wczytać pakiet: raster, sf, plotly oraz RStoolbox.

Następnie wczytujemy rastry lotnicze2.tif, sentinel2.tif oraz landsat8.tif wykorzystując funkcję stack().

lotnicze = stack("lotnicze2.tif")

sentinel = stack("sentinel2.tif")

landsat = stack("landsat8.tif")

Kolejnym krokiem jest zainstalowanie i wczytanie pakietu RStoolbox. Zawiera on szereg narzędzi przydatnych w teledetekcji m.in.: superClass(), który zostanie wykorzystany w dalszej części.

Potem wczytujemy plik „dane_ref.shp” (za pomocą funkcji shapefile() z pakietu raster), zawierający poligony reprezentujące 5 klas pokrycia terenu: wodę, gleby, lasy, niską roślinność oraz zabudowę.

poligony = shapefile("dane_ref.shp")

Potem wykonujemy klasyfikacje przu użuciu funkcji superClass. Do jej wykonania należy się posłużyć: rastrem, danymi treningowymi (trainData) oraz zmienną mówiąca nam o klasie pokrycia terenu (responseCol). Klasyfikację wykonujemy dla każdego z 3 rastrów.

klasyfikacja1 = superClass(landsat, dane_tr, responseCol = "klasa", model = "rf")
klasyfikacja2 = superClass(sentinel, dane_tr, responseCol = "klasa", model = "rf")
klasyfikacja3 = superClass(lotnicze, dane_tr, responseCol = "klasa", model = "rf")

Do ich wizualizacji można posłużyć się funkcją plot().

Następnym krokiem jest wczytanie pliku “dane_wal”.

dane_val = shapefile("dane_wal.shp")

Po jego wczytaniu wykorzystujemy funkcję superClass. W tym przypadku podstawiamy poligon “dane_wal.shp” jako dane valData. Pozwoli nam wtedy na ocenę dokładności.

klasyfikacja1_1 = superClass(landsat, dane_tr, dane_val, responseCol = "klasa", model = "rf")
klasyfikacja1_2 = superClass(sentinel, dane_tr, dane_val, responseCol = "klasa", model = "rf")
klasyfikacja1_3 = superClass(lotnicze, dane_tr, dane_val, responseCol = "klasa", model = "rf")

Do ich wizualizacji można posłużyć się funkcją plot().

Wizualizacja

Lista plotów:

  1. landsat

  2. sentinel

  3. zdjęcie lotnicze

Warto w tym przypadku zwrócić uwagę na rożdzielczość tych rastrów. Zarówno rastry pozyskane z Landsata i Sentinela mają rozdzielczość 30x30, natomiast dane lotnicze 1x1. Ma to swoje przełożenie na efekt końcowy, gdyż te ostatnie są bardziej dokładne i precyzyjne.