Getting started

Install TlseHypDataSet (compatible with Python>=3.8,<3.1) with pip:

$ pip install TlseHypDataSet

Option 1: working with 3D patches

Download the hyperspectral images at in an images folder:

├── images
    ├── TLS_1b_2021-06-15_10-41-20_reflectance_rect.bsq
    ├── TLS_1b_2021-06-15_10-41-20_reflectance_rect.hdr
    ├── ...

Then, specify the 'patch' mode and the desired patch size:

from TlseHypDataSet.tlse_hyp_data_set import TlseHypDataSet

dataset = TlseHypDataSet('/path/to/dataset/', pred_mode='patch', patch_size=64)

Option 2: working with 1D reflectance spectra

Download the 1D hyperspectral data at in an inputs folder:

├── inputs
    ├── areas.npy
    ├── data_pixel_1_images_0_1_2_3_4_5_6_7_8__.hdf5
    ├── ...

Then, specify the 'pixel' mode:

from TlseHypDataSet.tlse_hyp_data_set import TlseHypDataSet
dataset = TlseHypDataSet('/path/to/dataset/', pred_mode='pixel', patch_size=1)

Loading the ground truth

The TlseHypDataSet class has a standard_splits attribute that contains 8 standard splits of the ground truth in a 'train' set, a 'labeled_pool', an 'unlabeled_pool', a 'validation' set and a 'test' set, as explained here. The following example shows how to load the training set of the first standard train / test split in a Pytorch data loader with the DisjointDataSplit class (see the Dataset and the Spatially disjoint ground truth splits sections for more details):

import torch
from TlseHypDataSet.tlse_hyp_data_set import TlseHypDataSet
from TlseHypDataSet.utils.dataset import DisjointDataSplit

dataset = TlseHypDataSet('/path/to/dataset/', pred_mode='pixel', patch_size=1)

# Load the first standard ground truth split
ground_truth_split = DisjointDataSplit(dataset, split=dataset.standard_splits[0])

train_loader =

for epoch in range(100):
    for samples, labels in train_loader:

NB: at first use, the images and the ground truth will be processed and additional data will be saved in a rasters folder.