Skip to content

climate_ref_esmvaltool.diagnostics.climate_drivers_for_fire #

ClimateDriversForFire #

Bases: ESMValToolDiagnostic

Calculate diagnostics regarding climate drivers for fire.

Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/climate_drivers_for_fire.py
class ClimateDriversForFire(ESMValToolDiagnostic):
    """
    Calculate diagnostics regarding climate drivers for fire.
    """

    name = "Climate drivers for fire"
    slug = "climate-drivers-for-fire"
    base_recipe = "ref/recipe_ref_fire.yml"

    data_requirements = (
        DataRequirement(
            source_type=SourceDatasetType.CMIP6,
            filters=(
                FacetFilter(
                    {
                        "variable_id": ("hurs", "pr", "tas", "tasmax"),
                        "experiment_id": "historical",
                        "table_id": "Amon",
                    }
                ),
                FacetFilter(
                    {
                        "variable_id": ("cVeg", "treeFrac"),
                        "experiment_id": "historical",
                        "table_id": "Lmon",
                    }
                ),
                FacetFilter(
                    {
                        "variable_id": "vegFrac",
                        "experiment_id": "historical",
                        "table_id": "Emon",
                    }
                ),
            ),
            group_by=("source_id", "member_id", "grid_label"),
            constraints=(
                RequireTimerange(
                    group_by=("instance_id",),
                    start=PartialDateTime(2013, 1),
                    end=PartialDateTime(2014, 12),
                ),
                AddSupplementaryDataset.from_defaults("sftlf", SourceDatasetType.CMIP6),
                RequireFacets(
                    "variable_id",
                    (
                        "cVeg",
                        "hurs",
                        "pr",
                        "tas",
                        "tasmax",
                        "sftlf",
                        "treeFrac",
                        "vegFrac",
                    ),
                ),
            ),
        ),
    )
    facets = ()

    @staticmethod
    def update_recipe(
        recipe: Recipe,
        input_files: dict[SourceDatasetType, pandas.DataFrame],
    ) -> None:
        """Update the recipe."""
        recipe_variables = dataframe_to_recipe(input_files[SourceDatasetType.CMIP6])
        dataset = recipe_variables["cVeg"]["additional_datasets"][0]
        dataset.pop("mip")
        dataset.pop("timerange")
        dataset["start_year"] = 2013
        dataset["end_year"] = 2014
        recipe["datasets"] = [dataset]
        recipe["diagnostics"]["fire_evaluation"]["scripts"]["fire_evaluation"]["remove_confire_files"] = True

update_recipe(recipe, input_files) staticmethod #

Update the recipe.

Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/climate_drivers_for_fire.py
@staticmethod
def update_recipe(
    recipe: Recipe,
    input_files: dict[SourceDatasetType, pandas.DataFrame],
) -> None:
    """Update the recipe."""
    recipe_variables = dataframe_to_recipe(input_files[SourceDatasetType.CMIP6])
    dataset = recipe_variables["cVeg"]["additional_datasets"][0]
    dataset.pop("mip")
    dataset.pop("timerange")
    dataset["start_year"] = 2013
    dataset["end_year"] = 2014
    recipe["datasets"] = [dataset]
    recipe["diagnostics"]["fire_evaluation"]["scripts"]["fire_evaluation"]["remove_confire_files"] = True