class Spectral_data

A PlantCV data object class.

class plantcv.Spectral_data

Spectral_data is a class that is used to create instances of hyperspectral/multispectral data objects for PlantCV analysis. An instance of Spectral_data is created automatically as hyperspectral data is read in with pcv.readimage. Functions from the PlantCV hyperspectral sub-package utilize the plantcv.Spectral_data instance attributes, which has metadata about the hyperspectral data instance, to simplify function input. Most of this metadata is collected from the .hdr file. These attributes are used internally by PlantCV functions but also can be utilized by users.


Attributes are accessed as spectral_data_instance.attribute.

array_data: The actual data, stored as a Numpy array.

max_wavelength: Largest available wavelength in the spectral datacube.

min_wavelength: Smallest available wavelength in the spectral datacube.

d_type: Data type of the Numpy array data

wavelength_dict: The wavelength dictionary that gets created during pcv.readimage while mode='envi' since metadata is collected from the .hdr file

samples: Width of a single band of spectral data, shaped (samples, lines) rather than (x,y) with other arrays.

lines: Length of a single band of spectral data, shaped (samples, lines) rather than (x,y) with other arrays.

interleave: Interleave type

wavelength_units: Units of the wavelengths

array_type: The type of array data (entire datacube, specific index, first derivative, etc)

pseudo_rgb: Psuedo-RGB image if the array_type is a datacube

filename: The filename where the data originated from


PlantCV functions from the hyperspectral sub-package use Spectral_data implicitly.

from plantcv import plantcv as pcv

# Read in data
spectral_data_instance = pcv.readimage(filename="ee362e84-c861-4f0d-abbb-215ac58eed60_data", mode='envi')

index_array_gdvi = pcv.hyperspectral.extract_index(array=spectral_data_instance, 

# Plot the pseudo-RGB image that is created when reading in hyperspectral data 

# Plot the index extracted from the hyperspectral datacube 

print(str(spectral_data_instance.max_wavelength) + spectral_data_instance.wavelength_units)

Psuedo-RGB image from hyperspectral datacube


GDVI Grayscale Image


Maximum wavelength

> 1000.95nm

Source Code: Here