Commit b4be20f4 authored by Heraut Louis's avatar Heraut Louis
Browse files

QMNA remake with extract var

parent 3453acee
No related merge requests found
Showing with 67 additions and 31 deletions
+67 -31
...@@ -33,32 +33,51 @@ join = function (df_data_BH, df_data_NV, df_info_BH, df_info_NV) { ...@@ -33,32 +33,51 @@ join = function (df_data_BH, df_data_NV, df_info_BH, df_info_NV) {
} }
prepare = function(df_data, colnamegroup) { prepare = function(df_data, colnamegroup=NULL) {
colnamegroup = c(colnamegroup) colnamegroup = c(colnamegroup)
colindgroup = which(colnames(df_data) == colnamegroup) colindgroup = which(colnames(df_data) == colnamegroup)
df_data = group_by_at(df_data, colindgroup) df_data = group_by_at(df_data, colindgroup)
data = tibble(Date=df_data$Date, data = tibble(Date=df_data$Date,
group=group_indices(df_data), group=group_indices(df_data),
Qm3s=df_data$Qm3s) Qm3s=df_data$Qm3s)
Gkey = group_keys(df_data) Gkey = group_keys(df_data)
info = bind_cols(group=seq(1:nrow(Gkey)), info = bind_cols(group=seq(1:nrow(Gkey)),
Gkey) Gkey)
return (list(data=data, info=info))
}
# df_data = tibble(Date=df_data$Date,
# group=as.integer(factor(df_data$code)),
# Qm3s=df_data$Qm3s)
# df_info$group = as.integer(factor(df_info$code)) reprepare = function(df_dataEx, df_list, colnamegroup=NULL) {
return (list(data=data, info=info)) colnames(df_dataEx) = c('Date', 'group', 'Qm3s')
df_dataEx$Date = as.character(df_dataEx$Date)
exDate = df_dataEx$Date[1]
nbt = lengths(regmatches(exDate, gregexpr('-', exDate)))
if (nbt == 1) {
df_dataEx$Date = paste(df_dataEx$Date, '01', sep='-')
} else if (nbt == 0) {
df_dataEx$Date = paste(df_dataEx$Date, '01', '01', sep='-')
} else if (nbt != 2) {
stop('erreur of date format')
}
df_dataEx = bind_cols(Date=as.Date(df_dataEx$Date,
format="%Y-%m-%d"),
df_dataEx[-1],
df_list$info[df_dataEx$group,
2:ncol(df_list$info)])
df_listEx = prepare(df_dataEx, colnamegroup=colnamegroup)
return (df_listEx)
} }
clean = function (df_xTrend, df_list) { clean = function (df_xTrend, df_list) {
df_xTrend = bind_cols(df_xTrend, df_xTrend = bind_cols(df_xTrend,
......
...@@ -150,12 +150,13 @@ df_info = df_join$info ...@@ -150,12 +150,13 @@ df_info = df_join$info
# df_lac = get_lacune(df_data, df_info) # df_lac = get_lacune(df_data, df_info)
### /!\ verify order conservation ###
# AVERAGE ANNUAL FLOW : QA # # AVERAGE ANNUAL FLOW : QA #
### /!\ verify order conservation ###
df_QAlist = prepare(df_data, colnamegroup=c('code')) df_QAlist = prepare(df_data, colnamegroup=c('code'))
df_QAEx = extract.Var(data.station=df_QAlist, df_QAEx = extract.Var(data.station=df_QAlist,
funct=mean, funct=mean,
timestep='year',
period=period, period=period,
pos.datetime=1, pos.datetime=1,
na.rm=TRUE) na.rm=TRUE)
...@@ -164,32 +165,48 @@ df_QATrend = clean(df_QATrend, df_QAlist) ...@@ -164,32 +165,48 @@ df_QATrend = clean(df_QATrend, df_QAlist)
# MONTHLY MINIMUM FLOW IN THE YEAR : QMNA # # MONTHLY MINIMUM FLOW IN THE YEAR : QMNA #
df_QMNAlist = prepare(df_data, colnamegroup=c('code'))
fMNA = function (X) { ### /!\ PLUS RAPIDE ###
# prendre un paquet de 1 ans et faire la moyenne par mois et retourner le minimum des debit # fMNA = function (X) {
dpm = length(X)/12 # # prendre un paquet de 1 ans et faire la moyenne par mois et retourner le minimum des debit
# print(dpm) # dpm = length(X)/12
# print(length(X)) # # print(dpm)
monthmean = c() # # print(length(X))
for (i in 1:12) { # monthmean = c()
id = round(dpm*(i-1)+1, 0) # for (i in 1:12) {
iu = round(i*dpm, 0) # id = round(dpm*(i-1)+1, 0)
monthmean = append(monthmean, mean(X[id:iu], na.rm=TRUE)) # iu = round(i*dpm, 0)
# print(paste('start', id)) # monthmean = append(monthmean, mean(X[id:iu], na.rm=TRUE))
# print(paste('end', iu)) # # print(paste('start', id))
# print('') # # print(paste('end', iu))
} # # print('')
# print(monthmean) # }
return (min(monthmean, na.rm=TRUE)) # # print(monthmean)
} # return (min(monthmean, na.rm=TRUE))
# }
# df_QMNAEx = extract.Var(data.station=df_QMNAlist,
# funct=fMNA,
# period=period,
# pos.datetime=1)#,
# na.rm=TRUE) ### /!\ PAS COMPRIS ###
df_QMNAlist = prepare(df_data, colnamegroup=c('code')) df_QMNAEx = extract.Var(data.station=df_QMNAlist,
funct=mean,
period=period,
timestep='month',
pos.datetime=1,
na.rm=TRUE)
### /!\ NOM DE COLONNE PAS CONSERVER ###
df_QMNAlist = reprepare(df_QMNAEx, df_QMNAlist, colnamegroup=c('code'))
df_QMNAEx = extract.Var(data.station=df_QMNAlist, df_QMNAEx = extract.Var(data.station=df_QMNAlist,
funct=fMNA, funct=min,
period=period, period=period,
pos.datetime=1)#, timestep='year',
# na.rm=TRUE) ### /!\ PAS COMPRIS ### pos.datetime=1,
na.rm=TRUE)
df_QMNATrend = Estimate.stats(data.extract=df_QMNAEx) df_QMNATrend = Estimate.stats(data.extract=df_QMNAEx)
df_QMNATrend = clean(df_QMNATrend, df_QMNAlist) df_QMNATrend = clean(df_QMNATrend, df_QMNAlist)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment