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.18.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.18.0.tar.gz | 24.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| climate_ref_example-0.18.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.0 kB
Release files / climate_ref_example-0.18.0.tar.gz
| Download URL | climate_ref_example-0.18.0.tar.gz |
|---|---|
| Size | 24.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6279e9c479003ea03af03b0ecba7c8a9a2b0c6efb3c54f0521041a43ce648f57
|
|
BLAKE2b-256 checksum How to use checksums |
f20f23af712b7056b9b0eabd0f2ddece2f6234cd2261e975f457ea1bfc7665cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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.18.0-py3-none-any.whl
| Download URL | climate_ref_example-0.18.0-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc99e815d8f1a2c94623a19e8ce00eb3041942b8d1c5dd557df62729250e2401
|
|
BLAKE2b-256 checksum How to use checksums |
57edb31d768d841e23dcfd3dc9bee380f399ad4f11ca9176f41dcaa8319f8b1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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}
|