Skip to content

temperature_zone

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.

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},
    )