Skip to content

climate_ref_esmvaltool #

Rapid evaluating CMIP data with ESMValTool.

ESMValToolProvider #

Bases: CondaDiagnosticProvider

Provider for ESMValTool diagnostics.

Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
class ESMValToolProvider(CondaDiagnosticProvider):
    """Provider for ESMValTool diagnostics."""

    def fetch_data(self, config: Config) -> None:
        """Fetch ESMValTool reference data."""
        for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
            registry = dataset_registry_manager[registry_name]
            fetch_all_files(registry, registry_name, output_dir=None)

    def validate_setup(self, config: Config) -> bool:
        """Validate conda environment and data checksums."""
        # First check conda environment
        if not super().validate_setup(config):
            return False

        # Then check data checksums
        errors = []
        for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
            errors.extend(validate_registry_cache(dataset_registry_manager[registry_name], registry_name))
        if errors:
            for error in errors:
                logger.error(f"{self.slug} validation failed: {error}")
            logger.error(
                f"Data for {self.slug} is missing or corrupted. "
                f"Please run `ref providers setup --provider {self.slug}` to fetch data."
            )
            return False
        return True

    def get_data_path(self) -> Path | None:
        """Get the path where ESMValTool data is cached."""
        return resolve_cache_dir("esmvaltool")

fetch_data(config) #

Fetch ESMValTool reference data.

Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
def fetch_data(self, config: Config) -> None:
    """Fetch ESMValTool reference data."""
    for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
        registry = dataset_registry_manager[registry_name]
        fetch_all_files(registry, registry_name, output_dir=None)

get_data_path() #

Get the path where ESMValTool data is cached.

Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
def get_data_path(self) -> Path | None:
    """Get the path where ESMValTool data is cached."""
    return resolve_cache_dir("esmvaltool")

validate_setup(config) #

Validate conda environment and data checksums.

Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
def validate_setup(self, config: Config) -> bool:
    """Validate conda environment and data checksums."""
    # First check conda environment
    if not super().validate_setup(config):
        return False

    # Then check data checksums
    errors = []
    for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
        errors.extend(validate_registry_cache(dataset_registry_manager[registry_name], registry_name))
    if errors:
        for error in errors:
            logger.error(f"{self.slug} validation failed: {error}")
        logger.error(
            f"Data for {self.slug} is missing or corrupted. "
            f"Please run `ref providers setup --provider {self.slug}` to fetch data."
        )
        return False
    return True

sub-packages#

Sub-package Description
_version
diagnostics ESMValTool diagnostics.
recipe
types