script.R 6.69 KB
Newer Older
###### A MODIFIER ######
Heraut Louis's avatar
Heraut Louis committed

Heraut Louis's avatar
Heraut Louis committed
# Path to the data
Heraut Louis's avatar
Heraut Louis committed
computer_data_path = 
    "/home/louis/Documents/bouleau/INRAE/CDD_stationnarite/data"
    # "C:\\Users\\louis.heraut\\Documents\\CDD_stationnarite\\data"
Heraut Louis's avatar
Heraut Louis committed
# Work path
Heraut Louis's avatar
Heraut Louis committed
computer_work_path = 
    "/home/louis/Documents/bouleau/INRAE/CDD_stationnarite/ASH"
    # "C:\\Users\\louis.heraut\\Documents\\CDD_stationnarite\\ASH"
Heraut Louis's avatar
Heraut Louis committed

### BANQUE HYDRO ###
Heraut Louis's avatar
Heraut Louis committed
# Path to the directory where BH data is stored
filedir = 
    # ""
    "BanqueHydro_Export2021"


### MANUAL SELECTION ###
# Name of the file that will be analysed from the AG directory
filename =
Heraut Louis's avatar
Heraut Louis committed
    ""
Heraut Louis's avatar
Heraut Louis committed

Heraut Louis's avatar
Heraut Louis committed
    # c(
      # "S2235610_HYDRO_QJM.txt", 
      # "P1712910_HYDRO_QJM.txt", 
      # "P0885010_HYDRO_QJM.txt",
      # "O5055010_HYDRO_QJM.txt",
Heraut Louis's avatar
Heraut Louis committed
      # "A2250310_HYDRO_QJM.txt"
      # )
Heraut Louis's avatar
Heraut Louis committed
    # c("O3035210_HYDRO_QJM.txt",
      # "O3011010_HYDRO_QJM.txt",
      # "O1442910_HYDRO_QJM.txt")
Heraut Louis's avatar
Heraut Louis committed

### AGENCE ADOUR GARONNE SELECTION ###
# Path to the list file of AG data that will be analysed
AGlistdir = 
Heraut Louis's avatar
Heraut Louis committed
    ""
Heraut Louis's avatar
Heraut Louis committed

Heraut Louis's avatar
Heraut Louis committed
    # ""
    "Liste-station_RRSE.docx" 
### NIVALE SELECTION ###
Heraut Louis's avatar
Heraut Louis committed
# Path to the list file of metadata about station that will be analysed
Heraut Louis's avatar
Heraut Louis committed
NVlistdir =
    ""

NVlistname = 
    ""
    # "nival_selection.txt"
Heraut Louis's avatar
Heraut Louis committed


### TREND ANALYSIS ###
# Time period to analyse
Heraut Louis's avatar
Heraut Louis committed
period_all = c("1800-01-01", "2019-12-31")
period2 = c("1968-01-01", "2019-12-31")
Heraut Louis's avatar
Heraut Louis committed
period = list(period_all, period2)

# p value
p_thresold = 0.1 #c(0.01, 0.05, 0.1)
########################
Heraut Louis's avatar
Heraut Louis committed
# FILE STRUCTURE #
Heraut Louis's avatar
Heraut Louis committed
# Set working directory
setwd(computer_work_path)

# Sourcing R file
source('processing/extract.R', encoding='latin1')
Heraut Louis's avatar
Heraut Louis committed
source('processing/format.R', encoding='latin1')
source('processing/analyse.R', encoding='latin1')
source('plotting/panel.R', encoding='latin1')
Heraut Louis's avatar
Heraut Louis committed
source('plotting/layout.R', encoding='latin1')
Heraut Louis's avatar
Heraut Louis committed

# Usefull library
Heraut Louis's avatar
Heraut Louis committed

# Result directory
resdir = file.path(computer_work_path, 'results')
if (!(file.exists(resdir))) {
  dir.create(resdir)
}
Heraut Louis's avatar
Heraut Louis committed
print(paste('resdir :', resdir))

# Figure directory
figdir = file.path(computer_work_path, 'figures')
if (!(file.exists(figdir))) {
  dir.create(figdir)
}
Heraut Louis's avatar
Heraut Louis committed
print(paste('figdir :', figdir))


df_data_AG = NULL
df_data_NV = NULL
df_meta_AG = NULL
df_meta_NV = NULL


# AGENCE ADOUR GARONNE SELECTION #
if (AGlistname != ""){
    
    # Get only the selected station from a list station file
    df_selec_AG = get_selection_AG(computer_data_path, 
                             AGlistdir,
                             AGlistname,
Heraut Louis's avatar
Heraut Louis committed
                             cnames=c('code',
                                      'station', 
                                      'BV_km2',
                                      'axe_principal_concerne',
                                      'longueur_serie',
                                      'commentaires',
                                      'choix'), 
Heraut Louis's avatar
Heraut Louis committed
                             c_num=c('BV_km2',
Heraut Louis's avatar
Heraut Louis committed
                                      'longueur_serie'))
Heraut Louis's avatar
Heraut Louis committed

    filename = df_selec_AG[df_selec_AG$ok,]$filename

Heraut Louis's avatar
Heraut Louis committed

    #####
    filename = filename[1:16]
    #####


    # Extract metadata about selected stations
    df_meta_AG = extract_meta(computer_data_path, filedir, filename)

    # Extract data about selected stations
    df_data_AG = extract_data(computer_data_path, filedir, filename)
# NIVALE SELECTION #
if (NVlistname != ""){
    
    # Get only the selected station from a list station file
    df_selec_NV = get_selection_NV(computer_data_path, 
                                   NVlistdir,
                                   NVlistname)
Heraut Louis's avatar
Heraut Louis committed

    filename = df_selec_NV[df_selec_NV$ok,]$filename
    # Extract metadata about selected stations
    df_meta_NV = extract_meta(computer_data_path, filedir, filename)
    # Extract data about selected stations
    df_data_NV = extract_data(computer_data_path, filedir, filename)
} 
Heraut Louis's avatar
Heraut Louis committed

# MANUAL SELECTION #
if (AGlistname == "" & NVlistname == "") {
    
    # Extract metadata about selected stations
    df_meta_AG = extract_meta(computer_data_path, filedir, filename)
Heraut Louis's avatar
Heraut Louis committed

    # Extract data about selected stations
    df_data_AG = extract_data(computer_data_path, filedir, filename)
}
Heraut Louis's avatar
Heraut Louis committed

df_join = join(df_data_AG, df_data_NV, df_meta_AG, df_meta_NV)
df_data = df_join$data
Heraut Louis's avatar
Heraut Louis committed
df_meta = df_join$meta
# ANALYSE #
# Compute gap parameters for stations
Heraut Louis's avatar
Heraut Louis committed
# df_lac = get_lacune(df_data, df_meta)
# QA TREND #
Heraut Louis's avatar
Heraut Louis committed
res_QAtrend = get_QAtrend(df_data, period=period, p_thresold=p_thresold)

# QMNA TREND #
Heraut Louis's avatar
Heraut Louis committed
res_QMNAtrend = get_QMNAtrend(df_data, period=period,
                              p_thresold=p_thresold)

# VCN10 TREND #
Heraut Louis's avatar
Heraut Louis committed
res_VCN10trend = get_VCN10trend(df_data, df_meta, 
Heraut Louis's avatar
Heraut Louis committed
                                period=period, p_thresold=p_thresold)


# TIME PANEL #
# Plot time panel of debit by stations
Heraut Louis's avatar
Heraut Louis committed
# panels_layout(list(df_data, df_data),
#               layout_matrix=c(1, 2),
#               df_meta=df_meta,
#               missRect=list(TRUE, TRUE), 
#               type=list('Q', 'sqrt(Q)'), 
#               info_header=TRUE,
#               time_header=NULL,
Heraut Louis's avatar
Heraut Louis committed
#               var_ratio=3,
Heraut Louis's avatar
Heraut Louis committed
#               figdir=figdir,
#               filename_opt='time')

Heraut Louis's avatar
Heraut Louis committed
panels_layout(list(res_QAtrend$data, res_QMNAtrend$data,
                   res_VCN10trend$data), 
              layout_matrix=c(1, 2, 3),
Heraut Louis's avatar
Heraut Louis committed
              df_meta=df_meta, 
Heraut Louis's avatar
Heraut Louis committed
              df_trend=list(res_QAtrend$trend, res_QMNAtrend$trend,
Heraut Louis's avatar
Heraut Louis committed
                    res_VCN10trend$trend), 
Heraut Louis's avatar
Heraut Louis committed
              type=list(bquote(Q[A]), bquote(Q[MNA]), bquote(V[CN10])),
              missRect=list(TRUE, TRUE, TRUE),
Heraut Louis's avatar
Heraut Louis committed
              period=period,
Heraut Louis's avatar
Heraut Louis committed
              info_header=TRUE,
              time_header=df_data,
              time_ratio=2, 
Heraut Louis's avatar
Heraut Louis committed
              var_ratio=3,
Heraut Louis's avatar
Heraut Louis committed
              figdir=figdir,
              filename_opt='')


Heraut Louis's avatar
Heraut Louis committed
# panels_layout(list(res_QAtrend$data, res_VCN10trend$data), 
#               layout_matrix=c(1, 2),
#               df_meta=df_meta, 
#               df_trend=list(res_QAtrend$trend,
#                     res_VCN10trend$trend), 
#               type=list(bquote(Q[A]), bquote(V[CN10])),
#               missRect=list(TRUE, TRUE),
#               period=period,
#               info_header=TRUE,
#               time_header=df_data,
#               time_ratio=2, 
#               var_ratio=5,
#               figdir=figdir,
#               filename_opt='')


Heraut Louis's avatar
Heraut Louis committed
# panels_layout(list(res_QMNAtrend$data), 
Heraut Louis's avatar
Heraut Louis committed
#               layout_matrix=c(1),
#               df_meta=df_meta, 
Heraut Louis's avatar
Heraut Louis committed
#               df_trend=list(res_QMNAtrend$trend), 
#               type=list(bquote(Q[MNA])),
Heraut Louis's avatar
Heraut Louis committed
#               missRect=list(TRUE),
Heraut Louis's avatar
Heraut Louis committed
#               period=period,
Heraut Louis's avatar
Heraut Louis committed
#               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 ###