1. 26 Nov, 2023 1 commit
  2. 15 Jun, 2023 1 commit
  3. 12 Apr, 2023 1 commit
  4. 24 Mar, 2023 1 commit
  5. 23 Mar, 2023 1 commit
  6. 22 Feb, 2023 1 commit
  7. 17 Feb, 2023 1 commit
  8. 13 Feb, 2023 1 commit
  9. 07 Feb, 2023 1 commit
    • Thibault Hallouin's avatar
      harmonise definitions for above/below threshold events · 4410a74f
      Thibault Hallouin authored
      Low flow events were defined as the complement of high flow events,
      meaning that Brier scores were symmetric. But it is more consistent to
      include the threshold value in both the definitions of low flow and
      high flow events since we either study one or the other, and rarely
      both at the same time, especially not using the same threshold values.
      Plus, the choice of including the threshold in high flow events rather
      than low flow ones was really arbitrary.
      
      Note, only the unit tests for contingency table-based metrics are
      impacted because threshold-based metrics are using evants="high".
      4410a74f
  10. 02 Feb, 2023 1 commit
  11. 01 Feb, 2023 1 commit
  12. 30 Jan, 2023 1 commit
  13. 27 Jan, 2023 2 commits
  14. 25 Jan, 2023 1 commit
  15. 23 Jan, 2023 2 commits
  16. 16 Jan, 2023 2 commits
  17. 13 Jan, 2023 2 commits
  18. 11 Jan, 2023 1 commit
  19. 04 Jan, 2023 1 commit
  20. 27 Dec, 2022 2 commits
  21. 21 Dec, 2022 1 commit
  22. 01 Dec, 2022 3 commits
  23. 20 Oct, 2022 1 commit
    • Thibault Hallouin's avatar
      pave the way for summary statistics on bootstrap samples · d37e69d2
      Thibault Hallouin authored
      Ultimately, the objective is for the user to be able to get the raw
      sampled metric values, or the mean and standard deviation of the sampled
      metric values, or a series of quantiles of the sampled metric values.
      There are still problems with the standard deviation on rtensor, and
      the computation of the quantiles does not work on n-dim expressions yet.
      So the second and third options are not possible yet, so only the raw
      values can be returned. Nonetheless, the machinery and the choice of
      where to introduce the summary functionality could be implemented,
      which is the purpose of this commit. A new parameter of the bootstrap
      experiment called "summary" is added: it can be given a value of 0 (to
      get the raw values). In the future, it would also take a value of 1 for
      mean+std, and 2 for quantiles.
      d37e69d2
  24. 06 Oct, 2022 1 commit
    • Thibault Hallouin's avatar
      implement bootstrapping method for metric uncertainty estimation · 16ce8f4e
      Thibault Hallouin authored
      The bootstrapping method is based on a non-overlapping block sampling
      with replacement, where the blocks are years of data. The number of
      samples and the sample length (i.e the number of year blocks) are both
      customisable.
      
      The method is accessible both for deterministic and probabilistic
      evaluation where a new axis is added. For now, the metrics for all the
      samples are returned, but in the future, some summary statistics would
      be implemented (e.g. quantiles or mean/standard deviation).
      
      /!\ For determinist evaluation, the n-dimensional functionality became
          untenable such that the number of dimensions was fixed and
          restricted to 2D tensors.
      
      New unit tests are included to test both the bootstrapping generator
      and the numerical results obtained with the bootstrapping turned on.
      16ce8f4e
  25. 30 Sep, 2022 1 commit
  26. 15 Sep, 2022 1 commit
  27. 13 Sep, 2022 1 commit
    • Thibault Hallouin's avatar
      allow masking conditions to be specified on predictions · f31664dd
      Thibault Hallouin authored
      An earlier implementation of the masking conditions assumed that the
      conditions on streamflow would only be on the observations, but this is
      not always the case. For example, reliability scores cannot be done on
      the observed streamflow and need to be performed on the predicted
      streamflow. So this is now possible as the condition syntax is changed
      and now *q_obs*/*q_prd_median*/*q_prd_mean* in place of *q*.
      f31664dd
  28. 12 Sep, 2022 1 commit
  29. 02 Sep, 2022 1 commit
  30. 31 Aug, 2022 1 commit
    • Thibault Hallouin's avatar
      implement functionality to generate temporal masks from conditions · b13d2f21
      Thibault Hallouin authored
      This functionality is inherited from `evalhyd-cli`. It allows the user
      to provide conditions as strings to specify how to generate temporal
      subsets. Conditions can be based on observed streamflow values (e.g.
      q>800, q<=120) or on time indices (e.g. to select particular events).
      
      This functionality is made available both for determinist and
      probabilist evaluation, unlike in  `evalhyd-cli` where it was only
      available for probabilist evaluation.
      
      This is documented in the docstrings, and new unit tests are written.
      b13d2f21
  31. 19 Aug, 2022 2 commits
    • Thibault Hallouin's avatar
      deal with missing data flagged as NaN in observations/predictions · 397501ad
      Thibault Hallouin authored
      The general approach is to "eliminate" the time steps where observations
      or predictions are missing as early as possible in the algorithm. The
      best approach seemed to update the user-provided temporal masks to
      also mask those time steps with missing data.
      
      An alternative approach would have been to create a view on the
      observations and predictions, e.g. using something like
      `xt::view(obs, ..., xt::drop(...))`, but this produces a non-contiguous
      view which cannot be sorted with `xt::sort` later to determine the
      quantiles.
      
      This is documented in `evalp` docstring and new unit tests are added.
      397501ad
    • Thibault Hallouin's avatar
      fix typo in unit test on masking · 41a30d84
      Thibault Hallouin authored
      resulting in only checking the first metric (i.e. BS) repeatedly
      41a30d84
  32. 10 Aug, 2022 1 commit