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) {
}
prepare = function(df_data, colnamegroup) {
prepare = function(df_data, colnamegroup=NULL) {
colnamegroup = c(colnamegroup)
colindgroup = which(colnames(df_data) == colnamegroup)
df_data = group_by_at(df_data, colindgroup)
data = tibble(Date=df_data$Date,
group=group_indices(df_data),
Qm3s=df_data$Qm3s)
Gkey = group_keys(df_data)
info = bind_cols(group=seq(1:nrow(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) {
df_xTrend = bind_cols(df_xTrend,
......
......@@ -150,12 +150,13 @@ df_info = df_join$info
# df_lac = get_lacune(df_data, df_info)
### /!\ verify order conservation ###
# AVERAGE ANNUAL FLOW : QA #
### /!\ verify order conservation ###
df_QAlist = prepare(df_data, colnamegroup=c('code'))
df_QAEx = extract.Var(data.station=df_QAlist,
funct=mean,
timestep='year',
period=period,
pos.datetime=1,
na.rm=TRUE)
......@@ -164,32 +165,48 @@ df_QATrend = clean(df_QATrend, df_QAlist)
# MONTHLY MINIMUM FLOW IN THE YEAR : QMNA #
df_QMNAlist = prepare(df_data, colnamegroup=c('code'))
fMNA = function (X) {
# prendre un paquet de 1 ans et faire la moyenne par mois et retourner le minimum des debit
dpm = length(X)/12
# print(dpm)
# print(length(X))
monthmean = c()
for (i in 1:12) {
id = round(dpm*(i-1)+1, 0)
iu = round(i*dpm, 0)
monthmean = append(monthmean, mean(X[id:iu], na.rm=TRUE))
# print(paste('start', id))
# print(paste('end', iu))
# print('')
}
# print(monthmean)
return (min(monthmean, na.rm=TRUE))
}
### /!\ PLUS RAPIDE ###
# fMNA = function (X) {
# # prendre un paquet de 1 ans et faire la moyenne par mois et retourner le minimum des debit
# dpm = length(X)/12
# # print(dpm)
# # print(length(X))
# monthmean = c()
# for (i in 1:12) {
# id = round(dpm*(i-1)+1, 0)
# iu = round(i*dpm, 0)
# monthmean = append(monthmean, mean(X[id:iu], na.rm=TRUE))
# # print(paste('start', id))
# # print(paste('end', iu))
# # print('')
# }
# # 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,
funct=fMNA,
funct=min,
period=period,
pos.datetime=1)#,
# na.rm=TRUE) ### /!\ PAS COMPRIS ###
timestep='year',
pos.datetime=1,
na.rm=TRUE)
df_QMNATrend = Estimate.stats(data.extract=df_QMNAEx)
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