From 308b95b632b5bc6a36263153bd22a61ec4400af6 Mon Sep 17 00:00:00 2001
From: unknown <olivier.delaigue@ANPI1430.antony.irstea.priv>
Date: Mon, 22 Jan 2018 18:26:51 +0100
Subject: [PATCH] v0.1.9.6 GR6J model diagram corrected in ShinyGR

---
 DESCRIPTION |  2 +-
 R/Utils.R   | 87 +++++++++++++++++++++++++++++++++++++++++------------
 2 files changed, 69 insertions(+), 20 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 6fdb763..583eb2d 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
 Package: airGRteaching
 Type: Package
 Title: Tools to Simplify the Use of the airGR Hydrological Package for Education (Including a Shiny Interface)
-Version: 0.1.9.5
+Version: 0.1.9.6
 Date: 2018-01-22
 Authors@R: c(person("Olivier", "Delaigue", role = c("aut", "cre"), email = "airGR@irstea.fr"), person("Laurent", "Coron", role = c("aut")), person("Pierre", "Brigode", role = c("aut")), person("Guillaume", "Thirel", role = c("ctb")))
 Depends: airGR (>= 1.0.9.43)
diff --git a/R/Utils.R b/R/Utils.R
index fc974dc..74a7fef 100644
--- a/R/Utils.R
+++ b/R/Utils.R
@@ -76,10 +76,10 @@ DiagramGR <- function(OutputsModel, Param, SimPer, EventDate, HydroModel) {
   col_R           <- rgb(066, 139, 202, maxColorValue = 255) #rgb(037, 155, 210, maxColorValue = 255)
   col_mod_bg      <- rgb(245, 245, 245, maxColorValue = 255)
   col_mod_bd      <- rgb(231, 231, 231, maxColorValue = 255)
-  xy_E            <- c(250, 970)
+  xy_E            <- c(250, 980)
   xy_PE           <- c(250, 940)
   xy_AE           <- c(250, 860)
-  xy_P            <- c(600, 970)
+  xy_P            <- c(600, 980)
   xy_Precip       <- c(600, 950)
   xy_Q            <- c(700,  30)
   x_Ps            <- 440
@@ -235,7 +235,7 @@ DiagramGR <- function(OutputsModel, Param, SimPer, EventDate, HydroModel) {
   plot(x = 0, type = "n", xlab = "", ylab = "", axes = FALSE, ylim = c(0, 1000), xlim = c(0, 1000))
   
   # Le modele
-  rect(xleft = 0, xright = 1000, ybottom = 50, ytop = 950, col = col_mod_bg, border = col_mod_bd)
+  rect(xleft = 0, xright = 1000, ybottom = 50, ytop = 970, col = col_mod_bg, border = col_mod_bd)
   
   
   # --------------------------------------------------------------------------------
@@ -515,12 +515,14 @@ DiagramGR <- function(OutputsModel, Param, SimPer, EventDate, HydroModel) {
              y0 = y_entreeUH-3*tmp_decal, y1 = xy_Q9[2])
     segments(x0 = xy_Q9[1]*0.80, x1 = xy_Q9[1]*1.30,
              y0 = xy_Q9[2], y1 = xy_Q9[2])
+    segments(x0 = xy_Q9[1]*1.30, x1 = xy_Q9[1]*1.30,
+             y0 = xy_Q9[2], y1 = xy_Q9[2]*0.65)    
     segments(x0 = xy_Q9[1]*0.80, x1 = xy_Q9[1]*0.80,
              y0 = xy_Q9[2], y1 = xy_Q9[2]*0.90)
-    segments(x0 = xy_Q9[1]*0.80, x1 = xy_Q9[1]*0.80,
-             y0 = xy_Q9[2]*0.70, y1 = xy_Q9[2]*0.65)
-    segments(x0 = xy_Q9[1]*1.30, x1 = xy_Q9[1]*1.30,
-             y0 = xy_Q9[2], y1 = xy_Q9[2]*0.65)
+    segments(x0 = xy_Q9[1]*0.55, x1 = xy_Q9[1]*0.55,
+             y0 = xy_Q9[2]*0.70, y1 = y_routage)
+    segments(x0 = xy_Q9[1]*0.55, x1 = xy_min_ROUT[1]+base_res/2,
+             y0 = y_routage, y1 = y_routage)
   }
   
   # Q9
@@ -528,7 +530,19 @@ DiagramGR <- function(OutputsModel, Param, SimPer, EventDate, HydroModel) {
     points(x = xy_Q9[1], y = xy_Q9[2]+tmp_decal,
            type = "p", pch = tri_B, col = col_P,
            cex = cex_tri(OutputsModel$Q9[i_pdt], fact = fact_triangle, max = cex_max_poly))
-  } 
+    if (HydroModel == "GR6J") {
+      # Q9 exp
+      points(x = xy_Q9[1]*0.80, y = xy_Q9[1]*0.73,
+             type = "p", pch = tri_B, col = col_P,
+             cex = cex_tri(OutputsModel$Q9[i_pdt]*0.4, fact = fact_triangle, max = cex_max_poly))
+      # Q9 rout      
+      points(x = xy_Q9[1]*1.30, y = xy_Q9[1]*0.73,
+             type = "p", pch = tri_B, col = col_P,
+             cex = cex_tri(OutputsModel$Q9[i_pdt]*0.6, fact = fact_triangle, max = cex_max_poly))
+      # QrExp
+      plotrix::boxed.labels(x = xy_Q9[1]*0.55, y = y_routage, labels = "QrExp", bg = col_mod_bg, border = NA, xpad = xpad, ypad = ypad)
+    }
+  }
   
   plotrix::boxed.labels(x = xy_Q9[1], y = xy_Q9[2], labels = "Q9",
                         bg = col_mod_bg, border = NA, xpad = xpad, ypad = ypad)
@@ -581,24 +595,29 @@ DiagramGR <- function(OutputsModel, Param, SimPer, EventDate, HydroModel) {
            y0 = y_routage, y1 = y_routage)
   
   # Qr
-  plotrix::boxed.labels(x = xy_min_ROUT[1]+base_res/2, y = y_routage, labels = "Qr",
-                        bg = col_mod_bg, border = NA, xpad = xpad, ypad = ypad)
+  if (HydroModel != "GR6J") {
+    plotrix::boxed.labels(x = xy_min_ROUT[1]+base_res/2, y = y_routage, labels = "Qr",
+                          bg = col_mod_bg, border = NA, xpad = xpad, ypad = ypad)
+  }
+  if (HydroModel == "GR6J") {
+    plotrix::boxed.labels(x = xy_min_ROUT[1]+base_res/1.5, y = (xy_min_ROUT[2]+y_routage)/2, labels = "Qr",
+                          bg = col_mod_bg, border = NA, xpad = xpad, ypad = ypad)
+  }
   
   # Valeur de Qr
   if (OutputsModel$QR[i_pdt] != 0) {
+    if (HydroModel != "GR6J") {
     points(x = xy_Q[1]-100, y = y_routage,
            type = "p", pch = tri_R, col = col_P,
            cex = cex_tri(OutputsModel$QR[i_pdt], fact = fact_triangle, max = cex_max_poly))
+    } else {
+      points(x = xy_min_ROUT[1]+base_res/2, y = (xy_min_ROUT[2]+y_routage)/2,
+             type = "p", pch = tri_B, col = col_P,
+             cex = cex_tri(OutputsModel$QR[i_pdt], fact = fact_triangle, max = cex_max_poly))
+    }
   }
   
-  # Q final
-  segments(x0 = xy_Q[1], x1 = xy_Q[1], y0 = y_routage, y1 = xy_Q[2]+10)
-  if (OutputsModel$Qsim[i_pdt] != 0) {
-    points(x = xy_Q[1], y =  mean(c(y_routage, xy_Q[2]+10)),
-           type = "p", pch = tri_B, col = col_Q,
-           cex = cex_tri(OutputsModel$Qsim[i_pdt], fact = fact_triangle, max = cex_max_poly))
-  }
-  
+
   
   # --------------------------------------------------------------------------------
   # RESERVOIR EXPONENTIEL
@@ -626,9 +645,39 @@ DiagramGR <- function(OutputsModel, Param, SimPer, EventDate, HydroModel) {
              y0 = xy_min_EXPO[2], y1 = xy_min_EXPO[2]-max(abs(OutputsModel$Exp))*fact_res-tmp_triche)
     segments(x0 = xy_min_EXPO[1]+base_res, x1 = xy_min_EXPO[1]+base_res,
              y0 = xy_min_EXPO[2], y1 = xy_min_EXPO[2]-max(abs(OutputsModel$Exp))*fact_res-tmp_triche)
-    text(x = 50, y = xy_min_EXPO[2]+Param[3]*fact_res/3, labels = "Expo.\nstore",
+    text(x = 50, y = xy_min_EXPO[2]+Param[3]*fact_res/3, labels = "Exp.\nstore",
          cex = 1.4, pos = 4)
+    points(x = 180, y = xy_min_EXPO[2]+Param[3]*fact_res/3+05, pch = 43, # +
+         cex = 2.0, col = "#10B510")
+    points(x = 178, y = xy_min_EXPO[2]+Param[3]*fact_res/3-35, pch = 95, # -
+         cex = 1.6, col = "#FF0303")
+
+    # Valeur de QrExp
+    if (OutputsModel$QR[i_pdt] != 0) {
+      points(x = xy_Q[1]-350, y = y_routage,
+             type = "p", pch = tri_R, col = col_P,
+             cex = cex_tri(OutputsModel$QRExp[i_pdt], fact = fact_triangle, max = cex_max_poly))
+    }
 
+    # Valeur de Qr + QrExp
+    if (OutputsModel$QR[i_pdt] != 0) {    
+      points(x = xy_Q[1]-100, y = y_routage,
+             type = "p", pch = tri_R, col = col_P,
+             cex = cex_tri(OutputsModel$QR[i_pdt]+OutputsModel$QRExp[i_pdt], fact = fact_triangle, max = cex_max_poly))
+    }
+  }
+  
+  
+  # --------------------------------------------------------------------------------
+  # Q FINAL
+  # -------------------------------------------------------------------------------
+  
+  # Q final
+  segments(x0 = xy_Q[1], x1 = xy_Q[1], y0 = y_routage, y1 = xy_Q[2]+10)
+  if (OutputsModel$Qsim[i_pdt] != 0) {
+    points(x = xy_Q[1], y =  mean(c(y_routage, xy_Q[2]+10)),
+           type = "p", pch = tri_B, col = col_Q,
+           cex = cex_tri(OutputsModel$Qsim[i_pdt], fact = fact_triangle, max = cex_max_poly))
   }
   
   
-- 
GitLab