cerfacs-globc/icclim

ENH: Add missing ECAD indices

bzah opened this issue · 2 comments

bzah commented

icclim proposes an ECAD catalog but only ~49 indices are available.
With generic indices from #189 , it becomes trivial to implement new indices, as long as they follow a generic indicator pattern.

For the ECAD catalog we must add indices of radiation, pressure, cloud cover, sunshine, humidity
We should implement at least every generic indicator compatible index.

Missing ecad indices after merge of #230 :

  • GSL - Growing season length
    Cannot be generified easily ; exist in xclim : growing_season_length
    Added by #235
  • PP - Mean of daily sea level pressure
    Generic indicator -> Average
  • SPI3 - 3-Month Standardized Precipitation Index ;
    Cannot be generified easily ; exist in xclim: standardized_precipitation_index
    Added by #235
  • SPI6 - 6-Month Standardized Precipitation Index
    Cannot be generified easily ; exist in xclim: standardized_precipitation_index
    Added by #235
  • SS - Sunshine duration
    Generic indicator -> Sum
  • SSp - Sunshine duration fraction with respect to daylength
    Cannot be generified easily ; does not exist in xclim
  • PET - Potential EvapoTranspiration
    Cannot be generified easily ; exist in xclim: potential_evapotranspiration
  • RH - Mean of daily relative humidity
    Generic indicator -> Average
  • CC - Mean of daily cloud cover
    New Unit (oktas/octas) ; Generic indicator -> Average
    The conversion from % to okta might not be straightforward to add to the pint registry (to do in xclim or/and cf-xarray)
  • CC2 - Mostly sunny days (cloud cover ≤ 2 oktas)
    New Unit (oktas/octas) ; Generic indicator -> count_occurrences(threshold="<= 2 oktas")
  • CC6 - Mostly cloudy days (cloud cover ≥ 6 oktas)
    New Unit (oktas/octas) ; Generic indicator -> count_occurrences(threshold=">= 6 oktas")
  • UTCI - Mean of the Universal Thermal Climate Index
    Cannot be generified easily ; exist in xclim: universal_thermal_climate_index
  • TCI - Mean of the Tourism Climatic Index
    Cannot be generified easily ; does not exist in xclim
  • TCI60 - Days where the Tourism Climatic Index ≥ 60
    Need a new TCI (unitless ?) StandardVariable ; Generic indicator -> count_occurrences(threshold=">= 60") ;
  • TCI80 - Days where the Tourism Climatic Index ≥ 80
    Need a new TCI (unitless ?) StandardVariable ; Generic indicator -> count_occurrences(threshold=">= 60") ;
  • HI - Huglin Index (index specifically aimed at grap growth)
    Cannot be generified easily ; exist in xclim: huglin_index
  • BEDD - Biologically Effective Degree Days (grape growth again)
    Could be generified ; exist in xclim: biologically_effective_degree_days

As we can see from the list above, it would be quite useful to (re)do a binding between icclim standard indices toward xclim indicators so that we would have access to most ecad indices without having the burden of gentrifying them.


Related issues:

PR:

xclim indicators (link to latest!): https://xclim.readthedocs.io/en/latest/xclim.indicators.atmos.html

bzah commented

@pagecp I was looking into adding the cloudiness indices but I have issues with the oktas (aka octas) unit.

The ATBD says oktas should be computed with ROUND((cloud cover in percents/100)*8) :

Daily mean cloud cover CC Whenever synoptical cloud cover data is available at 00, 06, 12 and/or 18 UT, mean daily cloud cover is calculated as the average of the available values.
This value in percent is converted to octas by ROUND((cloud cover in percents/100)*8)

But I wonder if we should keep the rounding operator because:

  • It's fairly difficult to implement a rounding for automatic conversion with Pint, our unit library.
  • I don't see the value in reducing the accuracy of the measure by rounding it.

Also, when we look at CF cloud_area_fraction which is based on CMIP6 Total Cloud Cover Percentage unit is percents.
We could simply convert the cloudiness indices [ CC, CC2, CC6 ] that are based on oktas to be based on percents, as long as we display the proper unit.

What do you think ?

bzah commented

conclusion: we should really try to add oktas as a unit in our pint registry