IDTReeS#

class torchgeo.datasets.IDTReeS(root='data', split='train', task='task1', transforms=None, download=False, checksum=False)[source]#

Bases: NonGeoDataset

IDTReeS dataset.

The IDTReeS dataset is a dataset for tree crown detection.

Dataset features:

  • RGB Image, Canopy Height Model (CHM), Hyperspectral Image (HSI), LiDAR Point Cloud

  • Remote sensing and field data generated by the National Ecological Observatory Network (NEON)

  • 0.1 - 1m resolution imagery

  • Task 1 - object detection (tree crown delination)

  • Task 2 - object classification (species classification)

  • Train set contains 85 images

  • Test set (task 1) contains 153 images

  • Test set (task 2) contains 353 images and tree crown polygons

Dataset format:

  • optical - three-channel RGB 200x200 geotiff

  • canopy height model - one-channel 20x20 geotiff

  • hyperspectral - 369-channel 20x20 geotiff

  • point cloud - Nx3 LAS file (.las), some files contain RGB colors per point

  • shapely files (.shp) containing polygons

  • csv file containing species labels and other metadata for each polygon

Dataset classes:

  1. ACPE

  2. ACRU

  3. ACSA3

  4. AMLA

  5. BETUL

  6. CAGL8

  7. CATO6

  8. FAGR

  9. GOLA

  10. LITU

  11. LYLU3

  12. MAGNO

  13. NYBI

  14. NYSY

  15. OXYDE

  16. PEPA37

  17. PIEL

  18. PIPA2

  19. PINUS

  20. PITA

  21. PRSE2

  22. QUAL

  23. QUCO2

  24. QUGE2

  25. QUHE2

  26. QULA2

  27. QULA3

  28. QUMO4

  29. QUNI

  30. QURU

  31. QUERC

  32. ROPS

  33. TSCA

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

This dataset requires the following additional library to be installed:

  • laspy to read lidar point clouds

Added in version 0.2.

__init__(root='data', split='train', task='task1', transforms=None, download=False, checksum=False)[source]#

Initialize a new IDTReeS dataset instance.

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

  • split (str) – one of “train” or “test”

  • task (str) – ‘task1’ for detection, ‘task2’ for detection + classification (only relevant for split=’test’)

  • 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

  • checksum (bool) – if True, check the MD5 of the downloaded files (may be slow)

Raises:
__getitem__(index)[source]#

Return an index within the dataset.

Parameters:

index (int) – index to return

Returns:

data and label at that index

Return type:

dict[str, Any]

__len__()[source]#

Return the number of data points in the dataset.

Returns:

length of the dataset

Return type:

int

__annotate_func__()#

The type of the None singleton.

plot(sample, show_titles=True, suptitle=None, hsi_indices=(0, 1, 2))[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

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

  • hsi_indices (tuple[int, int, int]) – tuple of indices to create HSI false color image

Returns:

a matplotlib Figure with the rendered sample

Return type:

Figure