climate-ref-example
This package provides an example implementation of a diagnostic provider for the Climate REF (Rapid Evaluation Framework). It serves as a template and reference for developers who want to create their own diagnostic providers.
Installation
pip install climate-ref-example
Features
- Example implementation of a diagnostic provider
- Global mean timeseries diagnostic demonstration
- Complete implementation of all required interfaces
- Test data specification for reproducible testing
Usage
Enable the provider in your ref.toml configuration:
[[diagnostic_providers]]
provider = "climate_ref_example:provider"
Then run diagnostics:
ref solve --provider example
Example Diagnostic
The package implements a GlobalMeanTimeseries diagnostic that calculates the annual mean global mean timeseries for CMIP6 datasets:
from climate_ref_core.providers import DiagnosticProvider
from climate_ref_core.diagnostics import Diagnostic, DataRequirement, ExecutionDefinition, ExecutionResult
from climate_ref_core.datasets import FacetFilter, SourceDatasetType
class GlobalMeanTimeseries(Diagnostic):
"""Calculate the annual mean global mean timeseries for a dataset."""
name = "Global Mean Timeseries"
slug = "global-mean-timeseries"
data_requirements = (
DataRequirement(
source_type=SourceDatasetType.CMIP6,
filters=(FacetFilter(facets={"variable_id": ("tas", "rsut")}),),
group_by=("source_id", "variable_id", "experiment_id", "variant_label"),
),
)
facets = ("source_id", "variable_id", "experiment_id", "variant_label", "region", "metric", "statistic")
def execute(self, definition: ExecutionDefinition) -> None:
# Perform the diagnostic calculation
...
def build_execution_result(self, definition: ExecutionDefinition) -> ExecutionResult:
# Build and return the execution result
...
# Register diagnostics with a provider
provider = DiagnosticProvider("Example", __version__)
provider.register(GlobalMeanTimeseries())
Creating Your Own Provider
Use this package as a template:
cp -r packages/climate-ref-example packages/climate-ref-myprovider
See the Adding Custom Diagnostics guide for detailed instructions.
Documentation
For detailed documentation, please visit https://climate-ref.readthedocs.io/
Contributing
Contributions are welcome! Please see the main project's Contributing Guide for more information.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Metadata
Release files for climate-ref-example 0.17.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| climate_ref_example-0.17.0.tar.gz | 24.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| climate_ref_example-0.17.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.9 kB
Release files / climate_ref_example-0.17.0.tar.gz
| Download URL | climate_ref_example-0.17.0.tar.gz |
|---|---|
| Size | 24.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0444203e6a9aa6f3f53e5c8c1792b5f7c2167d65a030be1146396f068871ab40
|
|
BLAKE2b-256 checksum How to use checksums |
d31e4d0b9348260e5836ec329c287ae10125a21ca273f855b69b639d708887e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / climate_ref_example-0.17.0-py3-none-any.whl
| Download URL | climate_ref_example-0.17.0-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e0acf2aafba116334e042f6f5cd62cd1bec77e1c6b8ef048cd81ad9ffab85b3
|
|
BLAKE2b-256 checksum How to use checksums |
975036846967fb2748be4b15a41bb89d9fdf6335f1956a38af609c3c47d3459b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|