Generate the temperature zone for a given scenario and gcm member.
Parameters
gcm_member
The gcm member to generate the temperature zone for.
cmip6_experiment
The cmip6 experiment to generate the temperature zone for.
output_dir
The directory to save the temperature zone to.
Source code in src/climate_data/special/temperature_zone.py
| def generate_temperature_zone_main(
gcm_member: str,
cmip6_experiment: str,
output_dir: str | Path,
) -> None:
"""Generate the temperature zone for a given scenario and gcm member.
Parameters
----------
gcm_member
The gcm member to generate the temperature zone for.
cmip6_experiment
The cmip6 experiment to generate the temperature zone for.
output_dir
The directory to save the temperature zone to.
"""
print(f"Generating temperature zone for {cmip6_experiment} {gcm_member}")
cdata = ClimateData(output_dir)
ds = cdata.load_compiled_annual_results(
cmip6_experiment, "mean_temperature", gcm_member
)
temperature_zone = ds.rolling(year=10).mean().sel(year=slice(1990, 2100))
print(f"Saving temperature zone for {cmip6_experiment} {gcm_member}")
cdata.save_compiled_annual_results(
temperature_zone,
scenario=cmip6_experiment,
variable="temperature_zone",
gcm_member=gcm_member,
encoding_kwargs={"scale_factor": 0.01, "add_offset": 0.0},
)
|