Metadata-Version: 2.3
Name: meteodata-lab
Version: 0.5.0
Summary: A data post-processing framework on the basis of xarray.
Keywords: Icon,Data Processing
Author: Carlos Osuna
Author-email: carlos.osuna@meteoswiss.ch
Requires-Python: >=3.10,<3.13
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: polytope
Provides-Extra: regrid
Requires-Dist: click (>=8.1.7,<9.0.0)
Requires-Dist: earthkit-data[covjsonkit] (>=0.11,<1)
Requires-Dist: earthkit-meteo (>=0.4.0)
Requires-Dist: eccodes (>=2.38,<2.40)
Requires-Dist: eccodes-cosmo-resources-python (>=2.38,<2.39)
Requires-Dist: numpy (>=1.26.4,<2.4.0)
Requires-Dist: polytope-client (>=0.7.4,<0.8.0) ; extra == "polytope"
Requires-Dist: pydantic
Requires-Dist: pyproj (>=3.6.1,<4.0.0) ; extra == "regrid"
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
Requires-Dist: rasterio (>=1.3.10,<2.0.0) ; extra == "regrid"
Requires-Dist: scipy (>=1.13,<2.0) ; extra == "regrid"
Requires-Dist: setuptools
Requires-Dist: xarray (>=2024)
Project-URL: documentation, https://meteoswiss.github.io/meteodata-lab/
Project-URL: source, https://github.com/MeteoSwiss/meteodata-lab
Description-Content-Type: text/markdown

# meteodata-lab

<p align="center">
    <picture>
        <img src="https://raw.githubusercontent.com/MeteoSwiss/meteodata-lab/main/docs/assets/meteodata-lab_logo.gif"
            style="max-height: 200px; height: auto; width: auto;"
            alt="Animated logo">
    </picture>
</p>
<p align="center">
    <a href="https://pypi.org/project/meteodata-lab/">
    <img src="https://img.shields.io/pypi/v/meteodata-lab.svg?color=ff69b4" alt="PyPI version">
    </a>
    <a href="https://github.com/meteoswiss/meteodata-lab/releases">
    <img src="https://img.shields.io/github/v/release/meteoswiss/meteodata-lab?color=purple&label=Release" alt="Latest Release">
    </a>
    <a href="https://opensource.org/licenses/mit">
    <img src="https://img.shields.io/badge/licence-MIT-blue.svg" alt="Licence">
    </a>
</p>

<p align="center">
    <a href="#installation">Installation</a> •
    <a href="https://meteoswiss.github.io/meteodata-lab/">Documentation</a>
</p>

> **WARNING:**
>
> This project is in BETA and under active development. Interfaces and functionality are subject to change.

**Meteodata-lab** is a NumPy/Xarray-based Python library for processing and analyzing gridded meteorological data. It supports GRIB (read/write) and is tailored to common workflows that require data interpolation, regridding to custom grids (e.g., Swiss grid or rotated lat/lon), and the computation of advanced meteorological fields. One of the key features of meteodata-lab is its use of operators that ensure the integrity of GRIB metadata is maintained throughout processing, allowing for consistent writing back to GRIB format.

## Installation


### For Users

To install the latest release from PyPI:

```bash
pip install meteodata-lab
```
#### Optional Extras
To install optional extras:
```bash
pip install "meteodata-lab[polytope,regrid]"
```
**Note**: The `fdb` extra is currently disabled because its dependency `pyfdb` is not available on PyPI. As an alternative the development setup can be used.

### For Contributors
To set up the project for local development (e.g. for contributing code or testing changes), follow these steps:
1. If you don't have write access, first fork the repository on GitHub, then clone your fork:
    ```bash
    git clone git@github.com:your-username/meteodata-lab.git
    ```
    If you do have write access, you can clone the main repository directly:
    ```bash
    git clone git@github.com:MeteoSwiss/meteodata-lab.git
    ```
2. Navigate to the project directory and run the setup script:
    ```bash
    cd meteodata-lab
    ./scripts/setup_poetry.sh
    ```
    This will install Poetry (if not already available), set up the virtual environment, and install all dependencies with extras.


You can find more information about contributing to meteodata-lab at our [Contributing page](https://meteoswiss.github.io/meteodata-lab/contributing.html).

## Documentation

Learn more about meteodata-lab in its official documentation at [meteoswiss.github.io/meteodata-lab/](https://meteoswiss.github.io/meteodata-lab/).

Try out [interactive Juypter notebooks](https://github.com/MeteoSwiss/opendata-nwp-demos)

