Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • evalhyd-cpp evalhyd-cpp
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 3
    • Issues 3
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

La forge institutionnelle d'INRAE étant en production depuis le 10 juin 2025, nous vous invitons à y créer vos nouveaux projets.

  • HYCAR-HydroHYCAR-Hydro
  • evalhydevalhyd
  • evalhyd-cppevalhyd-cpp
  • Issues
  • #10
Closed
Open
Issue created Nov 22, 2023 by Thibault Hallouin@thibault.hallouinOwner

undefined value returned when asking for transform 'inv'/'log'/'pow' with negative exponent with missing observations

In deterministic evaluation, the small value added (epsilon) to avoid zero divide/log(0) is computed using the mean of the observations, but when the observed streamflow series contains missing values (NaN), its mean evaluates to NaN, and the metric value returned is also undefined (NaN).

This is because xt::mean is used (instead of xt::nanmean) on the following lines:

  • https://gitlab.irstea.fr/HYCAR-Hydro/evalhyd/evalhyd-cpp/-/blob/a8c62cd26901feb3ff1d745a24569a3814d0f023/include/evalhyd/evald.hpp#L394
  • https://gitlab.irstea.fr/HYCAR-Hydro/evalhyd/evalhyd-cpp/-/blob/a8c62cd26901feb3ff1d745a24569a3814d0f023/include/evalhyd/evald.hpp#L404
  • https://gitlab.irstea.fr/HYCAR-Hydro/evalhyd/evalhyd-cpp/-/blob/a8c62cd26901feb3ff1d745a24569a3814d0f023/include/evalhyd/evald.hpp#L422

While waiting for a new version release, the easy solution is obviously to compute the epsilon value manually (e.g. taking 1% of the mean observed streamflow series) and give it to evalhyd's evald via the epsilon parameter.

Edited Nov 22, 2023 by Thibault Hallouin
Assignee
Assign to
Time tracking