cuvis_ai.distance.distance.SpectralAngle

class cuvis_ai.distance.distance.SpectralAngle(ref_spectra: list = [])[source]

Bases: AbstractDistance

Cosine distance between spectra according to the Spectral Angle Mapper (SAM) formula.

Nota Bene: Measurements should be normalized as large values skews this calculation towards π/2.

Parameters:

AbstractDistance (AbstractDistance) – Defines the node as AbstractDistance node type

__init__(ref_spectra: list = [])[source]

Construct SAM

Parameters:

ref_spectra (list, optional) – Reference spectra to compare against, by default []

Methods

__init__([ref_spectra])

Construct SAM

check_input_dim(X)

Check that the parameters for the input data data match user expectations

check_output_dim(X)

Check that the parameters for the output data data match user expectations

fit(X)

forward(X[, ref_spectra])

Pass the data through comparative function

get_fit_requested_meta()

get_forward_requested_meta()

load(params[, filepath])

Load dumped parameters to recreate the distance object

score(data, ref_spectra)

Score new datacubes against reference spectra.

serialize(working_dir)

Convert distance node to serializable format

set_fit_meta_request(**kwargs)

set_forward_meta_request(**kwargs)

spectra_to_array(ref_spectra)

Convert list of spectra to a numpy array

Attributes

input_dim

Get required input dimension

output_dim

Get required output dimension

check_input_dim(X)

Check that the parameters for the input data data match user expectations

Parameters: X (array-like): Input data.

Returns: (Bool) Valid data

check_output_dim(X)

Check that the parameters for the output data data match user expectations

Parameters: X (array-like): Input data.

Returns: (Bool) Valid data

fit(X)
forward(X: ndarray, ref_spectra: list | None = None) ndarray

Pass the data through comparative function

Parameters:
  • X (np.ndarray) – Input data.

  • ref_spectra (list, optional) – List of spectra to compare against

Returns:

Distance maps for each of the reference spectra.

Return type:

np.ndarray

Raises:
  • ValueError – Mismatch in input data and reference spectra provided on function call.

  • ValueError – Mismatch in input data and reference spectra provided on node initialization.

  • ValueError – No reference spectra provided in init or on forward function pass.

get_fit_requested_meta()
get_forward_requested_meta()
property input_dim: list

Get required input dimension

Returns:

List defining which input dimensions should be checked in graph.

Return type:

list

load(params: dict, filepath: str | None = None)

Load dumped parameters to recreate the distance object

Parameters:
  • params (dict) – Dictionary containing node values

  • filepath (str, optional) – Directory containing node metadata, by default None

property output_dim

Get required output dimension

Returns:

List defining which input dimensions should be checked in graph.

Return type:

list

static score(data: ndarray, ref_spectra: ndarray) ndarray[source]

Score new datacubes against reference spectra.

Parameters:
  • data (np.ndarray) – Input data.

  • ref_spectra (np.ndarray) – Reference spectra to compare against.

Returns:

Distance scores.

Return type:

np.ndarray

serialize(working_dir: str) str

Convert distance node to serializable format

Parameters:

working_dir (str) – Directory where node metadata should be saved.

Returns:

YAML parameterization of node.

Return type:

str

set_fit_meta_request(**kwargs)
set_forward_meta_request(**kwargs)
static spectra_to_array(ref_spectra: ndarray | list) ndarray

Convert list of spectra to a numpy array

Parameters:

ref_spectra (np.ndarray | list) – Object of reference spectra

Returns:

Spectra stored in singular, indexable, sequential array.

Return type:

np.ndarray