Metadata-Version: 2.1
Name: zampy
Version: 0.1.0
Summary: python package for getting Land Surface Model input data.
Author: Bart Schilperoort, Yang Liu, Fakhereh Alidoost
Author-email: b.schilperoort@esciencecenter.nl
Maintainer-email: Bart Schilperoort <b.schilperoort@esciencecenter.nl>, Yang Liu <y.liu@esciencecenter.nl>, Fakhereh Alidoost <f.alidoost@esciencecenter.nl>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: data
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: <3.12,>=3.9
Requires-Dist: cdsapi
Requires-Dist: cf-xarray
Requires-Dist: dask[diagnostics]
Requires-Dist: distributed
Requires-Dist: flox
Requires-Dist: matplotlib
Requires-Dist: netcdf4
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: pint
Requires-Dist: pint-xarray
Requires-Dist: pyyaml
Requires-Dist: requests
Requires-Dist: rioxarray
Requires-Dist: scipy
Requires-Dist: tqdm
Requires-Dist: xarray
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: bump2version; extra == 'dev'
Requires-Dist: hatch; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest-mock; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Requires-Dist: types-requests; extra == 'dev'
Requires-Dist: types-urllib3; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs; extra == 'docs'
Requires-Dist: mkdocs-gen-files; extra == 'docs'
Requires-Dist: mkdocs-jupyter; extra == 'docs'
Requires-Dist: mkdocs-material; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Description-Content-Type: text/markdown

# zampy
Tool for downloading Land Surface Model input data

[![github license badge](https://img.shields.io/github/license/EcoExtreML/zampy)](https://github.com/EcoExtreML/zampy)
[![build](https://github.com/EcoExtreML/zampy/actions/workflows/build.yml/badge.svg)](https://github.com/EcoExtreML/zampy/actions/workflows/build.yml)
[![workflow scc badge](https://sonarcloud.io/api/project_badges/measure?project=EcoExtreML_zampy&metric=coverage)](https://sonarcloud.io/dashboard?id=EcoExtreML_zampy)


## Tool outline:

 - Goal is to retrieve data for LSM model input.
    1. First **download** the data for the specified location(s) / geographical area.
    2. Be able to **load** the variables in a standardized way (standardized names & standardized units).
    3. **Output** the data to standard formats:
       - ALMA / PLUMBER2's ALMA formatted netCDF.
       - *CMOR formatted netCDF*.
 - User-interaction should go through recipes. For example, see [springtime](https://github.com/phenology/springtime/blob/main/tests/recipes/daymet.yaml).
   - Recipes define:
     - data folder (where data should be downloaded to)
     - time extent.
     - spatial location / bounding box.
     - datasets to be used
       - variables within datasets
   - Load recipes using Pydantic ([for example](https://github.com/phenology/springtime/blob/main/src/springtime/datasets/daymet.py)).
 - Support both a CLI & Python API.

Note: items in *italic* will not be worked on for now/low priority, but we want to allow space for these in the future.

## Instructions for CDS datasets (e.g. ERA5)
To download the following datasets, users need access to CDS via cdsapi:

- ERA5
- ERA5 land
- LAI

First, you need to be a registered user on CDS via the [registration page](https://cds.climate.copernicus.eu/user/register?destination=%2F%23!%2Fhome).

Before submitting any request with `zampy`, please configure your `.cdsapirc` file following the instructions on https://cds.climate.copernicus.eu/api-how-to.

When downloading a dataset for the first time, it is **necessary to agree to the Terms of Use of every datasets that you intend to download**. This can only be done via the CDS website. When you try to download these datasets, you will be prompted to go to the terms of use and accept them.