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

Investigate automatic endmember selection #70

Open
jpolchlo opened this issue Dec 10, 2020 · 1 comment · May be fixed by #151
Open

Investigate automatic endmember selection #70

jpolchlo opened this issue Dec 10, 2020 · 1 comment · May be fixed by #151
Assignees

Comments

@jpolchlo
Copy link
Contributor

There are various methodologies for determining interesting/representative spectra from a stream of candidates. We should investigate the lay of the land here and try out some options. This issue will be resolved by providing demonstration notebooks or other library code to do these endmember selection tasks.

@jpolchlo
Copy link
Contributor Author

Feasibility study with pysptools and NFINDR

I have a rough demo notebook that uses some of the pre-baked methods provided by pysptools. Specifically, this uses the fairly standard approach of applying NFINDR to find, within the spectral space, extremal points (spectra) which, by linear combination, can be merged to describe the largest possible range of the observed spectra. This algorithm, after a deterministic initialization (using ATGP) has a stochastic component to it, and so we may not have found the truly best representative spectra, but the results are instructive.

By way of example, we'll consider the problem of detecting trash piles in landfills, with the hope of one day identifying uncontrolled dumping sites.

Consider El Sobrante landfill:

sobrante1

This is a large landfill area with a comparably small active area of dumping, circled in red.

We have an AVIRIS extract of this landfill to work from:

site

Using all the pixels in this extract area as input to the NFINDR algorithm, we find the following 10 spectra:

spectra

There is some marked similarity in some of the pairs of spectra, but mostly they are distinct. Taking these as a source for unmixing, using fully constrained least squares (all non-negative abundances, abundances sum to one), we see the following feature layers:

unmixed_annotated

I've labelled each feature with a guess about what it is. Note row 2 column 4 is the closest to capturing the dumping area, which I've indicated in red. Bear in mind the AVIRIS image has a smaller active patch than the first image in this post.

@pomadchin pomadchin added this to the Sprint 12/3 - 12/23/2020 milestone Dec 10, 2020
@pomadchin pomadchin modified the milestones: Sprint 12/3 - 12/23/2020, Sprint 12/23/2020 - 01/07/2021 Dec 23, 2020
@pomadchin pomadchin modified the milestones: Sprint 12/23 - 01/07/2021, Sprint 11/13 - 12/3/2020, Sprint 01/07-01/21/2021 Jan 7, 2021
@pomadchin pomadchin modified the milestones: Sprint 01/07-01/21/2021, Sprint 01/21 - 02/04/2021 Jan 27, 2021
@pomadchin pomadchin modified the milestones: Sprint 01/21 - 02/04/2021, Sprint 02/04 - 02/18/2021 Feb 8, 2021
@pomadchin pomadchin modified the milestones: Sprint 02/04 - 02/18/2021, Sprint 02/18/2021 - 03/04/2021, Sprint 02/18 - 03/04/2021 Feb 19, 2021
@pomadchin pomadchin removed the on hold label Apr 15, 2021
@pomadchin pomadchin added this to the Sprint 04/15 - 04/29/2021 milestone Apr 15, 2021
@pomadchin pomadchin modified the milestones: Sprint 04/15 - 04/29/2021, Sprint 04/29 - 05/13/2021 Apr 29, 2021
@pomadchin pomadchin modified the milestones: Sprint 04/29 - 05/13/2021, Sprint 05/13 - 05/27/2021 May 17, 2021
@pomadchin pomadchin modified the milestones: Sprint 05/13 - 05/27/2021, Sprint 05/27 - 06/10/2021 Jun 3, 2021
@pomadchin pomadchin modified the milestones: Sprint 05/27 - 06/10/2021, Sprint 06/10 - 06/24/2021 Jun 16, 2021
@pomadchin pomadchin removed this from the Sprint 06/10 - 06/24/2021 milestone Jul 7, 2021
@jpolchlo jpolchlo linked a pull request Jul 14, 2021 that will close this issue
2 tasks
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 a pull request may close this issue.

2 participants