Skip to content
AaBelov edited this page Mar 16, 2016 · 9 revisions

Background

Hyperspectral images are 3D data sets collected over an x; y grid, where the pixel at each x; y is composed of a spectrum. In hyperspectral unmixing, such a data set X composed of n observed spectra with p wavelengths or spectral bands is decomposed to identify the pure component spectra. Such data sets are found in airborne land imaging studies, biomedical and art history investigations as well as time series (kinetics) of chemical reactions. The spectra are typically visible, infrared, near-infrared, Raman spectra or mass spectrometric data sets.

Each spectrum is typically assumed to be a linear mixture of a limited number m of pure component spectra, the so-called endmembers E. m is also referred to as chemical rank of the spectra matrix X. Endmembers are suitable for direct interpretation in the domain of the study (e.g. Raman spectra of cancerous tissue, reflectance spectra of minerals). The spectra matrix X of measured/observed spectra can be thought of as a sum of the respective endmember spectra E weighted by their abundances A. In the matrix notation as bilinear model: X = A E + ε

The goal of spectral unmixing is to identify a set of suitable endmember spectra given (only) the spectra matrix X.

Related work

There exists a large body of literature on these topics.

unmixR(https://gitlab.com/chemometrics/unmixR) started 3 years ago as a Google Summer of Code project. Conor McManus implemented a couple of N-FINDR and Vertex Component Analysis (VCA) Algorithms. However, he unfortunately could not go on with the development due to his starting to work full time.

Details of your coding project

The project should

Expected impact

As it is, unmixR is already used. However, the already implemented methods N-FINDR and VCA make one crucial assumption: they assume the presence of pure spectra of all components are available somewhere in the data. Obviously, while this assumption is reasonable for some applications, other applications exist where this assumption should not be relied on.

ICE does not need to have pure component spectra for the endmembers in the presented data.

Mentors

Claudia Beleites
Simon Fuller
Bryan Hanson

Tests

  • clone the repo from GitLab: https://gitlab.com/chemometrics/unmixR
  • build the package
  • predict (in predict.R) calculates abundances using non-negative least squares nnls (). Actually, abundances should be in [0, 1], not only non-negative. How would you change the predict method?
  • Write yet another version of predict that calculates abundances without constraint.

Solutions of tests

Anuj Khare: commit

Anton Belov: fully constrained predict unconstrained predict

Clone this wiki locally