@@ -1,5 +1,6 @@ |
#!/usr/bin/env Rscript |
|
+suppressMessages(library(stringi)) |
suppressMessages(library(raster)) |
suppressMessages(library(rgdal)) |
suppressMessages(library(sp)) |
@@ -15,49 +16,57 @@ prefix |
# @Execute |
exec <- function() { |
|
- dir <- paste(path,prefix,sep="/") |
+ dirlist <- list.dirs(paste(path,prefix,sep="/")) |
+ dirlist <- dirlist[which(stri_detect_fixed(dirlist,"_allRealizations"))] |
|
- dirName <- basename(dir) |
- dirPathQO <- paste(dir,"_quickOverview/",sep="/") |
- dirPathZO <- paste(dir,"_zOthers/",sep="/") |
- fileList <- list.files(paste(dir,"_allRealizations",sep="/"),pattern="*.tif") |
+ numberOfCores <- detectCores() |
+ cl <- makeCluster(numberOfCores, type="FORK") |
+ registerDoParallel(cl) |
|
- list <- c() |
- for (file in fileList) { |
- tmpRaster <- raster(paste(dir,"_allRealizations",file,sep="/")) |
- list <- c(list, tmpRaster) |
- } |
+ foreach(completeDir=dirlist, .packages=c('raster','rgdal')) %dopar% { |
+ dir <- dirname(completeDir) |
+ dirName <- basename(dir) |
+ dirPathQO <- paste(dir,"_quickOverview/",sep="/") |
+ dirPathZO <- paste(dir,"_zOthers/",sep="/") |
+ fileList <- list.files(paste(dir,"_allRealizations",sep="/"),pattern="*.tif") |
|
- mapBrick <- brick(list) |
- rm(list, fileList) |
+ list <- c() |
+ for (file in fileList) { |
+ tmpRaster <- raster(paste(dir,"_allRealizations",file,sep="/")) |
+ list <- c(list, tmpRaster) |
+ } |
|
- outNameQO <- paste(dirPathQO,dirName,sep="") |
- if (!dir.exists(dirPathQO)) { |
- dir.create(dirPathQO, recursive=T) |
- } |
- outNameZO <- paste(dirPathZO,dirName,sep="") |
- if (!dir.exists(dirPathZO)) { |
- dir.create(dirPathZO, recursive=T) |
- } |
+ mapBrick <- brick(list) |
+ rm(list, fileList) |
|
- r_median <- calc(mapBrick, function(x){summary(x)[3]}) |
- writeRaster(r_median,paste(outNameQO,"_median",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- r_mean <- calc(mapBrick, function(x){summary(x)[4]}) |
- writeRaster(r_mean,paste(outNameQO,"_mean",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- r_min <- calc(mapBrick, function(x){summary(x)[1]}) |
- writeRaster(r_min,paste(outNameQO,"_min",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- r_max <- calc(mapBrick, function(x){summary(x)[6]}) |
- writeRaster(r_max,paste(outNameQO,"_max",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- r_1q <- calc(mapBrick, function(x){summary(x)[2]}) |
- writeRaster(r_1q,paste(outNameQO,"_1q",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- r_3q <- calc(mapBrick, function(x){summary(x)[5]}) |
- writeRaster(r_3q,paste(outNameQO,"_3q",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- |
- r_sd <- calc(mapBrick, function(x){sd(x, na.rm=T)}) |
- writeRaster(r_sd,paste(outNameZO,"_std",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- r_iqr <- calc(mapBrick, function(x){IQR(x, na.rm=T)}) |
- writeRaster(r_iqr,paste(outNameZO,"_iqr",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
- r_range <- calc(mapBrick, function(x){summary(x)[6] - summary(x)[1]}) |
- writeRaster(r_range,paste(outNameZO,"_range",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ outNameQO <- paste(dirPathQO,dirName,sep="") |
+ if (!dir.exists(dirPathQO)) { |
+ dir.create(dirPathQO, recursive=T) |
+ } |
+ outNameZO <- paste(dirPathZO,dirName,sep="") |
+ if (!dir.exists(dirPathZO)) { |
+ dir.create(dirPathZO, recursive=T) |
+ } |
+ |
+ r_median <- calc(mapBrick, function(x){summary(x)[3]}) |
+ writeRaster(r_median,paste(outNameQO,"_median",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ r_mean <- calc(mapBrick, function(x){summary(x)[4]}) |
+ writeRaster(r_mean,paste(outNameQO,"_mean",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ r_min <- calc(mapBrick, function(x){summary(x)[1]}) |
+ writeRaster(r_min,paste(outNameQO,"_min",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ r_max <- calc(mapBrick, function(x){summary(x)[6]}) |
+ writeRaster(r_max,paste(outNameQO,"_max",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ r_1q <- calc(mapBrick, function(x){summary(x)[2]}) |
+ writeRaster(r_1q,paste(outNameQO,"_1q",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ r_3q <- calc(mapBrick, function(x){summary(x)[5]}) |
+ writeRaster(r_3q,paste(outNameQO,"_3q",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ |
+ r_sd <- calc(mapBrick, function(x){sd(x, na.rm=T)}) |
+ writeRaster(r_sd,paste(outNameZO,"_std",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ r_iqr <- calc(mapBrick, function(x){IQR(x, na.rm=T)}) |
+ writeRaster(r_iqr,paste(outNameZO,"_iqr",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ r_range <- calc(mapBrick, function(x){summary(x)[6] - summary(x)[1]}) |
+ writeRaster(r_range,paste(outNameZO,"_range",sep=""),format="GTiff",NAflag=-9999.0,overwrite=T) |
+ } |
|
} |