Calculation of hydrological indicators
V02-hydrological_indicators.Rmd
The aim of this vignette is to show the calculation of all statistical indicators only related to flow data (indicator evolving precipitation and comparison between observed and simulated flows are excluded).
library(CARD)
#> Loading required package: EXstat
library(airGRdatasets)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
Dataset
We use flow time series of three random gauging stations provided by
the package airGRdatasets (See vignette
V01-climatic_indicators
for more details).
# Get all data sets in the package
station_ids <- ls("package:airGRdatasets")
# Sample 3 stations
sel_ids <- sample(station_ids, size = 3)
sel_ids
#> [1] "K265401001" "K134181001" "E645651001"
# "Tidy format" the time series
df_ts <- dplyr::bind_rows(
lapply(sel_ids,
function(id){
df <- base::get(id)$TS
df$id <- id
return(df)
})
)
df_ts$Date <- as.Date(df_ts$Date) # Convert to date format
str(df_ts)
#> 'data.frame': 21915 obs. of 7 variables:
#> $ Date: Date, format: "1999-01-01" "1999-01-02" ...
#> $ Ptot: num 0.2 18.9 22.5 0.5 0 0 1.8 16.6 3.4 11.8 ...
#> $ Temp: num 3.8 3.1 4.2 6.1 8.5 8.3 6.1 3 -0.6 -4 ...
#> $ Evap: num 0.4 0.3 0.4 0.5 0.6 0.6 0.5 0.3 0.2 0 ...
#> $ Qls : int 3120 3150 5380 6440 5330 4990 4640 5190 5460 4810 ...
#> $ Qmmd: num 1.25 1.26 2.15 2.57 2.13 ...
#> $ id : chr "K265401001" "K265401001" "K265401001" "K265401001" ...
Selection of hydrological indicators
We use the function CARD_list_all()
to get the complete
list of available indicators.
metaEX_all = CARD_list_all()
str(metaEX_all)
#> tibble [563 × 23] (S3: tbl_df/tbl/data.frame)
#> $ CARD_name : chr [1:563] "ETPA" "BFI-Wal" "BFM" "delta{centerBF}_H1" ...
#> $ variable_en : chr [1:563] "ETPA" "BFI-Wal" "BFM" "delta{centerBF}_H1" ...
#> $ unit_en : chr [1:563] "mm" "without unit" "without unit" "day" ...
#> $ name_en : chr [1:563] "Cumulative annual evapotranspiration" "Baseflow index" "Baseflow magnitude" "Average change of the center of low flows between the near horizon and historical period" ...
#> $ description_en : chr [1:563] "" "Ratio between mean inter-annual base flow and mean inter-annual flow" "" "Date when 50 % of the annual cumulative baseflow is reached" ...
#> $ method_en : chr [1:563] "" "1. no temporal aggregation - extraction of the base flow (Wallingford)\n2. no temporal aggregation - calculatio"| __truncated__ "1. no temporal aggregation - extraction of the base flow (Wallingford)\n2. aggregation by day of the year - ave"| __truncated__ "1. annual aggregation [09-01, 08-31] - date when the baseflow (Wallingford) sum corresponds to 50 % of the tota"| __truncated__ ...
#> $ sampling_period_en : chr [1:563] "09-01, 08-31" NA NA "09-01, 08-31" ...
#> $ topic_en : chr [1:563] "Evapotranspiration, Average, Intensity" "Flow, Base Flow, Intensity" "Flow, Base Flow, Intensity" "Flow, Baseflow, Seasonality" ...
#> $ variable_fr : chr [1:563] "ETPA" "BFI-Wal" "BFM" "delta{centreQB}_H1" ...
#> $ unit_fr : chr [1:563] "mm" "sans unité" "sans unité" "jour" ...
#> $ name_fr : chr [1:563] "Cumul des évapotranspirations annuelles" "Indice de débit de base" "Magnitude du débit de base" "Changement moyen du centre des écoulements lents entre l'horizon proche et la période historique" ...
#> $ description_fr : chr [1:563] "" "Rapport entre débit de base moyen inter-annuel et débit moyen inter-annuel" "" "Date à laquelle 50 % du cumul annuel du débit de base sont atteints" ...
#> $ method_fr : chr [1:563] "" "1. aucune agrégation temporelle - extraction du débit de base (Wallingford)\n2. aucune agrégation temporelle - calcul du BFI" "1. aucune agrégation temporelle - extraction du débit de base (Wallingford)\n2. agrégation par jour de l’année "| __truncated__ "1. agrégation annuelle [01-09, 31-08] - date à laquelle la somme du débit de base (Wallingford) correspond à 50"| __truncated__ ...
#> $ sampling_period_fr : chr [1:563] "01-09, 31-08" NA NA "01-09, 31-08" ...
#> $ topic_fr : chr [1:563] "Évapotranspiration, Moyenne, Intensité" "Débit, Débit de Base, Intensité" "Débit, Débit de Base, Intensité" "Débit, Débit de Base, Saisonnalité" ...
#> $ is_experimental : logi [1:563] FALSE FALSE FALSE FALSE FALSE FALSE ...
#> $ input_vars : chr [1:563] "ETP" "Q" "Q" "Q" ...
#> $ source : chr [1:563] NA "TALLAKSEN, L. et H. VAN LANEN, éd. (2004). Hydrological drought. Processes and estimation methods for streamflo"| __truncated__ "TALLAKSEN, L. et H. VAN LANEN, éd. (2004). Hydrological drought. Processes and estimation methods for streamflo"| __truncated__ "TALLAKSEN, L. et H. VAN LANEN, éd. (2004). Hydrological drought. Processes and estimation methods for streamflo"| __truncated__ ...
#> $ preferred_sampling_period: chr [1:563] NA NA NA "09-01" ...
#> $ is_date : logi [1:563] FALSE FALSE FALSE TRUE TRUE TRUE ...
#> $ to_normalise : logi [1:563] FALSE FALSE FALSE FALSE FALSE FALSE ...
#> $ palette : chr [1:563] "#452C1A #7F4A23 #B3762A #D4B86A #EFE0B0 #BCE6DB #7ACEB9 #449C93 #2A6863 #193830" NA NA "#60265e #893687 #c05fbe #dba3da #edd1ec #f6ddd3 #edbaa7 #e08765 #CD5629 #8f3c1d" ...
#> $ script_path : chr [1:563] "Evapotranspiration/ETPA.R" "Flow/Baseflow/criteria/BFI-Wal.R" "Flow/Baseflow/criteria/BFM.R" "Flow/Baseflow/criteria/delta{centerBF}_H.R" ...
On which we can filter criteria on flows excluding indicators related to:
- performance of hydrological model
- indicators computed for future horizon periods
- sensitivity to climate variability
- indicators invoking the currently bugged function
GeneralMannKendall_WRAP
- the indicator
med{dtRec}
that is currently crashing
metaEX_flow <- metaEX_all %>%
filter(grepl("Flow", topic_en),
!grepl("Performance", topic_en),
!grepl("_H[0-3]*$" , variable_en),
!grepl("Sensitivity_to_Climate_Variability", script_path),
# 'GeneralMannKendall_WRAP' is not an exported object from 'namespace:EXstat'
!grepl("alpha" , variable_en),
# Error in `dplyr::arrange()`: In argument: `..1 = get(date_col)`
variable_en != "med{dtRec}")
knitr::kable(metaEX_flow %>% select("variable_en", name_en))
variable_en | name_en |
---|---|
BFI-Wal | Baseflow index |
BFM | Baseflow magnitude |
med{centerBF} | Median center of baseflow |
med{dtBF} | Median duration of baseflow |
med{endBF} | Median of the end of base flows |
med{startBF} | Median start of baseflow |
med{vBF} | Median of the annual volume generated by base flow |
BF-LH | Base flow (Lyne and Hollick) |
centerBF | Center of low flows |
dtBF | Duration of low flows |
endBF | End of Base Flow |
startBF | Start of low flows |
vBF | Annual volume generated by the baseflow |
med{dtFlood} | Median duration of floods |
med{tQJXA} | Median of dates of the annual maximum daily discharge |
Q10 | Flow exceeded 1 year in 10 |
QJXA-10 | Annual maximum daily flow with a 10-year return period |
dtFlood | Duration of floods |
fQ01A | Annual frequency of exceeding Q01 |
fQ05A | Annual frequency of exceeding Q05 |
fQ10A | Annual frequency of exceeding Q10 |
Q01A | Annual flow exceeded 1 year in 100 |
Q05A | Annual flow exceeded 1 year in 20 |
Q10A | Annual flow exceeded 1 year in 10 |
QJXA | Annual maximum daily flow |
tQJXA | Date of the annual maximum daily discharge |
tVCX10 | Date of the annual maximum of the 10-day mean of daily flow |
tVCX3 | Date of the annual maximum of the 3-day mean of daily flow |
VCX10 | Annual Maximum of the 10-day Moving Average of Daily Flows |
VCX3 | Annual Maximum of the 3-day Moving Average of Daily Flows |
startLF_summer | Start of summer low flows |
centerLF_summer | Center of summer low flows |
endLF_summer | End of summer low flows |
dtLF_summer | Duration of summer low flows |
vLF_summer | Volume deficit of summer low flows |
QMNA_summer | Summer minimum of monthly flows |
QNA_summer | Summer minimum of daily discharge |
tVCN10_summer | Date of the summer minimum of 10-day mean flows |
VCN10_summer | Summer minimum of 10-day mean daily discharge |
VCN3_summer | Summer minimum of 3-day mean daily discharge |
VCN30_summer | Summer minimum of 30-day mean daily discharge |
startLF_winter | Start of winter low flows |
centerLF_winter | Center of winter low flows |
endLF_winter | End of winter low flows |
dtLF_winter | Duration of winter low flows |
vLF_winter | Volume deficit of winter low flows |
QMNA_winter | Winter minimum of monthly flows |
QNA_winter | Winter minimum of daily discharge |
tVCN10_winter | Date of the winter minimum of 10-day mean flows |
VCN10_winter | Winter minimum of 10-day mean daily discharge |
VCN3_winter | Winter minimum of 3-day mean daily discharge |
VCN30_winter | Winter minimum of 30-day mean daily discharge |
med{startLF} | Median of the start of low flows |
med{centerLF} | Median of the center of low flows |
med{endLF} | Median of the end of low flows |
med{dtLF} | Median of the duration of low flows |
med{vLF} | Median of the volume deficit of low flows |
med{tVCN10} | Median of dates of the annual minimum of 10-day mean flows |
Q90 | Flow exceeded 9 years out of 10 |
QMNA-5 | Annual minimum of monthly flows with a return period of 5 years |
VCN10-5 | Annual minimum of 10-day mean daily discharge with a return period of 5 years |
VCN30-2 | Annual minimum of 30-day mean daily discharge with a return period of 2 years |
Q90A | Annual flow exceeded 9 years out of 10 |
Q95A | Annual flow exceeded 19 years out of 20 |
Q99A | Annual flow exceeded 99 years out of 100 |
QMNA | Annual minimum of monthly flows |
QNA | Annual minimum of daily discharge |
tVCN10 | Date of the annual minimum of 10-day mean flows |
VCN10 | Annual minimum of 10-day mean daily discharge |
VCN3 | Annual minimum of 3-day mean daily discharge |
VCN30 | Annual minimum of 30-day mean daily discharge |
aFDC | Slope of the segment between the 33% and 66% quantiles of the flow duration curve |
meanQA | Average of annual average daily flow |
Q50 | Flow median |
FDC | Flow duration curve |
medQJ | Median inter-annual flow |
medQJC5 | 5-day centered moving average of the inter-annual median flow |
Q25A | Third quartile of annual flows |
Q50A | Median of annual flows |
Q75A | First quartile of annual flows |
QA | Annual mean daily discharge |
QJC10 | Mean monthly discharge averaged over 10 days |
QM | Mean monthly discharge |
QMA_jan | Average daily discharge for each January |
QMA_feb | Average daily discharge for each February |
QMA_mar | Average daily discharge for each March |
QMA_apr | Average daily discharge for each April |
QMA_may | Average daily discharge for each May |
QMA_jun | Average daily discharge for each June |
QMA_jul | Average daily discharge for each July |
QMA_aug | Average daily discharge for each August |
QMA_sep | Average daily discharge for each September |
QMA_oct | Average daily discharge for each October |
QMA_nov | Average daily discharge for each November |
QMA_dec | Average daily discharge for each December |
QSA_JJASO | Seasonal annual mean daily discharge |
QSA_DJF | Average daily flows for each winter |
QSA_MAM | Average daily flows for each spring |
QSA_JJA | Average daily flows for each summer |
QSA_SON | Average daily flows for each autumn |
Finally, we format the data and run the function
CARD_extraction()
.
df_flow <- df_ts %>%
select("Date", "id", "Qls") %>%
rename(Q = "Qls") %>%
mutate(Q = Q / 1000) # Convert to m3/s
str(df_flow)
#> 'data.frame': 21915 obs. of 3 variables:
#> $ Date: Date, format: "1999-01-01" "1999-01-02" ...
#> $ id : chr "K265401001" "K265401001" "K265401001" "K265401001" ...
#> $ Q : num 3.12 3.15 5.38 6.44 5.33 4.99 4.64 5.19 5.46 4.81 ...
res_flow <- CARD_extraction(
df_flow,
CARD_name = metaEX_flow$variable_en
)
#> Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
#> dplyr 1.1.0.
#> ℹ Please use `reframe()` instead.
#> ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
#> always returns an ungrouped data frame and adjust accordingly.
#> ℹ The deprecated feature was likely used in the EXstat package.
#> Please report the issue to the authors.
#> This warning is displayed once every 8 hours.
#> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
#> generated.
#> Warning in process_extraction(data = data, funct = funct, funct_args =
#> funct_args, : 'keep' is coherced to NULL. 'keep' can be non NULL only if
#> 'time_step' is not 'month', 'season' or 'yearday'.
#> Warning: There were 1098 warnings in `dplyr::summarise()`.
#> The first warning was:
#> ℹ In argument: `ValueEX1 = f("Q_obs", na.rm = TRUE)`.
#> ℹ In group 1: `Code = "E645651001"` `group = 1`.
#> Caused by warning in `mean.default()`:
#> ! argument is not numeric or logical: returning NA
#> ℹ Run `dplyr::last_dplyr_warnings()` to see the 1097 remaining warnings.
#> 'keep' seems to only select aggragated column. Thus, 'keep' will be coherced to NULL.
str(res_flow)
#> List of 2
#> $ metaEX: tibble [72 × 22] (S3: tbl_df/tbl/data.frame)
#> ..$ variable_en : chr [1:72] "BFI-Wal" "BFM" "med{centerBF}" "med{dtBF}" ...
#> ..$ unit_en : chr [1:72] "without unit" "without unit" "yearday" "day" ...
#> ..$ name_en : chr [1:72] "Baseflow index" "Baseflow magnitude" "Median center of baseflow" "Median duration of baseflow" ...
#> ..$ description_en : chr [1:72] "Ratio between mean inter-annual base flow and mean inter-annual flow" "" "Median of the dates at which 50 % of the annual cumulative baseflow is reached" "Median of the durations between the start and end of baseflow" ...
#> ..$ method_en : chr [1:72] "1. no temporal aggregation - extraction of the base flow (Wallingford)\n2. no temporal aggregation - calculatio"| __truncated__ "1. no temporal aggregation - extraction of the base flow (Wallingford)\n2. aggregation by day of the year - ave"| __truncated__ "1. annual aggregation [09-01, 08-31] - date at which the baseflow (Wallingford) sum Qb (Section 8.6.2) correspo"| __truncated__ "1. annual aggregation [09-01, 08-31] - number of days between the dates at which the baseflow (Wallingford) sum"| __truncated__ ...
#> ..$ topic_en : chr [1:72] "Flow, Base Flow, Intensity" "Flow, Base Flow, Intensity" "Flow, Baseflow, Seasonality" "Flow, Baseflow, Duration" ...
#> ..$ variable_fr : chr [1:72] "BFI-Wal" "BFM" "med{centreQB}" "med{dtQB}" ...
#> ..$ unit_fr : chr [1:72] "sans unité" "sans unité" "jour de l'année" "jour" ...
#> ..$ name_fr : chr [1:72] "Indice de débit de base" "Magnitude du débit de base" "Médiane du centre des écoulements lents" "Médiane de la durée des écoulements lents" ...
#> ..$ description_fr : chr [1:72] "Rapport entre débit de base moyen inter-annuel et débit moyen inter-annuel" "" "Médiane des dates à laquelle 50 % du cumul annuel du débit de base sont atteints" "Médiane des durées entre le début et la fin des écoulements lents" ...
#> ..$ method_fr : chr [1:72] "1. aucune agrégation temporelle - extraction du débit de base (Wallingford)\n2. aucune agrégation temporelle - calcul du BFI" "1. aucune agrégation temporelle - extraction du débit de base (Wallingford)\n2. agrégation par jour de l’année "| __truncated__ "1. agrégation annuelle [01-09, 31-08] - date à laquelle la somme du débit de base (Wallingford) Qb (Section 8.6"| __truncated__ "1. agrégation annuelle [01-09, 31-08] - nombre de jours entre les dates auxquelles la somme du débit de base (W"| __truncated__ ...
#> ..$ topic_fr : chr [1:72] "Débit, Débit de Base, Intensité" "Débit, Débit de Base, Intensité" "Débit, Débit de Base, Saisonnalité" "Débit, Débit de Base, Durée" ...
#> ..$ is_experimental : logi [1:72] FALSE FALSE FALSE FALSE FALSE FALSE ...
#> ..$ input_vars : chr [1:72] "Q" "Q" "Q" "Q" ...
#> ..$ source : chr [1:72] "TALLAKSEN, L. et H. VAN LANEN, éd. (2004). Hydrological drought. Processes and estimation methods for streamflo"| __truncated__ "TALLAKSEN, L. et H. VAN LANEN, éd. (2004). Hydrological drought. Processes and estimation methods for streamflo"| __truncated__ "TALLAKSEN, L. et H. VAN LANEN, éd. (2004). Hydrological drought. Processes and estimation methods for streamflo"| __truncated__ "TALLAKSEN, L. et H. VAN LANEN, éd. (2004). Hydrological drought. Processes and estimation methods for streamflo"| __truncated__ ...
#> ..$ preferred_sampling_period: chr [1:72] NA NA "09-01" "09-01" ...
#> ..$ is_date : logi [1:72] FALSE FALSE TRUE FALSE TRUE TRUE ...
#> ..$ to_normalise : logi [1:72] FALSE FALSE FALSE TRUE FALSE FALSE ...
#> ..$ script_path : chr [1:72] "Flow/Baseflow/criteria/BFI-Wal.R" "Flow/Baseflow/criteria/BFM.R" "Flow/Baseflow/criteria/med{centerBF}.R" "Flow/Baseflow/criteria/med{dtBF}.R" ...
#> ..$ sampling_period_en : chr [1:72] NA NA "09-01, 08-31" "09-01, 08-31" ...
#> ..$ sampling_period_fr : chr [1:72] NA NA "01-09, 31-08" "01-09, 31-08" ...
#> ..$ palette : chr [1:72] NA NA NA NA ...
#> $ dataEX:List of 72
#> ..$ BFI-Wal : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ BFI-Wal: num [1:3] 0.974 0.511 0.693
#> ..$ BFM : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ BFM: num [1:3] 0.146 0.937 0.8
#> ..$ med{centerBF}: tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{centerBF}: num [1:3] 68 40 62
#> ..$ med{dtBF} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{dtBF}: num [1:3] 284 164 206
#> ..$ med{endBF} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{endBF}: num [1:3] 201 133 164
#> ..$ med{startBF} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{startBF}: num [1:3] 282 325 320
#> ..$ med{vBF} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{vBF}: num [1:3] 62.3 388.5 88.7
#> ..$ BF-LH : tibble [21,915 × 4] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:21915] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:21915], format: "1999-01-01" "1999-01-02" ...
#> .. ..$ Q : num [1:21915] 1.75 1.79 1.84 1.89 1.92 1.86 1.99 1.98 1.93 1.88 ...
#> .. ..$ BF-LH: num [1:21915] 1.75 1.75 1.75 1.75 1.75 ...
#> ..$ centerBF : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-09-01" "1999-09-01" ...
#> .. ..$ centerBF: num [1:63] NA NA 94 75 62 NA NA NA 75 NA ...
#> ..$ dtBF : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:63], format: "1998-09-01" "1999-09-01" ...
#> .. ..$ dtBF: num [1:63] NA NA 269 284 279 NA NA NA 290 NA ...
#> ..$ endBF : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-09-01" "1999-09-01" ...
#> .. ..$ endBF: num [1:63] NA NA 203 197 197 NA NA NA 206 NA ...
#> ..$ startBF : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-09-01" "1999-09-01" ...
#> .. ..$ startBF: num [1:63] NA NA 301 279 284 NA NA NA 282 NA ...
#> ..$ vBF : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:63], format: "1998-09-01" "1999-09-01" ...
#> .. ..$ vBF : num [1:63] NA 71.5 108.7 91.9 77.3 ...
#> ..$ med{dtFlood} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{dtFlood}: num [1:3] 2 3 4
#> ..$ med{tQJXA} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{tQJXA}: num [1:3] 44.3 36.4 41.3
#> ..$ Q10 : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ Q10: num [1:3] 2.74 66.96 8.47
#> ..$ QJXA-10 : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ QJXA-10: num [1:3] 5.54 344.96 46.72
#> ..$ dtFlood : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ dtFlood: int [1:63] NA 2 2 1 1 NA NA NA NA 2 ...
#> ..$ fQ01A : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ fQ01A: num [1:63] NA 0.00273 0.17808 0.00548 0 ...
#> ..$ fQ05A : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ fQ05A: num [1:63] NA 0.00546 0.58082 0.32055 0.0137 ...
#> ..$ fQ10A : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ fQ10A: num [1:63] NA 0.148 0.822 0.466 0.359 ...
#> ..$ Q01A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q01A: num [1:60] NA 3.03 5.91 4.15 3.22 ...
#> ..$ Q05A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q05A: num [1:60] NA 2.89 5.32 4.02 3.04 ...
#> ..$ Q10A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q10A: num [1:60] NA 2.85 5.14 3.87 2.98 ...
#> ..$ QJXA : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ QJXA: num [1:63] NA 5.4 6.2 5.25 3.9 NA NA NA NA 3.02 ...
#> ..$ tQJXA : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ tQJXA: num [1:63] NA -6 98 78 1 NA NA NA NA 220 ...
#> ..$ tVCX10 : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ tVCX10: num [1:63] NA -3 118 107 62 NA NA NA NA NA ...
#> ..$ tVCX3 : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ tVCX3: num [1:63] NA -5 117 79 2 NA NA NA NA 220 ...
#> ..$ VCX10 : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ VCX10: num [1:63] NA 3.05 5.55 4.05 3.1 ...
#> ..$ VCX3 : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:63], format: "1998-10-01" "1999-10-01" ...
#> .. ..$ VCX3: num [1:63] NA 4.11 5.82 4.66 3.37 ...
#> ..$ QMNA_summer : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:60], format: "1999-05-01" "2000-05-01" ...
#> .. ..$ QMNA_summer: num [1:60] NA 2.17 2.64 2.03 1.69 ...
#> ..$ QNA_summer : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:60], format: "1999-05-01" "2000-05-01" ...
#> .. ..$ QNA_summer: num [1:60] NA 2.08 2.46 1.92 1.61 1.1 NA 1.44 NA 1.82 ...
#> ..$ tVCN10_summer: tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:60], format: "1999-05-01" "2000-05-01" ...
#> .. ..$ tVCN10_summer: num [1:60] NA 252 326 299 313 304 NA 308 NA 267 ...
#> ..$ VCN10_summer : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:60], format: "1999-05-01" "2000-05-01" ...
#> .. ..$ VCN10_summer: num [1:60] NA 2.1 2.52 2.01 1.65 ...
#> ..$ VCN3_summer : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:60], format: "1999-05-01" "2000-05-01" ...
#> .. ..$ VCN3_summer: num [1:60] NA 2.09 2.49 1.94 1.62 ...
#> ..$ VCN30_summer : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:60], format: "1999-05-01" "2000-05-01" ...
#> .. ..$ VCN30_summer: num [1:60] NA 2.15 2.6 2.02 1.66 ...
#> ..$ QMNA_winter : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-11-01" "1999-11-01" ...
#> .. ..$ QMNA_winter: num [1:63] NA 1.87 2.49 2.46 2.26 ...
#> ..$ QNA_winter : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-11-01" "1999-11-01" ...
#> .. ..$ QNA_winter: num [1:63] NA 1.72 2.31 2.3 1.94 NA NA NA 1.44 1.51 ...
#> ..$ tVCN10_winter: tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-11-01" "1999-11-01" ...
#> .. ..$ tVCN10_winter: num [1:63] NA 336 305 377 304 NA NA NA 308 317 ...
#> ..$ VCN10_winter : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-11-01" "1999-11-01" ...
#> .. ..$ VCN10_winter: num [1:63] NA 1.77 2.34 2.35 2.12 ...
#> ..$ VCN3_winter : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-11-01" "1999-11-01" ...
#> .. ..$ VCN3_winter: num [1:63] NA 1.73 2.32 2.31 2.06 ...
#> ..$ VCN30_winter : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:63], format: "1998-11-01" "1999-11-01" ...
#> .. ..$ VCN30_winter: num [1:63] NA 1.84 2.38 2.38 2.19 ...
#> ..$ med{dtLF} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{dtLF}: num [1:3] 279 71 84
#> ..$ med{startLF} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{startLF}: num [1:3] 91 201 195
#> ..$ med{tVCN10} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{tVCN10}: num [1:3] 304 247 244
#> ..$ med{vLF} : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ med{vLF}: num [1:3] 42.34 15.06 9.11
#> ..$ Q90 : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ Q90: num [1:3] 1.42 1.91 1.03
#> ..$ QMNA-5 : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ QMNA-5: num [1:3] 1.459 1.33 0.939
#> ..$ VCN10-5 : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ VCN10-5: num [1:3] 1.407 0.893 0.754
#> ..$ VCN30-2 : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ VCN30-2: num [1:3] 1.69 2 1.06
#> ..$ Q90A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q90A: num [1:60] NA 2.21 2.55 2.09 1.64 ...
#> ..$ Q95A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q95A: num [1:60] NA 2.15 2.5 2.02 1.62 ...
#> ..$ Q99A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q99A: num [1:60] NA 2.09 2.38 1.96 1.55 ...
#> ..$ QMNA : tibble [62 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:62] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:62], format: "1998-04-01" "1999-04-01" ...
#> .. ..$ QMNA: num [1:62] NA NA 2.17 2.46 2.03 ...
#> ..$ QNA : tibble [62 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:62] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:62], format: "1998-04-01" "1999-04-01" ...
#> .. ..$ QNA : num [1:62] NA NA 2.08 2.3 1.92 NA NA NA 1.44 NA ...
#> ..$ tVCN10 : tibble [62 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:62] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:62], format: "1998-04-01" "1999-04-01" ...
#> .. ..$ tVCN10: num [1:62] NA NA 252 377 299 NA NA NA 308 NA ...
#> ..$ VCN10 : tibble [62 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:62] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:62], format: "1998-04-01" "1999-04-01" ...
#> .. ..$ VCN10: num [1:62] NA NA 2.1 2.35 2.01 ...
#> ..$ VCN3 : tibble [62 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:62] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:62], format: "1998-04-01" "1999-04-01" ...
#> .. ..$ VCN3: num [1:62] NA NA 2.09 2.31 1.94 ...
#> ..$ VCN30 : tibble [62 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:62] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:62], format: "1998-04-01" "1999-04-01" ...
#> .. ..$ VCN30: num [1:62] NA NA 2.15 2.38 2.02 ...
#> ..$ aFDC : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ aFDC: num [1:3] -0.325 -1.699 -1.109
#> ..$ meanQA : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ meanQA: num [1:3] 2.15 25.95 4.23
#> ..$ Q50 : tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3] "E645651001" "K134181001" "K265401001"
#> .. ..$ Q50: num [1:3] 1.89 12 2.91
#> ..$ FDC : tibble [3,000 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:3000] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ FDC_p: num [1:3000] 0.00135 0.00138 0.0014 0.00143 0.00146 ...
#> .. ..$ FDC_Q: num [1:3000] 5.52 5.52 5.52 5.51 5.51 ...
#> ..$ medQJ : tibble [1,095 × 4] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:1095] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:1095], format: "1999-01-01" "1999-01-02" ...
#> .. ..$ Yearday: num [1:1095] 1 2 3 4 5 6 7 8 9 10 ...
#> .. ..$ medQJ : num [1:1095] 1.75 1.78 1.84 1.84 1.92 ...
#> ..$ medQJC5 : tibble [1,095 × 5] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:1095] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:1095], format: "1999-01-01" "1999-01-02" ...
#> .. ..$ Yearday: num [1:1095] 1 2 3 4 5 6 7 8 9 10 ...
#> .. ..$ medQJ : num [1:1095] 1.75 1.78 1.84 1.84 1.92 ...
#> .. ..$ medQJC5: num [1:1095] 1.77 1.79 1.83 1.85 1.89 ...
#> ..$ Q25A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q25A: num [1:60] NA 2.71 4.44 3.42 2.9 ...
#> ..$ Q50A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q50A: num [1:60] NA 2.49 3.42 2.54 2.32 ...
#> ..$ Q75A : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:60], format: "1999-01-01" "2000-01-01" ...
#> .. ..$ Q75A: num [1:60] NA 2.32 2.84 2.28 1.79 NA NA NA NA 1.91 ...
#> ..$ QA : tibble [63 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:63] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date: Date[1:63], format: "1998-09-01" "1999-09-01" ...
#> .. ..$ QA : num [1:63] NA 2.35 3.55 2.99 2.5 ...
#> ..$ QJC10 : tibble [1,095 × 2] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:1095] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ QJC10: num [1:1095] NA NA NA NA NA NA NA NA NA NA ...
#> ..$ QM : tibble [36 × 4] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:36] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:36], format: "1999-01-01" "1999-02-01" ...
#> .. ..$ Month: num [1:36] 1 2 3 4 5 6 7 8 9 10 ...
#> .. ..$ QM : num [1:36] NA NA NA 2.37 2.31 ...
#> ..$ QSA_JJASO : tibble [60 × 3] (S3: tbl_df/tbl/data.frame)
#> .. ..$ id : chr [1:60] "E645651001" "E645651001" "E645651001" "E645651001" ...
#> .. ..$ Date : Date[1:60], format: "1999-06-01" "2000-06-01" ...
#> .. ..$ QSA_JJASO: num [1:60] NA 2.38 3.41 2.5 2.03 ...