In questo post si vuole mostrare come è possibile utilizzare R per la classificazione multispettarle dell immagini satellitari utilizzando l’algoritmo RandomForests, che è attualmente uno dei migliori algoritmi per la classificazione e regressione delle immagini. Sebbene la loro interpretazione è difficile, RandomForests è ampiamente utilizzato per la sua abilità nel classificare grandi quantità di dati con accuratezza.

Questo post prende ispirazione da http://amsantac.co/blog/en/2015/11/28/classification-r.html. Nella parte inferiore verrà mostrato come importare le mappe Landsat in R e come estrarre i dati pixel per pixel per analizzare e utilizzare RandomForest.

Importare i dati in R

Tutti i miei dati sono contenuti nella cartella : /home/pierluigi/R_Landsat_classification/LE71910302000357EDC00 Per lo scopo dell’esercizio si effettuerà una riclassificazine dell’uso del suolo di un 6 bande ottenuto da Landsat /preso il 22 dicembre 2000. that has been processed to surface reflectance, as shown in a previous post in my blog.

Si carichino dapprima le librerie necessarie per il tutorial:

library(rgdal)
library(raster)
library(caret)

Now let’s import the Landsat image into R as a RasterBrick object using the brick function from the ‘raster’ package. Also let’s replace the original band names (e.g., ‘X485.0.Nanometers’) with shorter ones (‘B1’ to ‘B5’, and ‘B7’):

LSraster=paste0("LE71910302000357EDC00_B",c(1:5,7),".TIF")
img <- stack(LSraster)
imgbrick = brick(img)
names(img) <- c(paste0("B", 1:5, coll = ""), "B7")  

ritagliamo il raster

rgbCrop <- c(263507,286088, 4760238,4774828)
img_crop <- crop(imgbrick, rgbCrop)

Visualizzazione della mappa

Falso colore 1

Per migliorare l’interpretabilità delle immagini satellitari, in molti casi vengono utilizzate immagini a falsi colori. Nella maggior parte dei casi, un’immagine a falsi colori utilizza almeno un canale a infrarossi. Il campo dell’infrarosso è molto utile per l’interpretazione della superficie terrestre, perchè consiste di energia riflessa ed emessa.

L’infrarosso non è visibile all’occhio umano, ma rivela numerose informazioni. Le piante in particolare riflettono una quantità molto maggiore di energia nell’infrarosso vicino rispetto al campo del visibile dello spettro elettromagnetico. Persino lo stato di salute di una pianta può essere dedotto dall’intensità.

Possiamo fare una visualizzazione RGB dell’immagine Landsat utilizzando il comando plotRGB, per esempio, la composizione falso colore usa RGB 4:5:3 (Near infrared - Shortwave infrarred - Red). Si utilizza l’espressione img * (img >= 0) per convertire i valori negativi a zero

## Loading required package: raster
## Loading required package: sp
##      Length       Class        Mode 
##     2195748 RasterBrick          S4
plotRGB(img_crop * (img_crop >= 0), r = 4, g = 5, b = 3, stretch='lin')