Metadata-Version: 2.4
Name: varunayan
Version: 0.1.0
Summary: Analysis-ready climate data downloader and processor for custom regions
Project-URL: Homepage, https://github.com/saketlab/varunayan
Project-URL: Documentation, https://saketlab.github.io/varunayan
Project-URL: Repository, https://github.com/saketlab/varunayan
Project-URL: Issues, https://github.com/saketlab/varunayan/issues
Author-email: Atharva Jagtap <atharvajagtap1108@gmail.com>, Saket Choudhary <saketc@iitb.ac.in>
Maintainer-email: Atharva Jagtap <atharvajagtap1108@gmail.com>, Saket Choudhary <saketc@iitb.ac.in>
License-Expression: MIT
License-File: LICENSE
Keywords: atmospheric-science,climate,era5,geospatial,netcdf,weather
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.8
Requires-Dist: cdsapi>=0.5.1
Requires-Dist: geopandas>=0.10.0
Requires-Dist: matplotlib>=3.3.0
Requires-Dist: netcdf4>=1.5.0
Requires-Dist: numpy>=1.20.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: python-dateutil>=2.8.0
Requires-Dist: shapely>=1.8.0
Requires-Dist: tqdm>=4.60.0
Requires-Dist: xarray>=0.20.0
Provides-Extra: all
Requires-Dist: bandit>=1.7.0; extra == 'all'
Requires-Dist: black>=22.0; extra == 'all'
Requires-Dist: build>=0.7.0; extra == 'all'
Requires-Dist: check-manifest>=0.48; extra == 'all'
Requires-Dist: coverage[toml]>=6.0; extra == 'all'
Requires-Dist: docutils>=0.17; extra == 'all'
Requires-Dist: flake8>=4.0; extra == 'all'
Requires-Dist: furo>=2023.3.27; extra == 'all'
Requires-Dist: ipykernel>=6.0; extra == 'all'
Requires-Dist: ipython>=7.0; extra == 'all'
Requires-Dist: isort>=5.10; extra == 'all'
Requires-Dist: jupyter-client>=7.0; extra == 'all'
Requires-Dist: jupyter>=1.0; extra == 'all'
Requires-Dist: linkify-it-py>=2.0; extra == 'all'
Requires-Dist: livereload>=2.6.3; extra == 'all'
Requires-Dist: markdown-it-py>=2.0; extra == 'all'
Requires-Dist: mdit-py-plugins>=0.3.0; extra == 'all'
Requires-Dist: mypy>=0.910; extra == 'all'
Requires-Dist: myst-nb>=0.13.0; extra == 'all'
Requires-Dist: myst-parser>=0.15; extra == 'all'
Requires-Dist: nbclient>=0.8; extra == 'all'
Requires-Dist: nbconvert>=6.0; extra == 'all'
Requires-Dist: nbconvert>=7.0; extra == 'all'
Requires-Dist: pandas-stubs; extra == 'all'
Requires-Dist: pre-commit>=2.15; extra == 'all'
Requires-Dist: pylint>=2.12.0; extra == 'all'
Requires-Dist: pytest-cov>=2.10; extra == 'all'
Requires-Dist: pytest-mock>=3.6.1; extra == 'all'
Requires-Dist: pytest-timeout>=2.1.0; extra == 'all'
Requires-Dist: pytest-xdist>=2.5.0; extra == 'all'
Requires-Dist: pytest>=6.0; extra == 'all'
Requires-Dist: safety>=2.0.0; extra == 'all'
Requires-Dist: setuptools>=60.0.0; extra == 'all'
Requires-Dist: sphinx-autoapi>=2.0; extra == 'all'
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == 'all'
Requires-Dist: sphinx-copybutton>=0.5.0; extra == 'all'
Requires-Dist: sphinx-design>=0.3.0; extra == 'all'
Requires-Dist: sphinx-multiversion>=0.2.4; extra == 'all'
Requires-Dist: sphinx-tabs>=3.0.0; extra == 'all'
Requires-Dist: sphinx-togglebutton>=0.3.0; extra == 'all'
Requires-Dist: sphinx>=4.0; extra == 'all'
Requires-Dist: tox>=3.24.0; extra == 'all'
Requires-Dist: twine>=4.0.0; extra == 'all'
Requires-Dist: types-requests; extra == 'all'
Requires-Dist: watchdog>=2.1.0; extra == 'all'
Requires-Dist: wheel>=0.37.0; extra == 'all'
Provides-Extra: build
Requires-Dist: build>=0.7.0; extra == 'build'
Requires-Dist: check-manifest>=0.48; extra == 'build'
Requires-Dist: setuptools>=60.0.0; extra == 'build'
Requires-Dist: twine>=4.0.0; extra == 'build'
Requires-Dist: wheel>=0.37.0; extra == 'build'
Provides-Extra: dev
Requires-Dist: black>=22.0; extra == 'dev'
Requires-Dist: flake8>=4.0; extra == 'dev'
Requires-Dist: isort>=5.10; extra == 'dev'
Requires-Dist: mypy>=0.910; extra == 'dev'
Requires-Dist: pandas-stubs; extra == 'dev'
Requires-Dist: pre-commit>=2.15; extra == 'dev'
Requires-Dist: pytest-cov>=2.10; extra == 'dev'
Requires-Dist: pytest>=6.0; extra == 'dev'
Requires-Dist: types-requests; extra == 'dev'
Provides-Extra: docs
Requires-Dist: docutils>=0.17; extra == 'docs'
Requires-Dist: furo>=2023.3.27; extra == 'docs'
Requires-Dist: ipython>=7.0; extra == 'docs'
Requires-Dist: jupyter>=1.0; extra == 'docs'
Requires-Dist: linkify-it-py>=2.0; extra == 'docs'
Requires-Dist: markdown-it-py>=2.0; extra == 'docs'
Requires-Dist: mdit-py-plugins>=0.3.0; extra == 'docs'
Requires-Dist: myst-nb>=0.13.0; extra == 'docs'
Requires-Dist: myst-parser>=0.15; extra == 'docs'
Requires-Dist: nbconvert>=6.0; extra == 'docs'
Requires-Dist: sphinx-autoapi>=2.0; extra == 'docs'
Requires-Dist: sphinx-copybutton>=0.5.0; extra == 'docs'
Requires-Dist: sphinx-design>=0.3.0; extra == 'docs'
Requires-Dist: sphinx-multiversion>=0.2.4; extra == 'docs'
Requires-Dist: sphinx-tabs>=3.0.0; extra == 'docs'
Requires-Dist: sphinx-togglebutton>=0.3.0; extra == 'docs'
Requires-Dist: sphinx>=4.0; extra == 'docs'
Provides-Extra: docs-build
Requires-Dist: docutils>=0.17; extra == 'docs-build'
Requires-Dist: jupyter>=1.0; extra == 'docs-build'
Requires-Dist: linkify-it-py>=2.0; extra == 'docs-build'
Requires-Dist: markdown-it-py>=2.0; extra == 'docs-build'
Requires-Dist: mdit-py-plugins>=0.3.0; extra == 'docs-build'
Requires-Dist: myst-nb>=0.13.0; extra == 'docs-build'
Requires-Dist: myst-parser>=0.15; extra == 'docs-build'
Requires-Dist: nbconvert>=6.0; extra == 'docs-build'
Requires-Dist: sphinx-autoapi>=2.0; extra == 'docs-build'
Requires-Dist: sphinx-book-theme>=1.0.0; extra == 'docs-build'
Requires-Dist: sphinx-copybutton>=0.5.0; extra == 'docs-build'
Requires-Dist: sphinx-design>=0.3.0; extra == 'docs-build'
Requires-Dist: sphinx-multiversion>=0.2.4; extra == 'docs-build'
Requires-Dist: sphinx-tabs>=3.0.0; extra == 'docs-build'
Requires-Dist: sphinx-togglebutton>=0.3.0; extra == 'docs-build'
Requires-Dist: sphinx>=4.0; extra == 'docs-build'
Provides-Extra: docs-serve
Requires-Dist: livereload>=2.6.3; extra == 'docs-serve'
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == 'docs-serve'
Requires-Dist: watchdog>=2.1.0; extra == 'docs-serve'
Provides-Extra: notebooks
Requires-Dist: ipykernel>=6.0; extra == 'notebooks'
Requires-Dist: jupyter-client>=7.0; extra == 'notebooks'
Requires-Dist: nbclient>=0.8; extra == 'notebooks'
Requires-Dist: nbconvert>=7.0; extra == 'notebooks'
Provides-Extra: quality
Requires-Dist: bandit>=1.7.0; extra == 'quality'
Requires-Dist: black>=22.0; extra == 'quality'
Requires-Dist: flake8>=4.0; extra == 'quality'
Requires-Dist: isort>=5.10; extra == 'quality'
Requires-Dist: mypy>=0.910; extra == 'quality'
Requires-Dist: pandas-stubs; extra == 'quality'
Requires-Dist: pre-commit>=2.15; extra == 'quality'
Requires-Dist: pylint>=2.12.0; extra == 'quality'
Requires-Dist: safety>=2.0.0; extra == 'quality'
Requires-Dist: types-requests; extra == 'quality'
Provides-Extra: test
Requires-Dist: coverage[toml]>=6.0; extra == 'test'
Requires-Dist: pytest-cov>=2.10; extra == 'test'
Requires-Dist: pytest-mock>=3.6.1; extra == 'test'
Requires-Dist: pytest-timeout>=2.1.0; extra == 'test'
Requires-Dist: pytest-xdist>=2.5.0; extra == 'test'
Requires-Dist: pytest>=6.0; extra == 'test'
Requires-Dist: tox>=3.24.0; extra == 'test'
Description-Content-Type: text/markdown

# Varunayan

<p align="center">
  <img src="https://raw.githubusercontent.com/saketlab/varunayan/main/docs/_static/varunayan_logo.png" alt="Varunayan Logo" width="200"/>
</p>

A Python package for downloading and processing ERA5 climate data.

## Installation

Clone the repo, then in the local directory:

```bash
pip install -e . 


```

## Quick Start


Quickly extract ERA5 processed data with the help of *varunayan* from the command line:


1. either by providing a GeoJSON file to define the area of interest
```bash
varunayan geojson --request-id "request_name" --variables "var1,var2,etc." --start "yyyy-mm-dd" --end "yyyy-mm-dd" --geojson "your_file.geojson" --dataset-type "dataset_type" --pressure-levels "pressure_level_1,pressure_level_2,etc." --freq "frequency" --res "resolution"
```

2. or by providing a bounding box to define the area of interest
```bash
varunayan bbox --request-id "request_name" --variables "var1,var2,etc." --start "yyyy-mm-dd" --end "yyyy-mm-dd" --north "north_bound" --south "south_bound" --east "east_bound" --west "west_bound" --dataset-type "dataset_type" --pressure-levels "pressure_level_1,pressure_level_2,etc." --freq "frequency" --res "resolution"
```

3. or by providing coordinates of the location
```bash
varunayan point --request-id "request_name" --variables "var1,var2,etc." --start "yyyy-mm-dd" --end "yyyy-mm-dd" --lat "latitude" --lon "longitude" --dataset-type "dataset_type" --pressure-levels "pressure_level_1,pressure_level_2,etc." --freq "frequency"
```

The arguments dataset-type (single by default), pressure-levels (empty by default), freq (hourly by default) and res (0.25 by default) are optional.

Example command for extracting pressure-level data for a bounding box
```bash
varunayan bbox --request-id "test" --variables "temperature,relative_humidity" --start "2024-01-1" --end "2024-01-15" --north 30 --south 20 --east 80 --west 70 --dataset-type pressure --pressure-levels "1000,900" --freq daily --res 0.25
```

## Documentation

Please visit our [documentation page](http://saketlab.github.io/varunayan) for detailed documentation.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. 


