Metadata-Version: 2.4
Name: dea-tools
Version: 0.4.4.dev1
Summary: Open-source tools for geospatial analysis with Digital Earth Australia, Open Data Cube, and Xarray
Project-URL: Homepage, https://github.com/GeoscienceAustralia/dea-notebooks
Project-URL: Repository, https://github.com/GeoscienceAustralia/dea-notebooks
Author-email: Geoscience Australia <earth.observation@ga.gov.au>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: datacube,digital earth australia,earth observation,geospatial analysis,remote sensing,satellite data
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
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: Topic :: Scientific/Engineering :: GIS
Requires-Python: <4.0,>=3.10
Requires-Dist: aiohttp>=3.5.0
Requires-Dist: dask-ml>=2023.3.24
Requires-Dist: dask>=2023.1.0
Requires-Dist: eo-tides>=0.8.0
Requires-Dist: fiona>=1.10.0
Requires-Dist: folium>=0.16.0
Requires-Dist: geopandas>=0.10.0
Requires-Dist: geopy>=2.0.0
Requires-Dist: imageio>=2.20.0
Requires-Dist: joblib>=1.0.0
Requires-Dist: lxml>=5.0.0
Requires-Dist: matplotlib>=3.8.0
Requires-Dist: numba>=0.57.0
Requires-Dist: numpy>=1.26.0
Requires-Dist: odc-algo>=1.0.0
Requires-Dist: odc-geo[tiff]>=0.4.7
Requires-Dist: odc-io>=0.2.2
Requires-Dist: odc-stac[botocore]>=0.3.0
Requires-Dist: owslib>=0.26.0
Requires-Dist: packaging>=22.0
Requires-Dist: pandas>=2.2.0
Requires-Dist: planetary-computer>=1.0.0
Requires-Dist: pyproj>=3.7.0
Requires-Dist: pystac-client>=0.8.3
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pytz>=2022.1
Requires-Dist: rasterio>=1.3.11
Requires-Dist: rasterstats>=0.16.0
Requires-Dist: requests>=2.25.0
Requires-Dist: rioxarray>=0.10.0
Requires-Dist: s3fs>=2024.9.0
Requires-Dist: scikit-image>=0.22.0
Requires-Dist: scikit-learn>=1.4.0
Requires-Dist: scipy>=1.14.1
Requires-Dist: seaborn>=0.10.0
Requires-Dist: shapely>=2.0.5
Requires-Dist: tqdm>=4.55.0
Requires-Dist: traitlets>=5.0.0
Requires-Dist: xarray>=2022.3.0
Provides-Extra: all
Requires-Dist: affine>=2.3.1; extra == 'all'
Requires-Dist: beautifulsoup4>=4.12.0; extra == 'all'
Requires-Dist: cmocean>=3.0.0; extra == 'all'
Requires-Dist: contextily>=1.3.0; extra == 'all'
Requires-Dist: dask-gateway>=2023.1.0; extra == 'all'
Requires-Dist: datacube-ows>=1.9.3; extra == 'all'
Requires-Dist: datacube>=1.8.5; extra == 'all'
Requires-Dist: gcsfs>=2022.1.0; extra == 'all'
Requires-Dist: hdstats>=0.1.8.post1; extra == 'all'
Requires-Dist: ipyleaflet>=0.17.0; extra == 'all'
Requires-Dist: jupyter>=1.0.0; extra == 'all'
Requires-Dist: odc-ui>=0.2.1; extra == 'all'
Requires-Dist: opencv-python>=4.6.0.66; extra == 'all'
Requires-Dist: pydotplus>=2.0.0; extra == 'all'
Requires-Dist: statsmodels>=0.14.0; extra == 'all'
Requires-Dist: sunriset>=1.0.0; extra == 'all'
Provides-Extra: dask-gateway
Requires-Dist: dask-gateway>=2023.1.0; extra == 'dask-gateway'
Provides-Extra: datacube
Requires-Dist: datacube-ows>=1.9.3; extra == 'datacube'
Requires-Dist: datacube>=1.8.5; extra == 'datacube'
Requires-Dist: odc-ui>=0.2.1; extra == 'datacube'
Provides-Extra: hdstats
Requires-Dist: hdstats>=0.1.8.post1; extra == 'hdstats'
Provides-Extra: jupyter
Requires-Dist: ipyleaflet>=0.17.0; extra == 'jupyter'
Requires-Dist: jupyter>=1.0.0; extra == 'jupyter'
Provides-Extra: notebooks
Requires-Dist: affine>=2.3.1; extra == 'notebooks'
Requires-Dist: beautifulsoup4>=4.12.0; extra == 'notebooks'
Requires-Dist: cmocean>=3.0.0; extra == 'notebooks'
Requires-Dist: contextily>=1.3.0; extra == 'notebooks'
Requires-Dist: gcsfs>=2022.1.0; extra == 'notebooks'
Requires-Dist: ipyleaflet>=0.17.0; extra == 'notebooks'
Requires-Dist: jupyter>=1.0.0; extra == 'notebooks'
Requires-Dist: opencv-python>=4.6.0.66; extra == 'notebooks'
Requires-Dist: pydotplus>=2.0.0; extra == 'notebooks'
Requires-Dist: statsmodels>=0.14.0; extra == 'notebooks'
Requires-Dist: sunriset>=1.0.0; extra == 'notebooks'
Description-Content-Type: text/markdown

<img src="https://raw.githubusercontent.com/GeoscienceAustralia/dea-notebooks/stable/Supplementary_data/dea_logo_wide.jpg" width="900" alt="Digital Earth Australia logo" />

# DEA Tools Python package

[![DOI](https://img.shields.io/badge/DOI-10.26186/145234-0e7fbf.svg)](https://doi.org/10.26186/145234) [![Apache license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Discord](https://img.shields.io/discord/1212501566326571070?label=Discord&logo=discord&logoColor=white&color=7289DA)](https://discord.com/invite/4hhBQVas5U)

`dea-tools` is an open-source Python package for geospatial analysis of satellite data using Digital Earth Australia, Open Data Cube, and Xarray.
It provides a broad set of utilities for loading, visualising, transforming, and analysing Earth Observation (EO) data across space and time.

The package includes tools for:

* 📦 **Data handling**: Load and combine DEA data products, manage projections and resolutions.
* 🗺️ **Visualisation**: Create static and interactive maps, RGB plots, and animations.
* 🛰️ **Remote sensing indices**: Calculate band indices such as NDVI, NDWI, and more.
* 🌐 **Spatial and temporal analysis**: Apply raster/vector operations, extract contours, compute temporal stats, and model change over time.
* 🤖 **Machine learning and segmentation**: Train and apply classifiers, or run image segmentation workflows.
* ⚙️ **Parallel processing**: Set up Dask clusters for scalable processing of large datasets.
* 🌏 **Domain-specific tools**: Analyse coastal change, intertidal zones, land cover, wetland and waterbody dynamics, and climate datasets.

## API documentation

Full API documentation describing the modules and functions available in `dea-tools` is available on the [DEA Knowledge Hub](https://knowledge.dea.ga.gov.au/notebooks/Tools/).

## Installation

You can install `dea-tools` from PyPI with `pip` (https://pypi.org/project/dea-tools/).

By default `dea-tools` will be installed with [minimal dependencies](https://github.com/GeoscienceAustralia/dea-notebooks/blob/develop/pyproject.toml), which excludes `datacube` and other difficult to install packages:

```console
pip install dea-tools
```

To install with `datacube` dependencies (note that this requires access to a datacube database):
```console
pip install dea-tools[datacube]
```

To install with additonal Jupyter-related dependencies:
```console
pip install dea-tools[jupyter]
```

To install with other packages used in DEA Notebooks examples:
```console
pip install dea-tools[jupyter,dask_gateway,hdstats,notebooks]
```

You can also install `dea-tools` with *all* optional dependencies. **Note:** some of these dependencies are difficult to install. If you encounter issues, you may need to try the [Conda](#with-conda) instructions below.
```console
pip install dea-tools[all]
```

### With conda

If you encounter issues with the installation, try installing the package in a `conda` Python environment where [GDAL](https://pypi.org/project/GDAL/) and [pyproj](https://pypi.org/project/pyproj/) are already installed:

```console
wget -O conda-environment.yml https://raw.githubusercontent.com/opendatacube/datacube-core/develop/conda-environment.yml

mamba env create -f conda-environment.yml
conda activate cubeenv

pip install dea-tools
```

### Working on DEA Sandbox or NCI

To work with this module on the DEA Sandbox or National Computational Infrastructure environments without installing it, you can add the `Tools` directory to the system path from within your `dea-notebooks` directory:

```python
import sys
sys.path.insert(1, "../Tools/")
from dea_tools.datahandling import load_ard  # or some other function
```

Alternatively, you can also do a local installation of `dea-tools`. To do this on the DEA Sandbox, run `pip` from the terminal from within your `dea-notebooks` directory:

```bash
pip install -e .
```

## Importing functions in Python

One `dea-tools` is installed, you can import functions using:

```python
from dea_tools.datahandling import load_ard
from dea_tools.plotting import rgb
```

## Citing DEA Tools

If you use any of the notebooks, code or tools in this repository in your work, please reference them using the following citation:

> Krause, C., Dunn, B., Bishop-Taylor, R., Adams, C., Burton, C., Alger, M., Chua, S., Phillips, C., Newey, V., Kouzoubov, K., Leith, A., Ayers, D., Hicks, A., DEA Notebooks contributors 2021. Digital Earth Australia notebooks and tools repository. Geoscience Australia, Canberra. https://doi.org/10.26186/145234
