From 7f50e75c1de104ccf2f32bc7c4a97f2fe0eaf295 Mon Sep 17 00:00:00 2001
From: "Franssen, Wietse" <wietse.franssen@wur.nl>
Date: Tue, 1 Mar 2016 08:34:26 +0100
Subject: [PATCH] revision4.0 complete and finisched

---
 SCRIPTS/1b_doReformatOldData.R                |  4 ++--
 ...rder_combYears_combMembers_sepLeadmonths.R |  8 ++++----
 SCRIPTS/3_doBiascorrection.R                  | 10 +++++-----
 SCRIPTS/3_submit_biascorrection.sh            |  2 +-
 ...order_sepYears_sepMembers_combLeadmonths.R |  9 ++++-----
 ...Reorder_sepYears_sepMembers_combLeadmonths |  2 +-
 ...rder_sepYears_sepMembers_combLeadmonths.sh |  4 ++--
 SCRIPTS/5_doNetcdfCombine.R                   | 13 ++++++-------
 SCRIPTS/6_doBiasCheck.R                       | 19 +++++++++----------
 SCRIPTS/6_jobScriptBiasCheck                  |  2 +-
 SCRIPTS/functions/functionBiascorrectionWUR.R | 10 +++++-----
 11 files changed, 40 insertions(+), 43 deletions(-)

diff --git a/SCRIPTS/1b_doReformatOldData.R b/SCRIPTS/1b_doReformatOldData.R
index 2fcb0cc..3694bf8 100644
--- a/SCRIPTS/1b_doReformatOldData.R
+++ b/SCRIPTS/1b_doReformatOldData.R
@@ -14,7 +14,7 @@ if (submitscript) {
   locName      <- 'X'
   resolution   <- 'X'
   inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.0/%s_%s", locName, resolution)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.3/%sdeg/%s_noBC", resolution, locName)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_noBC", resolution, locName)
 } else {
   members      <- c(1:2)
   initYears    <- c(1981:1982)
@@ -23,7 +23,7 @@ if (submitscript) {
   #locName      <- "EU"
   resolution   <- "0.75"
   inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.0/%s_%s", locName, resolution)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.3/%sdeg/%s_noBC", resolution, locName)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_noBC", resolution, locName)
 }
 
 mask<-Netcdf2R(inFile = sprintf("../DATA/mask/mask_wfdei_%s_%s.nc4", locName, resolution), "mask")
diff --git a/SCRIPTS/2_doReorder_combYears_combMembers_sepLeadmonths.R b/SCRIPTS/2_doReorder_combYears_combMembers_sepLeadmonths.R
index 96fcdad..d350cac 100644
--- a/SCRIPTS/2_doReorder_combYears_combMembers_sepLeadmonths.R
+++ b/SCRIPTS/2_doReorder_combYears_combMembers_sepLeadmonths.R
@@ -13,8 +13,8 @@ if (submitscript) {
   locName      <- 'X'
   resolution   <- 'X'
   bcInfo       <- 'X'
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.3/%sdeg/%s_%s", resolution, locName, bcInfo)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.3/%sdeg/%s_%s_biasformat", resolution, locName, bcInfo)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s", resolution, locName, bcInfo)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s_biasformat", resolution, locName, bcInfo)
 } else {
   members      <- c(1:2)
   initYears    <- c(1981:1982)
@@ -24,8 +24,8 @@ if (submitscript) {
   resolution   <- "0.75"
   #  bcInfo       <- "BC"
   bcInfo       <- "noBC"
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.3/%sdeg/%s_%s", resolution, locName, bcInfo)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.3/%sdeg/%s_%s_biasformat2", resolution, locName, bcInfo)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s", resolution, locName, bcInfo)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s_biasformat2", resolution, locName, bcInfo)
 }
 
 variables<-names(variableInfo)
diff --git a/SCRIPTS/3_doBiascorrection.R b/SCRIPTS/3_doBiascorrection.R
index 6b31583..a7a7b0a 100644
--- a/SCRIPTS/3_doBiascorrection.R
+++ b/SCRIPTS/3_doBiascorrection.R
@@ -21,19 +21,19 @@ if (submitscript) {
   locName      <- 'X'
   resolution   <- 'X'
   obsPath      <- sprintf("../DATA/wfdei_rev3.0/%sdeg/%s/", resolution, locName)
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_noBC_biasformat", resolution, locName)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_BC_biasformat", resolution, locName)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_noBC_biasformat", resolution, locName)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_BC_biasformat", resolution, locName)
 } else {
   members      <- c(1:15)
   initYears    <- c(1981:2010)
-  targetMonths <- 6
+  targetMonths <- 1
   leadMonths   <- c(0:6)
   locName      <- "GHA"
   # locName      <- "EU"
   resolution   <- "0.75"
   obsPath      <- sprintf("../DATA/wfdei_rev3.0/%sdeg/%s/", resolution, locName)
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_noBC_biasformat", resolution, locName)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_BC_biasformat", resolution, locName)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_noBC_biasformat", resolution, locName)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_BC_biasformat", resolution, locName)
 }
 
 variables<-names(variableInfo)
diff --git a/SCRIPTS/3_submit_biascorrection.sh b/SCRIPTS/3_submit_biascorrection.sh
index 0688891..6bd05ac 100755
--- a/SCRIPTS/3_submit_biascorrection.sh
+++ b/SCRIPTS/3_submit_biascorrection.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 tmpScripts="./tmpScripts"
-#location="EU";  resolution="0.50"
+location="EU";  resolution="0.50"
 location="GHA"; resolution="0.50"
 #location="GHA"; resolution="0.75"
 
diff --git a/SCRIPTS/4_doReorder_sepYears_sepMembers_combLeadmonths.R b/SCRIPTS/4_doReorder_sepYears_sepMembers_combLeadmonths.R
index 40c183f..5c98fc6 100644
--- a/SCRIPTS/4_doReorder_sepYears_sepMembers_combLeadmonths.R
+++ b/SCRIPTS/4_doReorder_sepYears_sepMembers_combLeadmonths.R
@@ -1,6 +1,5 @@
 rm(list=ls())
 source(file = "./functions/functionsGeneral.R")
-source(file = "./functions/functionReformat.R")
 source(file = "./functions/functionR2Netcdf.R")
 source(file = "./functions/functionNetcdf2R.R")
 source(file = "./functions/functionConvert.R")
@@ -15,8 +14,8 @@ if (submitscript) {
   locName      <- 'X'
   resolution   <- 'X'
   bcInfo       <- 'X'
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s_biasformat", resolution, locName, bcInfo)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s", resolution, locName, bcInfo)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s_biasformat", resolution, locName, bcInfo)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s", resolution, locName, bcInfo)
 } else {
   members      <- c(1:15)
   initYears    <- c(1981:2010)
@@ -25,8 +24,8 @@ if (submitscript) {
   #locName      <- "EU"
   resolution   <- "0.75"
   bcInfo       <- "BC"
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s_biasformat", resolution, locName, bcInfo)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s", resolution, locName, bcInfo)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s_biasformat", resolution, locName, bcInfo)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s", resolution, locName, bcInfo)
 }
 
 variables<-names(variableInfo)
diff --git a/SCRIPTS/4_jobScriptReorder_sepYears_sepMembers_combLeadmonths b/SCRIPTS/4_jobScriptReorder_sepYears_sepMembers_combLeadmonths
index 54e2afc..8608adc 100644
--- a/SCRIPTS/4_jobScriptReorder_sepYears_sepMembers_combLeadmonths
+++ b/SCRIPTS/4_jobScriptReorder_sepYears_sepMembers_combLeadmonths
@@ -1,7 +1,7 @@
 #!/bin/bash
 #SBATCH --account=5120867-01
 #SBATCH --time=5000
-#SBATCH --mem=16024
+#SBATCH --mem=32024
 #SBATCH --ntasks=1
 #SBATCH --output=./log/log_4_doReorder_sepYears_sepMembers_combLeadmonths_<location>_<bcInfo>_<resolution>deg_initMonth<initMonth>_%j.txt
 #SBATCH --job-name=Reorder
diff --git a/SCRIPTS/4_submit_reorder_sepYears_sepMembers_combLeadmonths.sh b/SCRIPTS/4_submit_reorder_sepYears_sepMembers_combLeadmonths.sh
index acaf826..5e78338 100755
--- a/SCRIPTS/4_submit_reorder_sepYears_sepMembers_combLeadmonths.sh
+++ b/SCRIPTS/4_submit_reorder_sepYears_sepMembers_combLeadmonths.sh
@@ -1,8 +1,8 @@
 #!/bin/bash
 tmpScripts="./tmpScripts"
 #location="EU";  resolution="0.50"
-location="GHA"; resolution="0.50"
-#location="GHA"; resolution="0.75"
+#location="GHA"; resolution="0.50"
+location="GHA"; resolution="0.75"
 
 #bcInfo="noBC"
 bcInfo="BC"
diff --git a/SCRIPTS/5_doNetcdfCombine.R b/SCRIPTS/5_doNetcdfCombine.R
index 6ab916c..2d7b0e8 100644
--- a/SCRIPTS/5_doNetcdfCombine.R
+++ b/SCRIPTS/5_doNetcdfCombine.R
@@ -1,7 +1,6 @@
 rm(list=ls())
 library(ncdf4)
 source(file = "./functions/functionsGeneral.R")
-source(file = "./functions/functionReformat.R")
 source(file = "./functions/functionR2Netcdf.R")
 source(file = "./functions/functionNetcdf2R.R")
 source(file = "./functions/functionConvert.R")
@@ -16,8 +15,8 @@ if (submitscript) {
   locName      <- 'X'
   resolution   <- 'X'
   bcInfo       <- 'X'
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s", resolution, locName, bcInfo)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s_final", resolution, locName, bcInfo)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s", resolution, locName, bcInfo)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s_final", resolution, locName, bcInfo)
 } else {
   members      <- c(1:15)
   initYears    <- c(1981:2010)
@@ -26,8 +25,8 @@ if (submitscript) {
   #locName      <- "EU"
   resolution   <- "0.75"
   bcInfo       <- "BC"
-  inPath       <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s", resolution, locName, bcInfo)
-  outPath      <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_%s_final", resolution, locName, bcInfo)
+  inPath       <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s", resolution, locName, bcInfo)
+  outPath      <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_%s_final", resolution, locName, bcInfo)
 }
 
 variables<-names(variableInfo)
@@ -39,7 +38,7 @@ for (iMember in members) {
       firstVar<-TRUE
       for (variableName in variables) {
         ## OPEN NCin-Data
-        nameFileNCin <- sprintf("%s/%s/%s_forcing_seas15_%s_%s_E%02d_%4d_%02d.nc4", 
+        nameFileNCin <- sprintf("%s/%s/%s_forcing_seas15_%s_%s_E%02d_INIT%4d_%02d.nc4", 
                                 inPath,
                                 variableName,
                                 variableName,
@@ -67,7 +66,7 @@ for (iMember in members) {
           FillValue <- 1e20
           
           ## SAVE AS NC-DATA
-          nameFileNCout <- sprintf("%s/forcing_seas15_%s_%s_E%02d_%4d_%02d.nc4", 
+          nameFileNCout <- sprintf("%s/forcing_seas15_%s_%s_E%02d_INIT%4d_%02d.nc4", 
                                    outPath,
                                    locName,
                                    bcInfo,
diff --git a/SCRIPTS/6_doBiasCheck.R b/SCRIPTS/6_doBiasCheck.R
index 82908b5..b4fd72f 100644
--- a/SCRIPTS/6_doBiasCheck.R
+++ b/SCRIPTS/6_doBiasCheck.R
@@ -16,27 +16,26 @@ if (submitscript) {
   locName      <- 'X'
   resolution   <- 'X'
   obsPath      <- sprintf("../DATA/wfdei_rev3.0/%sdeg/%s/", resolution, locName)
-  inPathNoBC   <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_noBC_biasformat", resolution, locName)
-  inPathBC     <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_BC_biasformat", resolution, locName)
-  outPath      <- sprintf("../Analysis_output/pics/checkBias_rev1.2")
+  inPathNoBC   <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_noBC_biasformat", resolution, locName)
+  inPathBC     <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_BC_biasformat", resolution, locName)
+  outPath      <- sprintf("../Analysis_output/pics/checkBias_rev4.0")
 } else {
   members      <- c(1:15)
   initYears    <- c(1981:2010)
   targetMonths <- c(1:12)
   leadMonths   <- c(0:6)
-  locName      <- "GHA"
-  #locName      <- "EU"
-  resolution   <- "0.75"
+  #locName      <- "GHA"
+  locName      <- "EU"
+  resolution   <- "0.50"
   obsPath      <- sprintf("../DATA/wfdei_rev3.0/%sdeg/%s/", resolution, locName)
-  inPathNoBC   <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_noBC_biasformat", resolution, locName)
-  inPathBC     <- sprintf("../DATA/System4_seasonal_15_rev1.2/%sdeg/%s_BC_biasformat", resolution, locName)
-  outPath      <- sprintf("../Analysis_output/pics/checkBias_rev1.2")
+  inPathNoBC   <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_noBC_biasformat", resolution, locName)
+  inPathBC     <- sprintf("../DATA/System4_seasonal_15_rev4.0/%sdeg/%s_BC_biasformat", resolution, locName)
+  outPath      <- sprintf("../Analysis_output/pics/checkBias_rev4.0")
 }
 
 mask<-Netcdf2R(inFile = sprintf("../DATA/mask/mask_wfdei_%s_%s.nc4", locName, resolution), "mask")
 
 variables<-names(variableInfo)
-#variables<-c("pr")
 
 dir.create(outPath, recursive = TRUE, showWarnings = FALSE)
 
diff --git a/SCRIPTS/6_jobScriptBiasCheck b/SCRIPTS/6_jobScriptBiasCheck
index 120c27a..0c44dda 100644
--- a/SCRIPTS/6_jobScriptBiasCheck
+++ b/SCRIPTS/6_jobScriptBiasCheck
@@ -1,7 +1,7 @@
 #!/bin/bash
 #SBATCH --account=5120867-01
 #SBATCH --time=5000
-#SBATCH --mem=16024
+#SBATCH --mem=32024
 #SBATCH --ntasks=1
 #SBATCH --output=./log/log_6_biasCheck_<location>_<resolution>deg_targetMonth<targetMonth>_%j.txt
 #SBATCH --job-name=check
diff --git a/SCRIPTS/functions/functionBiascorrectionWUR.R b/SCRIPTS/functions/functionBiascorrectionWUR.R
index d4ec0c3..e22a3f5 100644
--- a/SCRIPTS/functions/functionBiascorrectionWUR.R
+++ b/SCRIPTS/functions/functionBiascorrectionWUR.R
@@ -140,7 +140,7 @@ biasCorrectCell<-function(obscell, predcell, minobs, npred, nbin = 100, epsilon
   # meansimbin = sumsimbin / nsimbin
   diffmean = abs (mean (simcell [indvalobs]) - mean (obscell [indvalobs]))
   # diffbinmax  = max (abs (meansimbin - meanobsbin), na.rm = T) 	
-  if (diffmean > 0.01) {
+  if ((diffmean*86400) > 0.01 ) {
     print (paste ("error: ", diffmean, morepred0, length(indbel0), sep = "   "))
   }
   return(simcell)
@@ -158,9 +158,7 @@ biasCorrect <- function(obs, pred, nbin = 100, epsilon = 0.00001) {
   ntime<-dim(pred$Data)[2]
   nlat<-dim(obs$Data)[2]
   nlon<-dim(obs$Data)[3]
-  print(dim(obs_new$Data))
   obs_new$Data <- array(NA, dim = c(ntime, nlat, nlon))
-  print(dim(obs_new$Data))
   obs_new$Data[which(element==TRUE),,]<-obs$Data[]
   # obs_new$Data[,10,10]
   # obs$Data[,10,10]
@@ -199,9 +197,11 @@ biasCorrect <- function(obs, pred, nbin = 100, epsilon = 0.00001) {
       # Selection of all data for a single cell	
       obscell  <- obsselmem[ ,ilat, ilon]
       predcell <- aperm( predsel[ , ,ilat, ilon])
-      rm(nmem,nsam,ib,ie,imem,obssel)
-      
+      rm(ib,ie,imem,obssel)
       simcell <- biasCorrectCell(obscell, predcell, npred = npred, minobs = minobs, nbin = nbin, epsilon = epsilon)
+      # transpose back to the right member/timestep order
+      dim(simcell) <- c(nsam, nmem)
+      simcell<-t(simcell)
       RData_BC$Data[,,ilat,ilon]<-simcell
     }
   }
-- 
GitLab