# Common BigEarthNet Tools
> A personal collection of common tools to interact with the BigEarthNet dataset.


[![Tests](https://img.shields.io/github/workflow/status/kai-tub/bigearthnet_common/CI?color=dark-green&label=%20Tests)](https://github.com/kai-tub/bigearthnet_common/actions/workflows/main.yml)
[![License](https://img.shields.io/pypi/l/bigearthnet_common?color=dark-green)](https://github.com/kai-tub/bigearthnet_common/blob/main/LICENSE)
[![PyPI version](https://badge.fury.io/py/bigearthnet-common.svg)](https://pypi.org/project/bigearthnet-common/)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/bigearthnet-common?color=dark-green)](https://anaconda.org/conda-forge/bigearthnet-common)
[![Auto Release](https://img.shields.io/badge/release-auto.svg?colorA=888888&colorB=9B065A&label=auto&logo=data:image/png;base64, )](https://github.com/intuit/auto)

This library provides a collection of high-level tools to better work with the [BigEarthNet](bigearth.net) dataset.

`bigearthnet_common` tries to:

1. Collect the most relevant _constants_ into a single place to reduce the time spent looking for these, like:
   - The 19 or 43 class nomenclature strings
   - URL
   - Band statistics (mean/variance) as integer and float
   - Channel names
   - etc.
2. Provide common metadata related functions
   - Safe JSON parser for S1/S2
   - Get the original split
   - Get a list of snowy/cloudy patches
   - Convert the _old_ labels to thew _new_ label nomenclature
   - Generate multi-hot encoded label views

## Installation
The package is available via PyPI and can be installed with:
- `pip install bigearthnet_common`

The package has _Python-only_ dependencies and should cause no issues in more complex Conda environments with various binaries.

## Review constants
To quickly search for BigEarthNet constants of interest, call:
- `ben_constants_prompt` or
- `python -m bigearthnet_common.constants`

## Contributing

Contributions are always welcome!

Please look at the corresponding `ipynb` notebook from the `nbs` folder to review the source code.
These notebooks include extensive documentation, visualizations, and tests.
The automatically generated Python files are available in the `bigearthnet_common` module.

More information is available in the [contributing guidelines](https://github.com/kai-tub/bigearthnet_common/blob/main/.github/CONTRIBUTING.md) document.
