Robust successive projection for endmember selection #151
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
For unmixing operations, one must possess an operable set of descriptive endmembers. Oftentimes, the best source for these endmembers is the scene itself, due to difficulties in acquiring sufficiently descriptive endmembers via other means (i.e., lab- or field-based spectrometers).
There are a variety of methods for determining which spectra to choose, but one class of algorithm (successive projection) relies on an iterative process of selecting a candidate spectrum and subsequently projecting the remaining spectra onto the subspace orthogonal to the chosen spectrum vector, repeating until the desired number of endmembers have been identified. This PR provides an implementation for one such algorithm—robust successive projection algorithm (RSPA)—that examines a group of potential endmembers at each stage and picks the one with the lowest scene-wide projection error, thus reducing the effects of outliers.
Closes #146
Closes #70
Demo
See the included notebook for an example.
Notes
This contribution adds a requirement for
pysptools
which provides other endmember extraction algorithms, including NFINDR, which is compared to RSPA in the demo notebook.Checklist