Metadata-Version: 2.4
Name: pycontrails
Version: 0.54.10
Summary: Python library for modeling aviation climate impacts
Author-email: "Contrails.org" <py@contrails.org>
License: Apache-2.0
Project-URL: Changelog, https://py.contrails.org/changelog.html
Project-URL: Documentation, https://py.contrails.org
Project-URL: Issues, https://github.com/contrailcirrus/pycontrails/issues
Project-URL: Repository, https://github.com/contrailcirrus/pycontrails
Keywords: contrails,climate,aviation,geospatial
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: dask>=2022.3
Requires-Dist: numpy>=1.22
Requires-Dist: pandas>=2.0
Requires-Dist: scipy>=1.10
Requires-Dist: typing-extensions>=4.5; python_version < "3.12"
Requires-Dist: xarray>=2022.3
Provides-Extra: complete
Requires-Dist: pycontrails[ecmwf,gcp,gfs,jupyter,pyproj,sat,vis,zarr]; extra == "complete"
Provides-Extra: dev
Requires-Dist: dep_license; extra == "dev"
Requires-Dist: fastparquet>=0.8; extra == "dev"
Requires-Dist: ipdb>=0.13; extra == "dev"
Requires-Dist: memory_profiler; extra == "dev"
Requires-Dist: mypy>=1.8; extra == "dev"
Requires-Dist: mypy-extensions>=1.0; extra == "dev"
Requires-Dist: platformdirs>=3.0; extra == "dev"
Requires-Dist: pre-commit>=2.10; extra == "dev"
Requires-Dist: psutil; extra == "dev"
Requires-Dist: pyarrow>=5.0; extra == "dev"
Requires-Dist: pytest>=8.2; extra == "dev"
Requires-Dist: pytest-cov>=2.11; extra == "dev"
Requires-Dist: requests>=2.25; extra == "dev"
Requires-Dist: ruff>=0.9.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: doc8>=1.1; extra == "docs"
Requires-Dist: furo>=2023.3; extra == "docs"
Requires-Dist: myst-parser>=1.0; extra == "docs"
Requires-Dist: nb-clean>=3.2; extra == "docs"
Requires-Dist: nbsphinx>=0.9; extra == "docs"
Requires-Dist: nbval!=0.10.0,>=0.9.6; extra == "docs"
Requires-Dist: pytest-check-links>=0.8.0; extra == "docs"
Requires-Dist: sphinx>=4.2; extra == "docs"
Requires-Dist: sphinx-autobuild>=0.7; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex>=2.2; extra == "docs"
Requires-Dist: sphinx_copybutton>=0.5; extra == "docs"
Requires-Dist: sphinxext.opengraph>=0.8; extra == "docs"
Provides-Extra: ecmwf
Requires-Dist: cdsapi>=0.4; extra == "ecmwf"
Requires-Dist: cfgrib>=0.9; extra == "ecmwf"
Requires-Dist: eccodes>=2.38; extra == "ecmwf"
Requires-Dist: ecmwf-api-client>=1.6; extra == "ecmwf"
Requires-Dist: netcdf4>=1.6.1; extra == "ecmwf"
Requires-Dist: platformdirs>=3.0; extra == "ecmwf"
Requires-Dist: requests>=2.25; extra == "ecmwf"
Provides-Extra: gcp
Requires-Dist: google-cloud-storage>=2.1; extra == "gcp"
Requires-Dist: platformdirs>=3.0; extra == "gcp"
Requires-Dist: tqdm>=4.61; extra == "gcp"
Provides-Extra: gfs
Requires-Dist: boto3>=1.20; extra == "gfs"
Requires-Dist: cfgrib>=0.9; extra == "gfs"
Requires-Dist: eccodes>=2.38; extra == "gfs"
Requires-Dist: netcdf4>=1.6.1; extra == "gfs"
Requires-Dist: platformdirs>=3.0; extra == "gfs"
Requires-Dist: tqdm>=4.61; extra == "gfs"
Provides-Extra: jupyter
Requires-Dist: ipywidgets>=7.6; extra == "jupyter"
Requires-Dist: jupyterlab>=2.2; extra == "jupyter"
Provides-Extra: sat
Requires-Dist: cartopy>=0.22; extra == "sat"
Requires-Dist: db-dtypes>=1.2; extra == "sat"
Requires-Dist: gcsfs>=2022.3; extra == "sat"
Requires-Dist: geojson>=3.1; extra == "sat"
Requires-Dist: google-cloud-bigquery>=3.23; extra == "sat"
Requires-Dist: google-cloud-bigquery-storage>=2.25; extra == "sat"
Requires-Dist: pillow>=10.3; extra == "sat"
Requires-Dist: pyproj>=3.5; extra == "sat"
Requires-Dist: rasterio>=1.3; extra == "sat"
Requires-Dist: scikit-image>=0.18; extra == "sat"
Provides-Extra: open3d
Requires-Dist: open3d>=0.14; extra == "open3d"
Provides-Extra: pyproj
Requires-Dist: pyproj>=3.5; extra == "pyproj"
Provides-Extra: vis
Requires-Dist: matplotlib>=3.3; extra == "vis"
Requires-Dist: opencv-python-headless>=4.5; extra == "vis"
Requires-Dist: scikit-learn>=0.23; extra == "vis"
Requires-Dist: scikit-image>=0.18; extra == "vis"
Requires-Dist: seaborn>=0.11; extra == "vis"
Requires-Dist: shapely>=2.0; extra == "vis"
Provides-Extra: zarr
Requires-Dist: fsspec>=2022.7.1; extra == "zarr"
Requires-Dist: gcsfs>=2022.7.1; extra == "zarr"
Requires-Dist: zarr>=2.12; extra == "zarr"
Dynamic: license-file

# pycontrails

> Python library for modeling aviation climate impacts

|               |                                                                   |
|---------------|-------------------------------------------------------------------|
| **Version**   | [![PyPI version](https://img.shields.io/pypi/v/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails)  [![conda-forge version](https://anaconda.org/conda-forge/pycontrails/badges/version.svg)](https://anaconda.org/conda-forge/pycontrails) [![Supported python versions](https://img.shields.io/pypi/pyversions/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails) |
| **Citation**  | [![DOI](https://zenodo.org/badge/617248930.svg)](https://zenodo.org/badge/latestdoi/617248930) |
| **Tests**     | [![Unit test](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [![Docs](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg?event=push)](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [![Release](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/contrailcirrus/pycontrails/badge)](https://securityscorecards.dev/viewer?uri=github.com/contrailcirrus/pycontrails)|
| **License**   | [![Apache License 2.0](https://img.shields.io/pypi/l/pycontrails.svg)](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE) |
| **Community** | [![Github Discussions](https://img.shields.io/github/discussions/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/discussions) [![Github Issues](https://img.shields.io/github/issues/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/issues) [![Github PRs](https://img.shields.io/github/issues-pr/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/pulls) |

**pycontrails** is an open source project and Python package for modeling aircraft contrails and other
aviation related climate impacts.

`pycontrails` defines common [data structures](https://py.contrails.org/api.html#data) and [interfaces](https://py.contrails.org/api.html#datalib) to efficiently build and run [models](https://py.contrails.org/api.html#models) of aircraft performance, emissions, and radiative forcing.

## Documentation

Documentation and examples available at [py.contrails.org](https://py.contrails.org/).

<!-- Try out an [interactive Colab Notebook](). -->

## Install

### Install with pip

You can install pycontrails from PyPI with `pip` (Python 3.10 or later required):

```bash
$ pip install pycontrails

# install with all optional dependencies
$ pip install "pycontrails[complete]"
```

Install the latest development version directly from GitHub:

```bash
pip install git+https://github.com/contrailcirrus/pycontrails.git
```

### Install with conda

You can install pycontrails from the [conda-forge](https://conda-forge.org/) channel with `conda` (or other `conda`-like package managers such as `mamba`):

```bash
conda install -c conda-forge pycontrails
```

The conda-forge package includes all optional runtime dependencies.

See more installation options in the [install documentation](https://py.contrails.org/install).

## Get Involved

- Ask questions, discuss models, and present ideas in [GitHub Discussions](https://github.com/contrailcirrus/pycontrails/discussions).
- Report bugs or suggest changes in [GitHub Issues](https://github.com/contrailcirrus/pycontrails/issues).
- Review the [contributing guidelines](https://py.contrails.org/contributing.html) and contribute improvements as [Pull Requests](https://github.com/contrailcirrus/pycontrails/pulls).

## License

[Apache License 2.0](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE)

Additional attributions in [NOTICE](https://github.com/contrailcirrus/pycontrails/blob/main/NOTICE).
