Ouranosinc / xscen

A climate change scenario-building analysis framework.
https://xscen.readthedocs.io/
Apache License 2.0
17 stars 2 forks source link

Have more than one definition per DerivedVariable #204

Open juliettelavoie opened 1 year ago

juliettelavoie commented 1 year ago

Generic Issue

Right now, we can only have one definition per DerivedVariable as the registery is a dictionnary with the name of the variable as a key.

If two definitions are given in conversions.yml, only the last one defined is kept.

Eventually, it would be nice to be able to have many definitions. E.g., tasmax_from_dtr_and_tas and tasmax_from_dtr_and_tasmin, different definitions of hurs, etc.

Temporary fix: define your own yaml if you want a different definition than the one by default in xscen

@RondeauG's suggestion:

Ça reste potentiellement un enjeu, car ça serait bien si on pouvait couvrir quelques combinaisons possibles au lieu de juste 1 seule. Je pourrais voir une PR compliquée où on modifie search_data_catalogs pour faire:

  1. Recherche avec les DerivedVariable par défaut (i.e. hurs_from_dewpoint, tasmin_from_dtr_and_tasmax)
  2. Recherches 2 à X avec les combinaisons supplémentaires (hurs, tasmin_from_dtr_and_tas) --> Répéter autant de fois qu'il existe de combinaisons possibles.
  3. Je ne crois pas qu'on puisse faire un pd.concat() des résultats, car il faut que les DerivedVariable soient gardés en mémoire dans le catalogue intake. À voir aussi comment on gèrerait une variable qui a ce qu'il faut pour être calculée de plusieurs manières.
  4. extract_dataset devrait aussi probablement être modifié.

References:

200

88