Metadata-Version: 2.4
Name: dea-tools
Version: 0.3.7.dev28
Summary: Functions and algorithms for analysing Digital Earth Australia data.
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-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: 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 providing functions and algorithms for geospatial analysis using Open Data Cube, Xarray, and Digital Earth Australia.
It includes utilities for loading data, plotting, spatial and temporal analysis, and applying machine learning to satellite data.
The package is organised into the following modules:

* `dea_tools.datahandling`: Tools for loading and managing DEA data (e.g. combining products, handling CRSs, pansharpening)
* `dea_tools.plotting`: Plotting tools for DEA data (e.g. RGB composites, animations, interactive maps)
* `dea_tools.bandindices`: Functions to calculate remote sensing indices (e.g. NDVI, NDWI)
* `dea_tools.spatial`: Spatial analysis utilities (e.g. rasterisation, vectorisation, contours, image processing)
* `dea_tools.temporal`: Tools for temporal analysis (e.g. phenology, time-series statistics, multi-dimensional regression)
* `dea_tools.classification`: Machine learning utilities (e.g. training and applying models on satellite data)
* `dea_tools.dask`: Utilities for parallel processing with Dask (e.g. creating scalable Dask clusters)
* `dea_tools.landcover`: Tools for accessing and visualising DEA Land Cover data
* `dea_tools.coastal`: Coastal and intertidal analysis tools (e.g. coastal change time series, sunglint mapping)
* `dea_tools.bom`: Accessing Bureau of Meteorology water data (e.g. gauge and discharge data)
* `dea_tools.waterbodies`: Accessing and analysing DEA Waterbodies data (e.g. loading waterbody time series)
* `dea_tools.maps`: Tools for interactive mapping (e.g. folium and ipyleaflet maps)
* `dea_tools.validation`: Tools for generating validation statistics (e.g. RMSE, R2, correlations)

## API documentation

A rendered version of the `dea-tools` API 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:
```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/")
import dea_tools.datahandling  # or some other submodule
```

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
