Benin Cashew Plantations#

class torchgeo.datasets.BeninSmallHolderCashews(root='data', chip_size=256, stride=128, bands=('B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B8A', 'B09', 'B11', 'B12', 'CLD'), transforms=None, download=False)[source]#

Bases: NonGeoDataset

Smallholder Cashew Plantations in Benin dataset.

This dataset contains labels for cashew plantations in a 120 km2 area in the center of Benin. Each pixel is classified for Well-managed plantation, Poorly-managed plantation, No plantation and other classes. The labels are generated using a combination of ground data collection with a handheld GPS device, and final corrections based on Airbus Pléiades imagery. See this website for dataset details.

Specifically, the data consists of Sentinel 2 imagery from a 120 km2 area in the center of Benin over 71 points in time from 11/05/2019 to 10/30/2020 and polygon labels for 6 classes:

  1. No data

  2. Well-managed plantation

  3. Poorly-managed planatation

  4. Non-plantation

  5. Residential

  6. Background

  7. Uncertain

If you use this dataset in your research, please cite the following:

Note

This dataset requires the following additional library to be installed:

  • azcopy: to download the dataset from Source Cooperative.

all_bands: tuple[str, ...] = ('B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B8A', 'B09', 'B11', 'B12', 'CLD')#

Names of all available bands in the dataset

rgb_bands: tuple[str, ...] = ('B04', 'B03', 'B02')#

Names of RGB bands in the dataset

__init__(root='data', chip_size=256, stride=128, bands=('B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B8A', 'B09', 'B11', 'B12', 'CLD'), transforms=None, download=False)[source]#

Initialize a new Benin Smallholder Cashew Plantations Dataset instance.

Parameters:
  • root (str | PathLike[str]) – root directory where dataset can be found

  • chip_size (int) – size of chips

  • stride (int) – spacing between chips, if less than chip_size, then there will be overlap between chips

  • bands (Sequence[str]) – the subset of bands to load

  • transforms (Callable[[dict[str, Any]], dict[str, Any]] | None) – a function/transform that takes input sample and its target as entry and returns a transformed version

  • download (bool) – if True, download dataset and store it in the root directory

Raises:
__getitem__(index)[source]#

Return an index within the dataset.

Parameters:

index (int) – index to return

Returns:

a dict containing image, mask, transform, and metadata at index.

Return type:

dict[str, Any]

__len__()[source]#

Return the number of chips in the dataset.

Returns:

length of the dataset

Return type:

int

plot(sample, show_titles=True, time_step=0, suptitle=None)[source]#

Plot a sample from the dataset.

Parameters:
  • sample (dict[str, Any]) – a sample returned by __getitem__()

  • show_titles (bool) – flag indicating whether to show titles above each panel

  • time_step (int) – time step at which to access image, beginning with 0

  • suptitle (str | None) – optional string to use as a suptitle

Returns:

a matplotlib Figure with the rendered sample

Raises:

RGBBandsMissingError – If bands does not include all RGB bands.

Return type:

Figure

Added in version 0.2.