Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Robust successive projection for endmember selection #151

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

jpolchlo
Copy link
Contributor

@jpolchlo jpolchlo commented Jul 13, 2021

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

  • CI passes after rebase
  • README.md updated if necessary to reflect the changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement robust endmember selection Investigate automatic endmember selection
1 participant