diff --git a/plotting/layout.R b/plotting/layout.R
index b2b8d361fdb671f6d1c10878a871e09983f77b2d..f2e27d0d125eeb4f5bddbee85b9816344bde5130 100644
--- a/plotting/layout.R
+++ b/plotting/layout.R
@@ -91,7 +91,6 @@ panels_layout = function (df_data, df_meta, layout_matrix, figdir='', filedir_op
         dir.create(outdirTmp)
     }
 
-
     # Get all different stations code
     Code = levels(factor(df_meta$code))
     nCode = length(Code)
diff --git a/plotting/panel.R b/plotting/panel.R
index 9a9ce89f0a07f9c31069a815c3d56a2b5a42e5b1..d3ae1d1695c6fbad2c604d5247541ed0ecdd6a84 100644
--- a/plotting/panel.R
+++ b/plotting/panel.R
@@ -10,8 +10,7 @@ library(ggh4x)
 library(RColorBrewer)
 
 
-time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missRect=FALSE, unit2day=365.25, period=NULL, last=FALSE, color=NULL, norm=FALSE) {
-
+time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missRect=FALSE, unit2day=365.25, period=NULL, last=FALSE, color=NULL) {
 
     if (type == 'sqrt(Q)') {
         df_data_code$Qm3s = sqrt(df_data_code$Qm3s)
@@ -20,43 +19,21 @@ time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missR
     maxQ = max(df_data_code$Qm3s, na.rm=TRUE)
     power = get_power(maxQ) 
 
-    if (norm) {
-        dbrk = 10^power 
-    } else {
-        dbrk = 1
-    }
-
-    df_data_code$Qm3sN = df_data_code$Qm3s / dbrk
-
-    if (!is.null(df_trend_code)) {
-        df_trend_code$trendN = df_trend_code$trend / dbrk
-        df_trend_code$interceptN = df_trend_code$intercept / dbrk
-    }
-    
-    maxQN = max(df_data_code$Qm3sN, na.rm=TRUE)
-
     maxQtmp = maxQ/10^power
     if (maxQtmp >= 5) {
         dbrk = 1.0
-        accuracy = 0.1
     } else if (maxQtmp < 5 & maxQtmp >= 3) {
         dbrk = 0.5
-        accuracy = 0.1
     } else if (maxQtmp < 3 & maxQtmp >= 2) {
         dbrk = 0.4
-        accuracy = 0.1
     } else if (maxQtmp < 2 & maxQtmp >= 1) {
         dbrk = 0.2
-        accuracy = 0.1
     } else if (maxQtmp < 1) {
         dbrk = 0.1
-        accuracy = 0.1
     }
     
-    if (!norm) {
-        dbrk = dbrk * 10^power
-        accuracy = NULL
-    }
+    dbrk = dbrk * 10^power
+    accuracy = NULL
     
     dDate = as.numeric(df_data_code$Date[length(df_data_code$Date)] -
                        df_data_code$Date[1]) / unit2day
@@ -118,17 +95,17 @@ time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missR
 
     if (type == 'sqrt(Q)' | type == 'Q') {
         p = p +
-            geom_line(aes(x=df_data_code$Date, y=df_data_code$Qm3sN),
+            geom_line(aes(x=df_data_code$Date, y=df_data_code$Qm3s),
                       color='grey20',
                       size=0.3)
     } else {
         p = p +
-            geom_point(aes(x=df_data_code$Date, y=df_data_code$Qm3sN),
+            geom_point(aes(x=df_data_code$Date, y=df_data_code$Qm3s),
                        shape=1, color='grey20', size=1)
     }
 
     if (missRect) {
-        NAdate = df_data_code$Date[is.na(df_data_code$Qm3sN)]
+        NAdate = df_data_code$Date[is.na(df_data_code$Qm3s)]
         dNAdate = diff(NAdate)
         NAdate_Down = NAdate[append(Inf, dNAdate) != 1]
         NAdate_Up = NAdate[append(dNAdate, Inf) != 1]
@@ -137,7 +114,7 @@ time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missR
             geom_rect(aes(xmin=NAdate_Down, 
                           ymin=0, 
                           xmax=NAdate_Up, 
-                          ymax=maxQN*1.1),
+                          ymax=maxQ*1.1),
                       linetype=0, fill='Wheat', alpha=0.4)
     }
 
@@ -147,74 +124,124 @@ time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missR
                 geom_rect(aes(xmin=min(df_data_code$Date),
                               ymin=0, 
                               xmax=period[1], 
-                              ymax= maxQN*1.1),
+                              ymax= maxQ*1.1),
                           linetype=0, fill='grey85', alpha=0.3) +
                 
                 geom_rect(aes(xmin=period[2],
                               ymin=0, 
                               xmax=max(df_data_code$Date), 
-                              ymax= maxQN*1.1),
+                              ymax= maxQ*1.1),
                           linetype=0, fill='grey85', alpha=0.3) 
         }
 
+
     if (!is.null(df_trend_code)) {
-        if (df_trend_code$p <= p_threshold) {
+        
+        # print(df_trend_code)
 
-            abs = c(df_data_code$Date[1],
-                    df_data_code$Date[length(df_data_code$Date)])
+        Start = df_trend_code$period_start
+        UStart = levels(factor(Start))
+        End = df_trend_code$period_end
+        UEnd = levels(factor(End))
+        
+        nPeriod = max(length(UStart), length(UEnd))
+        
+        Periods = vector(mode='list', length=nPeriod)
+        # for (i in 1:nPeriod) {
+        #     Periods[[i]] = as.Date(c(Period_start[i], Period_end[i]))
+        # }    
+        
+        ltype = c('solid', 'dashed', 'dotted', 'twodash')
+        for (i in 1:nPeriod) {
 
-            abs_num = as.numeric(abs) / unit2day
+            df_trend_code_per = 
+                df_trend_code[df_trend_code$period_start == Start[i] 
+                              & df_trend_code$period_end == End[i],]
 
-            ord = abs_num * df_trend_code$trendN +
-                df_trend_code$interceptN
+            # print(df_trend_code_per)
 
-            if (!is.null(color)) {
-                p = p + 
-                    geom_line(aes(x=abs, y=ord), 
-                              color=color, 
-                              size=0.7)
-            } else {
-                p = p + 
-                    geom_line(aes(x=abs, y=ord), 
-                              color='cornflowerblue')
-            }
-            
-            if (norm) {
-                p = p +
-                    ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))}~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
-            } else {
-                p = p +
-                    ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*']'~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
-            }
-            
-        } else {
-            if (norm) {
-                p = p +
-                    ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))}~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
-            } else {
-                p = p +
-                    ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*']'~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
+            if (df_trend_code_per$p <= p_threshold) {
+
+                iStart = which.min(abs(df_data_code$Date - Start[i]))
+                iEnd = which.min(abs(df_data_code$Date - End[i]))
+
+                abs = c(df_data_code$Date[iStart],
+                        df_data_code$Date[iEnd])
+
+                # abs = seq(df_data_code$Date[1],
+                          # df_data_code$Date[length(df_data_code$Date)],
+                          # length.out=10)
+
+                # abs[abs <= df_data_code$Date[iStart]] = NA
+                # abs[abs >= df_data_code$Date[iEnd]] = NA
+                
+
+                # print(abs)
+                # print(df_trend_code_per$trend)
+                # print(df_trend_code_per$intercept)
+                
+                
+                abs_num = as.numeric(abs) / unit2day
+
+
+                ord = abs_num * df_trend_code_per$trend +
+                    df_trend_code_per$intercept
+
+                plot = tibble(abs=abs, ord=ord)
+
+                if (!is.null(color)) {
+                    p = p + 
+                        geom_line(data=plot, aes(x=abs, y=ord), 
+                                      color=color[i], 
+                                      linetype=ltype[i], size=0.7)
+                } else {
+                    p = p + 
+                        geom_line(aes(x=abs, y=ord), 
+                                  color='cornflowerblue')
+                }
             }
         }
-    } else { 
-        if (norm) {
-            p = p +
-                ggtitle(bquote(bold(.(type))~' ['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))}))
-        } else {
-            p = p +
-                    ggtitle(bquote(bold(.(type))~' ['*m^{3}*'.'*s^{-1}*']'))
-        }
     }
+
+
+
+            
+    #         if (norm) {
+    #             p = p +
+    #                 ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))}~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
+    #         } else {
+    #             p = p +
+    #                 ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*']'~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
+    #         }
+            
+    #     } else {
+    #         if (norm) {
+    #             p = p +
+    #                 ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))}~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
+    #         } else {
+    #             p = p +
+    #                 ggtitle(bquote(bold(.(type))~~'['*m^{3}*'.'*s^{-1}*']'~~~bold('tendance')~.(format(df_trend_code$trend, scientific=TRUE, digits=3))~'['*m^{3}*'.'*s^{-1}*'.'*an^{-1}*']'))
+    #         }
+    #     }
+    # } else { 
+    #     if (norm) {
+    #         p = p +
+    #             ggtitle(bquote(bold(.(type))~' ['*m^{3}*'.'*s^{-1}*'] x'~10^{.(as.character(power))}))
+    #     } else {
+    #         p = p +
+    #                 ggtitle(bquote(bold(.(type))~' ['*m^{3}*'.'*s^{-1}*']'))
+    #     }
+    # }
     
 
-    if (norm) {
-        p = p +
-            ylab(bquote('débit ['*m^{3}*'.'*s^{-1}*']  x'~10^{.(as.character(power))}))
-    } else {
-        p = p +
-            ylab(expression(paste('débit [', m^{3}, '.', 
-                                  s^{-1}, ']', sep='')))
-    }
+    # if (norm) {
+    #     p = p +
+    #         ylab(bquote('débit ['*m^{3}*'.'*s^{-1}*']  x'~10^{.(as.character(power))}))
+    # } else {
+    #     p = p +
+    #         ylab(expression(paste('débit [', m^{3}, '.', 
+    #                               s^{-1}, ']', sep='')))
+    # }
 
     p = p + 
         # xlab('date') + 
@@ -229,8 +256,8 @@ time_panel = function (df_data_code, df_trend_code, type, p_threshold=0.1, missR
                      expand=c(0, 0))
 
     p = p +
-        scale_y_continuous(breaks=seq(0, maxQN*10, dbrk),
-                           limits=c(0, maxQN*1.1),
+        scale_y_continuous(breaks=seq(0, maxQ*10, dbrk),
+                           limits=c(0, maxQ*1.1),
                            expand=c(0, 0),
                            labels=label_number(accuracy=accuracy))
 
diff --git a/processing/analyse.R b/processing/analyse.R
index 83d7c1aec14eab7f63b0df660d5f579fdaecbf43..953c7ec12c7b48fa390fabb47eb14537ff84cb19 100644
--- a/processing/analyse.R
+++ b/processing/analyse.R
@@ -65,23 +65,76 @@ get_lacune = function (df_data, df_info) {
 
 
 get_intercept = function (df_Xtrend, df_Xlist, unit2day=365.25) {
+    
+    df_Xtrend$intercept = NA
 
-    intercept = c()
-    # Group = levels(factor())
     for (g in df_Xlist$info$group) {
         df_data_code = df_Xlist$data[df_Xlist$data$group == g,]
+ 
+        df_Xtrend_code = df_Xtrend[df_Xtrend$group == g,]
+
+        Start = df_Xtrend_code$period_start
+        UStart = levels(factor(Start))
+        End = df_Xtrend_code$period_end
+        UEnd = levels(factor(End))
+        
+        nPeriod = max(length(UStart), length(UEnd))
+
+        for (i in 1:nPeriod) {
+
+            df_data_code_per = 
+                df_data_code[df_data_code$Date >= Start[i] 
+                             & df_data_code$Date <= End[i],]
+
+            df_Xtrend_code_per = 
+                df_Xtrend_code[df_Xtrend_code$period_start == Start[i] 
+                              & df_Xtrend_code$period_end == End[i],]
+            
+            id = which(df_Xtrend$group == g 
+                       & df_Xtrend$period_start == Start[i] 
+                       & df_Xtrend$period_end == End[i])
+
+            mu_X = mean(df_data_code_per$Qm3s, na.rm=TRUE)
+
+            mu_t = as.numeric(mean(c(Start[i],
+                                     End[i]),
+                                   na.rm=TRUE)) / unit2day
+                        
+            b = mu_X - mu_t * df_Xtrend_code_per$trend
+            
+            df_Xtrend$intercept[id] = b
+        } 
+    }
+    return (df_Xtrend)
+}
+
+
+get_period = function (per, df_Xtrend, df_XEx, df_Xlist) {
+
+    df_Xtrend = tibble(df_Xtrend)
+    df_Xtrend$period_start = as.Date("1970-01-01")
+    df_Xtrend$period_end = as.Date("1970-01-01")
 
-        trend = df_Xtrend$trend[df_Xtrend$group == g]
-        mu_X = mean(df_data_code$Qm3s, na.rm=TRUE)
+    df_Xlisttmp = reprepare(df_XEx, df_Xlist, colnamegroup=c('code'))
+    df_XExtmp = df_Xlisttmp$data
 
-        mu_t = as.numeric(mean(df_data_code$Date,
-                               na.rm=TRUE))/unit2day
+    for (g in df_Xlisttmp$info$group) {
+
+        df_XExtmp_code = df_XExtmp[df_XExtmp$group == g,]
         
-        b = mu_X - mu_t * trend
+        iStart = which.min(abs(df_XExtmp_code$Date
+                               - as.Date(per[1])))
+        iEnd = which.min(abs(df_XExtmp_code$Date 
+                             - as.Date(per[2])))
 
-        intercept = append(intercept, b)
+        id = which(df_Xtrend$group1 == g)
+        
+        df_Xtrend$period_start[id] =
+            as.Date(df_XExtmp_code$Date[iStart])
+        df_Xtrend$period_end[id] =
+            as.Date(df_XExtmp_code$Date[iEnd])
     }
-    return (intercept)
+    return (df_Xtrend)
 }
 
 
@@ -93,7 +146,7 @@ get_QAtrend = function (df_data, period) {
     Imax = 0
     df_QAtrendB = tibble()
 
-    for (per in period){
+    for (per in period) {
                
         df_QAlist = prepare(df_data, colnamegroup=c('code'))
 
@@ -113,11 +166,10 @@ get_QAtrend = function (df_data, period) {
             df_QAExB = df_QAEx
         }
 
-        df_QAtrend = bind_cols(df_QAtrend,
-                               tibble(period_start=as.Date(per[1])),
-                               tibble(period_end=as.Date(per[2])))
-        df_QAtrendB = bind_rows(df_QAtrendB, df_QAtrend)
+        df_QAtrend = get_period(per, df_QAtrend, df_QAEx, df_QAlist)
 
+        df_QAtrendB = bind_rows(df_QAtrendB, df_QAtrend)
+            
     }
     
     res_QAtrend = clean(df_QAtrendB, df_QAExB, df_QAlistB)
@@ -125,6 +177,7 @@ get_QAtrend = function (df_data, period) {
     return (res_QAtrend)
 }
 
+
 get_QMNAtrend = function (df_data, period) {
     # MONTHLY MINIMUM FLOW IN THE YEAR : QMNA #
 
@@ -162,9 +215,9 @@ get_QMNAtrend = function (df_data, period) {
             df_QMNAExB = df_QMNAEx
         }
 
-        df_QMNAtrend = bind_cols(df_QMNAtrend,
-                               tibble(period_start=as.Date(per[1])),
-                               tibble(period_end=as.Date(per[2])))
+        df_QMNAtrend = get_period(per, df_QMNAtrend, df_QMNAEx,
+                                  df_QMNAlist)
+
         df_QMNAtrendB = bind_rows(df_QMNAtrendB, df_QMNAtrend)
     }
     
@@ -222,9 +275,9 @@ get_VCN10trend = function (df_data, df_meta, period) {
             df_VCN10ExB = df_VCN10Ex
         }
 
-        df_VCN10trend = bind_cols(df_VCN10trend,
-                                  tibble(period_start=as.Date(per[1])),
-                                  tibble(period_end=as.Date(per[2])))
+        df_VCN10trend = get_period(per, df_VCN10trend, df_VCN10Ex,
+                                   df_VCN10list)
+
         df_VCN10trendB = bind_rows(df_VCN10trendB, df_VCN10trend)
     }
     
diff --git a/processing/format.R b/processing/format.R
index 7ac9101f8a02e2a06568e414e20a3252d0bc2f04..e60138773eedff650f86051c4dbec10f71bc0b6c 100644
--- a/processing/format.R
+++ b/processing/format.R
@@ -100,9 +100,9 @@ clean = function (df_Xtrend, df_XEx, df_Xlist) {
 
     colnames(df_Xtrend)[1] = 'group'
 
-    intercept = get_intercept(df_Xtrend, df_Xlist, unit2day=365.25)
+    df_Xtrend = get_intercept(df_Xtrend, df_Xlist, unit2day=365.25)
 
-    df_Xtrend$intercept = intercept
+    # df_Xtrend$intercept = intercept
     df_Xtrend = relocate(df_Xtrend, intercept, .after=trend)
 
     return (list(trend=df_Xtrend, data=df_Xlist$data, info=df_Xlist$info))
diff --git a/script.R b/script.R
index c34e2d92ddfcc3828ace843cc8d4984b68d14672..d45154af561e0892c4544d8fc98b026db7029e5f 100644
--- a/script.R
+++ b/script.R
@@ -16,19 +16,20 @@ computer_work_path =
 ### BANQUE HYDRO ###
 # Path to the directory where BH data is stored
 BHfiledir = 
-    # ""
-    "BanqueHydro_Export2021"
+    ""
+    # "BanqueHydro_Export2021"
 
 ## Manual selection ##
 # Name of the file that will be analysed from the BH directory
 BHfilename =
-    # ""
-    c("S2235610_HYDRO_QJM.txt", 
-      "P1712910_HYDRO_QJM.txt", 
-      "P0885010_HYDRO_QJM.txt",
-      "A1000030_HYDRO_QJM.txt",
-      "A2250310_HYDRO_QJM.txt"
-      )
+    ""
+    # c(
+      # "S2235610_HYDRO_QJM.txt", 
+      # "P1712910_HYDRO_QJM.txt", 
+      # "P0885010_HYDRO_QJM.txt",
+      # "A1000030_HYDRO_QJM.txt",
+      # "A2250310_HYDRO_QJM.txt"
+      # )
 
 ## Or list selection ##
 # Path to the list file of BH data that will be analysed
@@ -43,13 +44,13 @@ BHlistname =
 ### NIVALE ###
 # Path to the directory where NV data is stored
 NVfiledir = 
-    ""
-    # "France207"
+    # ""
+    "France207"
 
 # Name of the file that will be analysed from the NV directory
 NVfilename = 
-    ""
-    # "all"
+    # ""
+    "all"
 
 
 # Path to the list file of metadata about station that will be analysed
@@ -57,14 +58,14 @@ NVlistdir =
     ""
 
 NVlistname = 
-    ""
-    # "liste_bv_principaux_global.txt"
+    # ""
+    "liste_bv_principaux_global.txt"
 
 
 ### TREND ANALYSIS ###
 # Time period to analyse
-period_all = c("1700-01-01", "2020-12-31")
-period2 = c("1968-01-01", "2020-12-31")
+period_all = c("1800-01-01", "2019-12-31")
+period2 = c("1980-01-01", "2019-12-31")
 
 
 ########################
@@ -148,13 +149,14 @@ df_meta = df_join$meta
 
 
 # QA TREND #
-# res_QAtrend = get_QAtrend(df_data, period=list(period_all, period2))
+res_QAtrend = get_QAtrend(df_data, period=list(period_all, period2))
 
 # QMNA TREND #
-res_QMNAtrend = get_QMNAtrend(df_data, period=list(period_all, period2))
+# res_QMNAtrend = get_QMNAtrend(df_data, period=list(period_all, period2))
 
 # VCN10 TREND #
-# res_VCN10trend = get_VCN10trend(df_data, period=list(period_all, period2))
+res_VCN10trend = get_VCN10trend(df_data, df_meta, 
+                                period=list(period_all, period2))
 
 
 # TIME PANEL #
@@ -203,6 +205,22 @@ panels_layout(list(res_QAtrend$data, res_VCN10trend$data),
               filename_opt='')
 
 
+
+# panels_layout(list(res_QAtrend$data), 
+#               layout_matrix=c(1),
+#               df_meta=df_meta, 
+#               df_trend=list(res_QAtrend$trend), 
+#               type=list(bquote(Q[A])),
+#               missRect=list(TRUE),
+#               period=period_all,
+#               info_header=TRUE,
+#               time_header=df_data,
+#               time_ratio=2, 
+#               var_ratio=5,
+#               figdir=figdir,
+#               filename_opt='')
+
+
 ### /!\ Removed 185 row(s) containing missing values (geom_path) -> remove NA ###