hydroflows.methods.rainfall.future_climate_rainfall#

Method to deriving future climate rainfall by scaling an historical event using Clausius-Clapeyron (CC).

class hydroflows.methods.rainfall.future_climate_rainfall.FutureClimateRainfall(scenarios: dict[str, float], event_set_yaml: Path, event_names: List[str] | None = None, event_root: Path = PosixPath('data/events'), event_wildcard: str = 'future_event', scenario_wildcard: str = 'scenario', **params)[source]#

Method to derive future climate rainfall by scaling an historical event using Clausius-Clapeyron (CC).

Parameters:
  • scenarios (Dict[str, float]) – Future scenario name, e.g. “rcp45_2050”, and delta temperature for CC scaling.

  • event_set_yaml (Path) – The file path to the event set YAML file, which includes the events to be scaled for a future climate projection.

  • event_names (Optional[List[str]]) – List of event names in event_set_yaml If not provided, event_set_yaml must exist to get the event names.

  • event_root (Path, optional) – Root folder to save the derived scaled events, by default “data/events/future_rainfall”.

  • wildcard (str) – The wildcard key for expansion over the scaled events, default is “future_event”.

  • **params – Additional parameters to pass to the FutureClimateRainfall Params instance.

Create a new expand method instance.

pydantic model hydroflows.methods.rainfall.future_climate_rainfall.Input[source]#

Input parameters for the FutureClimateRainfall method.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Fields:
field event_set_yaml: Annotated[Path, AfterValidator(func=filedir_validator)] [Required]#

The file path to the event set YAML file, which includes the events to be scaled for future climate projections, see also hydroflows.methods.events.EventSet.

model_post_init(context: Any, /) None#

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self – The BaseModel instance.

  • context – The context.

pydantic model hydroflows.methods.rainfall.future_climate_rainfall.Output[source]#

Output parameters for the FutureClimateRainfall method.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Fields:
field future_event_csv: Path [Required]#

The path to the scaled event csv timeseries file.

field future_event_set_yaml: Annotated[Path, AfterValidator(func=filedir_validator)] [Required]#

The path to the scaled event set yml file, see also hydroflows.methods.events.EventSet.

field future_event_yaml: Annotated[Path, AfterValidator(func=filedir_validator)] [Required]#

The path to the scaled event description file, see also hydroflows.methods.events.Event.

model_post_init(context: Any, /) None#

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self – The BaseModel instance.

  • context – The context.

pydantic model hydroflows.methods.rainfall.future_climate_rainfall.Params[source]#

Parameters for FutureClimateRainfall method.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Fields:
field alpha: float = 0.07#

The rate of change of precipitation with respect to temperature (per degree) used in Clausius-Clapeyron (CC) scaling

field event_names: <lambda>, json_schema_input_type=PydanticUndefined)] [Required]#

List of event names (subset of event_set_yaml events).

field event_root: Annotated[Path, AfterValidator(func=outputdirpath_validator)] [Required]#

Root folder to save the derived scaled events.

field event_wildcard: str = 'future_event'#

The wildcard key for expansion over the scaled events.

field scenario_wildcard: str = 'scenario'#

The wildcard key for expansion over the scenarios.

field scenarios: <lambda>, json_schema_input_type=PydanticUndefined)] [Required]#

Future scenario name, e.g. “rcp45_2050”, and delta temperature for Clausius-Clapeyron scaling.

The delta temperature represents the projected temperature increase, with an emphasis on hot days, rather than a simple average temperature change. To accurately capture extreme temperature shifts, it is recommended that users consider high quantiles (e.g., the 95th percentile) in their analyses.

Temperature changes for different periods and emission scenarios for CMIP5 and CMIP6 models can be taken via: Future Climate Data Platform

model_post_init(context: Any, /) None#

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self – The BaseModel instance.

  • context – The context.