Η ανάρτηση αυτή περιλαμβάνει το περιεχόμενο από το workshop στο FOSSCOMM 2019 στην Λαμία. Για περισσότερες λεπτομέρειες ανατρέξτε στο github repository.
Στόχος του εργαστηρίου είναι η εξοικείωση του χρήστη με το πακέτο raster της R το οποίο προσφέρει την δυνατότητα ανάγνωσης ψηφιδωτών δεδομένων (raster) και επεξεργασίας τους (crop, reclassify, reproject, resample κτλ.).
Επιπλέον, θα επικεντρωθούμε στην κλάση raster stack η οποία δημιουργεί συστοιχίες ψηφιδωτών δεδομένων, κατάλληλες για χρονοσειρές και πολυκαναλικές εικόνες.
Η διεξαγωγή του εργαστηρίου θα γίνει μέσω παραδειγμάτων και με την χρήση δεδομένων νυκτερινών φώτων DMSP-OLS Nighttime Lights Time Series (Stable Lights Version 4). Θα προηγηθεί μια σύντομη παρουσίαση των βημάτων και της διαδικασίας ώστε οι χρήστες να αποκτήσουν μια σύντομη αλλά περιεκτική εικόνα του στόχου του εργαστηρίου και των δυνατοτητων που προσφέρει ο προγραμματισμός με την R.
Εγκατάσταση των απαραίτητων βιβλιοθηκών
install.packages(c("raster","ggplot2","rasterVis","rgdal","leaflet"),dependencies=T)
Εισαγωγή των απαραίτητων βιβλιοθηκών
library(raster)
library(ggplot2)
library(rasterVis)
library(rgdal)
library(leaflet)
Ορισμός Working directory
# Επιβεβαίωση ποιο είναι το working directory
getwd()
## [1] "/home/leonidas/Desktop/rworkshop"
Δημιουργία rasterStack Object
myfiles <- list.files(path=file.path("data","dmsp_ols"), pattern="*.stable_lights.tif$", full.names = TRUE)
s <- raster::stack(myfiles)
Οπτικοποίηση raster stack
plot(s)
Μερικές ιδιότητες του rasterStack
class(s) # ποιάς κλάσης ειναι object?
## [1] "RasterStack"
## attr(,"package")
## [1] "raster"
s@ncols # πλήθος στηλών
## [1] 1422
s@nrows # πλήθος γραμμών
## [1] 1122
s@extent # όρια γεωγραφικής έκτασης
## class : Extent
## xmin : 18.50417
## xmax : 30.35417
## ymin : 33.8625
## ymax : 43.2125
names(s) # όνομα των επιμέρους raster
## [1] "F101992.v4b_web.stable_lights" "F101993.v4b_web.stable_lights"
## [3] "F101994.v4b_web.stable_lights" "F121994.v4b_web.stable_lights"
## [5] "F121995.v4b_web.stable_lights" "F121996.v4b_web.stable_lights"
## [7] "F121997.v4b_web.stable_lights" "F121998.v4b_web.stable_lights"
## [9] "F121999.v4b_web.stable_lights" "F141997.v4b_web.stable_lights"
## [11] "F141998.v4b_web.stable_lights" "F141999.v4b_web.stable_lights"
## [13] "F142000.v4b_web.stable_lights" "F142001.v4b_web.stable_lights"
## [15] "F142002.v4b_web.stable_lights" "F142003.v4b_web.stable_lights"
## [17] "F152000.v4b_web.stable_lights" "F152001.v4b_web.stable_lights"
## [19] "F152002.v4b_web.stable_lights" "F152003.v4b_web.stable_lights"
## [21] "F152004.v4b_web.stable_lights" "F152005.v4b_web.stable_lights"
## [23] "F152006.v4b_web.stable_lights" "F152007.v4b_web.stable_lights"
## [25] "F162004.v4b_web.stable_lights" "F162005.v4b_web.stable_lights"
## [27] "F162006.v4b_web.stable_lights" "F162007.v4b_web.stable_lights"
## [29] "F162008.v4b_web.stable_lights" "F162009.v4b_web.stable_lights"
## [31] "F182010.v4d_web.stable_lights" "F182011.v4c_web.stable_lights"
## [33] "F182012.v4c_web.stable_lights" "F182013.v4c_web.stable_lights"
nlayers(s) # πλήθος raster
## [1] 34
res(s) # resolution των raster
## [1] 0.008333333 0.008333333
inMemory(s) # επαληθέουμε αν τα δεδομένα είναι στην μνήμη
## [1] FALSE
fromDisk(s) # επαληθέουμε αν τα δεδομένα είναι στον δίσκο
## [1] TRUE
Υποσύνολο από layers του stack
sub_s <- subset(s, c(1:5))
plot(sub_s)