Skip to main content

Tool for climate data research

Project description

🌍 climatrix


Climatrix is a flexible toolbox for sampling and reconstructing climate datasets.

It provides utilities and an xarray accessor that simplifies the workflow of working with climate data arrays — from preprocessing to statistical sampling.


👤 Author


👥 Contributors


📌 Version

Important This is an alpha release – features are still evolving, and breaking changes may occur.


📚 Table of Contents


⚙️ Usage

Getting started and API reference are available in the official documentation.


🧪 Examples

🔍 Click to expand example: Accessing `climatrix` features
import climatrix as cm
import xarray as xr

my_dataset = "/file/to/netcdf.nc
cm_dset = xr.open_dataset(my_dataset).cm
📊 Click to expand example: Getting values of coordinate
import climatrix as cm
import xarray as xr

my_dataset = "/file/to/netcdf.nc"
cm_dset = xr.open_dataset(my_dataset).cm
print("Latitude values: ", cm_dset.latitude)
print("Time values: ", cm_dset.time)
📊 Subsetting by bounding box
import climatrix as cm
import xarray as xr

my_dataset = "/file/to/netcdf.nc
cm_dset = xr.open_dataset(my_dataset).cm
europe = cm_dset.cm.subset(north=71, south=36, west=-24, east=35)

🛠️ Features

  • 🧭 Easy access to coordinate data (similar to MetPy), using regex to locate lat/lon
  • 📊 Sampling of climate data, both uniformly and using normal-like distributions
  • 🔁 Reconstruction via:
    • IDW (Inverse Distance Weighting)
    • Ordinary Kriging
    • SIREN (Sinusoidal INR)
  • 🧪 Tools to compare reconstruction results
  • 📈 Plotting utilities for visualizing inputs and outputs
  • 🔧 Hyperparameter Optimization

🔧 Hyperparameter Optimization

Climatrix provides automated hyperparameter optimization for all reconstruction methods using Bayesian optimization. The HParamFinder class offers an intuitive interface for finding optimal parameters.

Quick Start

from climatrix.optim import HParamFinder

# Basic usage - optimize IDW parameters
finder = HParamFinder(train_dataset, validation_dataset, method="idw")
result = finder.optimize()
best_params = result['best_params']

# Use optimized parameters for reconstruction
optimized_reconstruction = train_dataset.reconstruct(
    target=test_domain,
    method="idw", 
    **best_params
)

Advanced Usage

# Optimize specific parameters only
finder = HParamFinder(
    train_dataset, validation_dataset,
    method="sinet",
    include=["lr", "batch_size"],     # Only optimize these parameters
    exclude=["k"],                    # Or exclude specific parameters  
    metric="rmse",                    # Optimization metric (mae, mse, rmse)
    explore=0.7,                      # Exploration vs exploitation (0-1)
    n_iters=50,                       # Total optimization iterations
    random_seed=123                   # For reproducible results
)

result = finder.optimize()
print(f"Best parameters: {result['best_params']}")
print(f"Best {result['metric_name']} score: {result['best_score']}")

Installation

The hyperparameter optimization feature requires the bayesian-optimization package:

pip install climatrix[optim]

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👥 Contributing

The rules for contributing on the project are described in CONTRIBUTING file in details.


🙏 Citation

If you are using this software in scientific work, cite us:

@article{walczak2025climatrix,
  title={Climatrix: Xarray accessor for climate data sampling and reconstruction},
  author={Walczak, Jakub and {\.Z}yndul, Wojciech},
  journal={SoftwareX},
  volume={31},
  pages={102263},
  year={2025},
  publisher={Elsevier}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

climatrix-1.0a25.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

climatrix-1.0a25-py3-none-any.whl (135.4 kB view details)

Uploaded Python 3

File details

Details for the file climatrix-1.0a25.tar.gz.

File metadata

  • Download URL: climatrix-1.0a25.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for climatrix-1.0a25.tar.gz
Algorithm Hash digest
SHA256 66ea2f7df767792d38ef3f49de275b2448b5de9e0186779d9ee733272f668c3b
MD5 56d225097a90f732413cc4b03b4a3062
BLAKE2b-256 a6174e31ae85bc5b1ecf9da6e5f3b58cf62accda01935d57135e870f95a8c11c

See more details on using hashes here.

Provenance

The following attestation bundles were made for climatrix-1.0a25.tar.gz:

Publisher: release_pypi.yml on jamesWalczak/climatrix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climatrix-1.0a25-py3-none-any.whl.

File metadata

  • Download URL: climatrix-1.0a25-py3-none-any.whl
  • Upload date:
  • Size: 135.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for climatrix-1.0a25-py3-none-any.whl
Algorithm Hash digest
SHA256 faa1d17db29d94d3bf00bbeb5685b4c46557d8ba285b7960a38fd8fb050e39a3
MD5 439d48ec434a2fab13e72d6e6ea744a0
BLAKE2b-256 2e745327451588b8fc73b24c4724b72ccdf26794dafa2f8de3ef4a8aa38d3b2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for climatrix-1.0a25-py3-none-any.whl:

Publisher: release_pypi.yml on jamesWalczak/climatrix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page