This is work in progress... (c) 2021 Z. Gajarska and H. Lohninger



Data Structures used in HSI

In order to be able to store and analyse hyperspectral image data which may change over time (or any other additional dimension), we need a four-dimensional data space (the spatial coordinates, the spectral coordinate, and the time coordinate). The resulting 4D hyper-cuboid can grow fairly large (several GBytes) and may be seen as a series of 3D cuboids:

This means that each layer constitutes an image, which displays the corresponding property stored in this layer. The properties may represent any kind of information, from physical properties to spectral intensities at a particular wavelength to intensities at particular masses. In addition to the actual physical data it is necessary for many operations to define image masks which can be used to exclude certain pixels from further processing. Thus we arrive at the following data structure for a single time slot:

The spectral intensities are commonly stored in floating point format (though some software packages use some variant of fixed point storage to save space), so that each data cell typically requires eight bytes of memory. This results in file sizes of typically several 100 MB up to several GB. For example, an image of 800 x 800 pixels with 500 layers of spectral information results in 800*800*500*8 bytes (approx. 2.5 GB). Thus for processing hyperspectral image data you need both plenty of memory (RAM) and considerable storage space (harddisk).

Another aspect of these memory requirements is the necessity of high speed algorithms in order to be able to load, store and process images in acceptable time. A well-organized and elaborate data structure is therefore of ultimate importance.