BigEarthNet Common#

A collection of common tools to interact with the BigEarthNet dataset.

Tests License Python Versions PyPI version Conda Version pdm-managed Auto Release

This library provides a collection of high-level tools to better work with the BigEarthNet 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 the new label nomenclature

    • Generate multi-hot encoded label views

  3. Easily filter patches and generate subsets as CSV files

  4. Allow to quickly test code on BigEarthNet data without requiring to download the entire archvie

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

Sets generator#

To generate sets/subsets from the data and to store them as a CSV file, use:

  • ben_build_csv_sets --help

This command-line tool lets the user easily create subsets from common constraints. To generate a CSV file that contains all Sentinel-2 patches from Serbia only during the Summer and Spring months, call the function as:

  • ben_build_csv_sets <FILE_PATH> S2 --seasons Winter --seasons Summer --countries Serbia --remove-unrecommended-dl-patches

Note

By default, this tool will always remove the unrecommended patches, i.e., patches that contain seasonal snow, shadows, clouds, or that have no labels in the 19-class nomenclature

Describe patch#

The library provides a tool to quickly visualize meta-data information about each patch:

ben_describe_patch <S1/S2 patch name>