"""Module for the ECA&D indices."""
from __future__ import annotations
from icclim._core.constants import ECAD_ATBD, QUANTILE_BASED, REFERENCE_PERIOD_INDEX
from icclim._core.model.index_group import IndexGroupRegistry
from icclim._core.model.registry import Registry
from icclim._core.model.standard_index import StandardIndex
from icclim._core.model.standard_variable import StandardVariableRegistry
from icclim.ecad.binding import (
GrowingSeasonLength,
StandardizedPrecipitationIndex3,
StandardizedPrecipitationIndex6,
)
from icclim.generic.registry import GenericIndicatorRegistry
from icclim.threshold.factory import build_threshold
ECAD_REFERENCE = (
"ATBD of the ECA&D indices calculation"
" (https://knmi-ecad-assets-prd.s3.amazonaws.com/documents/atbd.pdf)"
)
[docs]
class EcadIndexRegistry(Registry[StandardIndex]):
"""
Registry for ECAD indices.
This class represents a registry for ECAD indices. It provides a collection of
standard indices used for climate analysis.
"""
_item_class = StandardIndex
# TODO @bzah: Add indices of wind gust, wind direction,
# radiation, pressure, cloud cover, sunshine, humidity
# https://github.com/cerfacs-globc/icclim/issues/289
@staticmethod
[docs]
def get_item_aliases(item: StandardIndex) -> list[str]:
"""Get the aliases of an item."""
return [item.short_name]
@classmethod
[docs]
def to_list(cls: type) -> list[str]:
"""Get a printable list of all indices in the registry."""
return [
f"{i.group.name} | {i.short_name} | {i.definition}" for i in cls.values()
]
TG = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
output_unit="degree_Celsius",
definition="Mean of daily mean temperature.",
source=ECAD_ATBD,
short_name="TG",
group=IndexGroupRegistry.TEMPERATURE,
input_variables=[StandardVariableRegistry.TAS],
)
TN = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
output_unit="degree_Celsius",
definition="Mean of daily minimum temperature.",
source=ECAD_ATBD,
short_name="TN",
group=IndexGroupRegistry.TEMPERATURE,
input_variables=[StandardVariableRegistry.TAS_MIN],
)
TX = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
output_unit="degree_Celsius",
definition="Mean of daily maximum temperature.",
source=ECAD_ATBD,
short_name="TX",
group=IndexGroupRegistry.TEMPERATURE,
input_variables=[StandardVariableRegistry.TAS_MAX],
)
DTR = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.MeanOfDifference,
output_unit="degree_Celsius",
definition="Mean Diurnal Temperature Range.",
source=ECAD_ATBD,
short_name="DTR",
group=IndexGroupRegistry.TEMPERATURE,
input_variables=[
StandardVariableRegistry.TAS_MAX,
StandardVariableRegistry.TAS_MIN,
],
)
ETR = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.DifferenceOfExtremes,
output_unit="degree_Celsius",
definition="Intra-period extreme temperature range.",
source=ECAD_ATBD,
short_name="ETR",
group=IndexGroupRegistry.TEMPERATURE,
input_variables=[
StandardVariableRegistry.TAS_MAX,
StandardVariableRegistry.TAS_MIN,
],
)
VDTR = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.MeanOfAbsoluteOneTimeStepDifference,
output_unit="degree_Celsius",
definition="Mean day-to-day variation in Diurnal Temperature Range.",
source=ECAD_ATBD,
short_name="vDTR",
group=IndexGroupRegistry.TEMPERATURE,
input_variables=[
StandardVariableRegistry.TAS_MAX,
StandardVariableRegistry.TAS_MIN,
],
)
# Heat
SU = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
output_unit="day",
definition="Number of Summer Days (Tmax > 25C).",
source=ECAD_ATBD,
short_name="SU",
threshold="> 25 degree_Celsius",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MAX],
qualifiers=[],
)
TR = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
output_unit="day",
definition="Number of Tropical Nights (Tmin > 20C).",
source=ECAD_ATBD,
short_name="TR",
threshold="> 20 degree_Celsius",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MIN],
qualifiers=[],
)
WSDI = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.SumOfSpellLengths,
output_unit="day",
definition="Warm-spell duration index (days).",
source=ECAD_ATBD,
short_name="WSDI",
threshold="> 90 doy_per",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MAX],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
min_spell_length=6,
)
TG90P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
output_unit="day",
definition="Days when Tmean > 90th percentile.",
threshold="> 90 doy_per",
source=ECAD_ATBD,
short_name="TG90p",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
TN90P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
output_unit="day",
definition="Days when Tmin > 90th percentile.",
threshold="> 90 doy_per",
source=ECAD_ATBD,
short_name="TN90p",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MIN],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
TX90P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="> 90 doy_per",
output_unit="day",
definition="Days when Tmax > 90th daily percentile.",
source=ECAD_ATBD,
short_name="TX90p",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MAX],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
TXX = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Maximum,
output_unit="degree_Celsius",
definition="Maximum daily maximum temperature.",
source=ECAD_ATBD,
short_name="TXx",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MAX],
)
TNX = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Maximum,
output_unit="degree_Celsius",
definition="Maximum daily minimum temperature.",
source=ECAD_ATBD,
short_name="TNx",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MIN],
)
CSU = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.MaxConsecutiveOccurrence,
threshold="> 25 degree_Celsius",
output_unit="day",
definition="Maximum number of consecutive summer days (Tmax >25 C).",
source=ECAD_ATBD,
short_name="CSU",
group=IndexGroupRegistry.HEAT,
input_variables=[StandardVariableRegistry.TAS_MAX],
qualifiers=[],
)
# Cold
GD4 = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Excess,
threshold="4 degree_Celsius",
output_unit="degree_Celsius day",
definition="Growing degree days (sum of Tmean > 4 C).",
source=ECAD_ATBD,
short_name="GD4",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS],
qualifiers=[],
)
FD = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="< 0 degree_Celsius",
output_unit="day",
definition="Number of Frost Days (Tmin < 0C).",
source=ECAD_ATBD,
short_name="FD",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MIN],
qualifiers=[],
)
CFD = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.MaxConsecutiveOccurrence,
threshold="< 0 degree_Celsius",
output_unit="day",
definition="Maximum number of consecutive frost days (Tmin < 0 C).",
source=ECAD_ATBD,
short_name="CFD",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MIN],
qualifiers=[],
)
HD17 = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Deficit,
threshold="17 degree_Celsius",
output_unit="degree_Celsius day",
definition="Heating degree days (sum of Tmean < 17 C).",
source=ECAD_ATBD,
short_name="HD17",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS],
qualifiers=[],
)
ID = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="< 0 degree_Celsius",
output_unit="day",
definition="Number of sharp Ice Days (Tmax < 0C).",
source=ECAD_ATBD,
short_name="ID",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MAX],
qualifiers=[],
)
TG10P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="< 10 doy_per",
output_unit="day",
definition="Days when Tmean < 10th percentile.",
source=ECAD_ATBD,
short_name="TG10p",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
TN10P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="< 10 doy_per",
output_unit="day",
definition="Days when Tmin < 10th percentile.",
source=ECAD_ATBD,
short_name="TN10p",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MIN],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
TX10P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="< 10 doy_per",
output_unit="day",
definition="Days when Tmax < 10th percentile.",
source=ECAD_ATBD,
short_name="TX10p",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MAX],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
TXN = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Minimum,
output_unit="degree_Celsius",
definition="Minimum daily maximum temperature.",
source=ECAD_ATBD,
short_name="TXn",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MAX],
)
TNN = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Minimum,
output_unit="degree_Celsius",
definition="Minimum daily minimum temperature.",
source=ECAD_ATBD,
short_name="TNn",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MIN],
)
CSDI = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.SumOfSpellLengths,
threshold="< 10 doy_per",
output_unit="day",
definition="Cold-spell duration index (days).",
source=ECAD_ATBD,
short_name="CSDI",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS_MIN],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
min_spell_length=6,
)
# Drought
CDD = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.MaxConsecutiveOccurrence,
threshold="< 1 mm/day",
output_unit="day",
definition="Maximum consecutive dry days (Precip < 1mm).",
source=ECAD_ATBD,
short_name="CDD",
group=IndexGroupRegistry.DROUGHT,
input_variables=[StandardVariableRegistry.PR],
)
# Rain
PRCPTOT = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Sum,
threshold=">= 1 mm/day",
output_unit="mm",
definition="Total precipitation during Wet Days.",
source=ECAD_ATBD,
short_name="PRCPTOT",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
RR1 = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=">= 1 mm/day",
output_unit="day",
definition="Number of Wet Days (precip >= 1 mm).",
source=ECAD_ATBD,
short_name="RR1",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
SDII = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
threshold=">= 1 mm/day",
output_unit="mm/day",
definition="Average precipitation during Wet Days (SDII).",
source=ECAD_ATBD,
short_name="SDII",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
CWD = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.MaxConsecutiveOccurrence,
threshold=">= 1 mm/day",
output_unit="day",
definition="Maximum consecutive wet days (Precip >= 1mm).",
source=ECAD_ATBD,
short_name="CWD",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
RR = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Sum,
output_unit="mm",
definition="Precipitation sum (mm).",
source=ECAD_ATBD,
short_name="RR",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
R10MM = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=">= 10 mm/day",
output_unit="day",
definition="Number of heavy precipitation days (Precip >=10mm).",
source=ECAD_ATBD,
short_name="R10mm",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
R20MM = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=">= 20 mm/day",
output_unit="day",
definition="Number of very heavy precipitation days (Precip >= 20mm).",
source=ECAD_ATBD,
short_name="R20mm",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
RX1DAY = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Maximum,
output_unit="mm/day",
definition="Maximum 1-day total precipitation.", # from xclim
source=ECAD_ATBD,
short_name="RX1day",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
)
RX5DAY = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.MaxOfRollingSum,
output_unit="mm",
definition="Maximum 5-day total precipitation.", # from xclim
source=ECAD_ATBD,
short_name="RX5day",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
qualifiers=[],
rolling_window_width=5,
)
R75P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=build_threshold("> 75 period_per", threshold_min_value="1 mm/day"),
output_unit="day",
definition="Days with RR > 75th percentile of daily amounts"
" (moderate wet days) (d).",
source=ECAD_ATBD,
short_name="R75p",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
)
R75PTOT = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.FractionOfTotal,
threshold=build_threshold("> 75 period_per", threshold_min_value="1 mm/day"),
output_unit="%",
definition="Precipitation fraction due to moderate wet days"
" (> 75th percentile).",
source=ECAD_ATBD,
short_name="R75pTOT",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
)
R95P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=build_threshold("> 95 period_per", threshold_min_value="1 mm/day"),
output_unit="day",
definition="Days with RR > 95th percentile of daily amounts"
" (very wet days) (days).",
source=ECAD_ATBD,
short_name="R95p",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
)
R95PTOT = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.FractionOfTotal,
threshold=build_threshold("> 95 period_per", threshold_min_value="1 mm/day"),
output_unit="%",
definition="Precipitation fraction due to very wet days (> 95th percentile).",
source=ECAD_ATBD,
short_name="R95pTOT",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
)
R99P = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=build_threshold("> 99 period_per", threshold_min_value="1 mm/day"),
output_unit="day",
definition="Days with RR > 99th percentile of daily amounts"
" (extremely wet days).",
source=ECAD_ATBD,
short_name="R99p",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
)
R99PTOT = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.FractionOfTotal,
threshold=build_threshold("> 99 period_per", threshold_min_value="1 mm/day"),
output_unit="%",
definition="Precipitation fraction due to extremely wet days"
" (> 99th percentile).",
source=ECAD_ATBD,
short_name="R99pTOT",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
)
# Snow
SD = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
output_unit="cm",
definition="Mean of daily snow depth.",
source=ECAD_ATBD,
short_name="SD",
group=IndexGroupRegistry.SNOW,
input_variables=[StandardVariableRegistry.SND],
)
SD1 = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=">= 1 cm",
output_unit="day",
definition="Snow days (SD >= 1 cm).",
source=ECAD_ATBD,
short_name="SD1",
group=IndexGroupRegistry.SNOW,
input_variables=[StandardVariableRegistry.SND],
)
SD5CM = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
output_unit="day",
threshold=">= 5 cm",
definition="Number of days with snow depth >= 5 cm.",
source=ECAD_ATBD,
short_name="SD5cm",
group=IndexGroupRegistry.SNOW,
input_variables=[StandardVariableRegistry.SND],
)
SD50CM = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=">= 50 cm",
output_unit="day",
definition="Number of days with snow depth >= 50 cm.",
source=ECAD_ATBD,
short_name="SD50cm",
group=IndexGroupRegistry.SNOW,
input_variables=[StandardVariableRegistry.SND],
)
# Compound (precipitation and temperature) # noqa: ERA001 (false positive)
CD = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=[
"< 25 doy_per",
build_threshold("< 25 period_per", threshold_min_value="1 mm/day"),
],
output_unit="day",
definition="Days with TG < 25th percentile of daily mean temperature and"
" RR <25th percentile of daily precipitation sum (cold/dry days).",
source=ECAD_ATBD,
short_name="CD",
group=IndexGroupRegistry.TEMPERATURE | IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.TAS, StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
CW = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=[
"< 25 doy_per",
build_threshold("> 75 period_per", threshold_min_value="1 mm/day"),
],
output_unit="day",
definition="Days with TG < 25th percentile of daily mean temperature and"
" RR >75th percentile of daily precipitation sum (cold/wet days).",
source=ECAD_ATBD,
short_name="CW",
group=IndexGroupRegistry.TEMPERATURE | IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.TAS, StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
WD = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=[
"> 75 doy_per",
build_threshold("< 25 period_per", threshold_min_value="1 mm/day"),
],
output_unit="day",
definition="Days with TG > 75th percentile of daily mean temperature and"
" RR <25th percentile of daily precipitation sum (warm/dry days).",
source=ECAD_ATBD,
short_name="WD",
group=IndexGroupRegistry.TEMPERATURE | IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.TAS, StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
WW = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=[
"> 75 doy_per",
build_threshold("> 75 period_per", threshold_min_value="1 mm/day"),
],
output_unit="day",
definition="Days with TG > 75th percentile of daily mean temperature and"
" RR >75th percentile of daily precipitation sum (warm/wet days).",
source=ECAD_ATBD,
short_name="WW",
group=IndexGroupRegistry.TEMPERATURE | IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.TAS, StandardVariableRegistry.PR],
qualifiers=[QUANTILE_BASED],
doy_window_width=5,
)
# WIND
FXX = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Maximum,
output_unit="m s-1",
definition="Maximum value of daily maximum wind gust.",
source=ECAD_ATBD,
short_name="FXx",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.WSGS_MAX],
)
FG6BFT = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold=">= 10.8 m s-1",
output_unit="day",
definition="Days with daily averaged wind ≥ 6 Bft (10.8 m s-1).",
source=ECAD_ATBD,
short_name="FG6Bft",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.SFC_WIND],
)
FGCALM = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="<= 2 m s-1",
output_unit="day",
definition="Calm days, days with daily averaged wind <= 2 m s-1.",
source=ECAD_ATBD,
short_name="FGcalm",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.SFC_WIND],
)
FG = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
output_unit="m s-1",
definition="Mean of daily mean wind strength.",
source=ECAD_ATBD,
short_name="FG",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.SFC_WIND],
)
DDNORTH = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="> 315 degree OR <= 45 degree",
output_unit="day",
definition="Days with northerly winds (DD > 315° or DD ≤ 45°).",
source=ECAD_ATBD,
short_name="DDnorth",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.WIND_TO_DIRECTION],
)
DDEAST = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="> 45 degree AND <= 135 degree",
output_unit="day",
definition="Days with easterly winds (45° < DD <= 135°).",
source=ECAD_ATBD,
short_name="DDeast",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.WIND_TO_DIRECTION],
)
DDSOUTH = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="> 135 degree AND <= 225 degree",
output_unit="day",
definition="Days with southerly winds (135° < DD <= 225°).",
source=ECAD_ATBD,
short_name="DDsouth",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.WIND_TO_DIRECTION],
)
DDWEST = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.CountOccurrences,
threshold="> 225 degree AND <= 315 degree",
output_unit="day",
definition="Days with westerly winds (225° < DD <= 315°).",
source=ECAD_ATBD,
short_name="DDwest",
group=IndexGroupRegistry.WIND,
input_variables=[StandardVariableRegistry.WIND_TO_DIRECTION],
)
GSL = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GrowingSeasonLength(),
definition="Growing season length.",
source=ECAD_ATBD,
short_name="GSL",
group=IndexGroupRegistry.COLD,
input_variables=[StandardVariableRegistry.TAS],
output_unit="day",
)
SPI6 = StandardIndex(
reference=ECAD_REFERENCE,
indicator=StandardizedPrecipitationIndex6(),
definition="6-Month Standardized Precipitation Index.",
source=ECAD_ATBD,
short_name="SPI6",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.TAS],
qualifiers=[REFERENCE_PERIOD_INDEX],
output_unit="",
)
SPI3 = StandardIndex(
reference=ECAD_REFERENCE,
indicator=StandardizedPrecipitationIndex3(),
definition="3-Month Standardized Precipitation Index.",
source=ECAD_ATBD,
short_name="SPI3",
group=IndexGroupRegistry.RAIN,
input_variables=[StandardVariableRegistry.TAS],
qualifiers=[REFERENCE_PERIOD_INDEX],
output_unit="",
)
PP = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
definition="Mean of daily sea level pressure (hPa).",
source=ECAD_ATBD,
short_name="PP",
group=IndexGroupRegistry.PRESSURE,
input_variables=[StandardVariableRegistry.PSL],
qualifiers=[],
output_unit="hPa",
)
SS = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Sum,
definition="Sunshine duration (hours).",
source=ECAD_ATBD,
short_name="SS",
group=IndexGroupRegistry.SUNSHINE,
input_variables=[StandardVariableRegistry.SUND],
qualifiers=[],
output_unit="hours",
)
RH = StandardIndex(
reference=ECAD_REFERENCE,
indicator=GenericIndicatorRegistry.Average,
definition="Mean of daily relative humidity (%).",
source=ECAD_ATBD,
short_name="RH",
group=IndexGroupRegistry.HUMIDITY,
input_variables=[StandardVariableRegistry.HURS],
qualifiers=[],
output_unit="%",
)