SpectralUnmixing

Spectral unmixing, oriented towards imaging spectroscopy data. Lots of flavors included.

https://github.com/emit-sds/spectralunmixing.jl

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Spectral unmixing, oriented towards imaging spectroscopy data. Lots of flavors included.

Basic Info
Statistics
  • Stars: 16
  • Watchers: 3
  • Forks: 12
  • Open Issues: 10
  • Releases: 8
Created about 4 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog License Citation

README.md


SpectralUnmixing.jl
SpectralUnmixing.jl

version

A general, fast, flexible, and including spectral unmixing package. Oriented towards VSWIR imaging spectroscopy data but applicable for different sensor types. Includes options for different treatments of endmember library assemblages, including MESMA and bootstrapping (aka monte carlo) strategies.

Installation

This package is registered and can be added using the Julia package manager. 1. Install Julia 2. Install the package from the Julia Pkg REPL: julia julia> ] pkg> add SpectralUnmixing or equivalently, julia 'using Pkg; Pkg.add("SpectralUnmixing")' Remember to activate the appropriate environment via the Pkg REPL or by using the --project flag or setting the JULIA_PROJECT environment variable. 3. Install the CLI script julia> using SpectralUnmixing julia> CLI.install()

If you would like to install a local version of the repository, first clone a local copy and navigate into the base SpectralUnmixing directory. Then run: julia --project='.' -e 'using Pkg; Pkg.activate(".");' export JULIA_PROJECT=${PWD}

Using the CLI script

Currently the package supports reading and writing ENVI raster data.

Basic:

julia unmix.jl REFLECTANCE_IMAGE ENDMEMBER_LIBRARY ENDMEMBER_COLUMN OUTPUT_BASE --mode sma

Parallel implementation (with 10 cores):

julia -p 10 unmix.jl REFLECTANCE_IMAGE ENDMEMBER_LIBRARY ENDMEMBER_COLUMN OUTPUT_BASE --mode sma

Bootstrapping uncertainty:

julia -p 10 unmix.jl REFLECTANCE_IMAGE ENDMEMBER_LIBRARY ENDMEMBER_COLUMN OUTPUT_BASE --mode sma --n_mc 50

Normalization:

julia -p 10 unmix.jl REFLECTANCE_IMAGE ENDMEMBER_LIBRARY ENDMEMBER_COLUMN OUTPUT_BASE --mode sma --n_mc 50 --normalization brightness

Preset maximum number of endmembers used for unmixing:

julia -p 10 unmix.jl REFLECTANCE_IMAGE ENDMEMBER_LIBRARY ENDMEMBER_COLUMN OUTPUT_BASE --mode sma --n_mc 50 --normalization brightness --num_endmembers 10

EMIT-style Runs

Following Ochoa et al., to run SpectralUnmixing in the same manner as EMIT, use:

julia -p 64 unmix.jl REFLECTANCE_IMAGE ENDMEMBER_LIBRARY ENDMEMBER_COLUMN OUTPUT_BASE --mode sma-best --normalization brightness --num_endmember 30 --n_mc 20 --reflectance_uncertainty_file REFLECTANCE_UNCERTAINTY_IMAGE

Owner

  • Name: emit-sds
  • Login: emit-sds
  • Kind: organization

JOSS Publication

SpectralUnmixing: A general Julia package for unmixing spectroscopy data
Published
December 10, 2025
Volume 10, Issue 116, Page 9149
Authors
Philip G. Brodrick ORCID
Jet Propulsion Laboratory, California Institute of Technology, United States of America
Francisco Ochoa ORCID
University of California, Los Angeles, United States of America
Gregory Okin ORCID
University of California, Los Angeles, United States of America
Vatsal A. Jhalani ORCID
Jet Propulsion Laboratory, California Institute of Technology, United States of America
Winston Olson-Duvall ORCID
Jet Propulsion Laboratory, California Institute of Technology, United States of America
Sarah R. Lundeen
Jet Propulsion Laboratory, California Institute of Technology, United States of America
David R. Thompson ORCID
Jet Propulsion Laboratory, California Institute of Technology, United States of America
Robert O. Green ORCID
Jet Propulsion Laboratory, California Institute of Technology, United States of America
Editor
Rachel Kurchin ORCID
Tags
imaging spectroscopy EMIT remote sensing Earth science

Citation (CITATION.cff)

cff-version: 1.2.0
title: SpectralUnmixing
message: >-
  If you use this software for research we would appreciate
  appropriate citation. This may be prepared using the
  bibliographic metadata contained in our DOI, accessible
  through the DOI system and at
  https://doi.org/10.5281/zenodo.15098652. 

type: software
authors:
  - given-names: Philip G Brodrick
    affiliation: >-
      Jet Propulsion Laboratory, California Institute of
      Technology
    orcid: 'https://orcid.org/0000-0001-9497-7661'
  - given-names: Francisco Ochoa
    affiliation: >-
      University of California, Los Angeles
    orcid: 'https://orcid.org/0000-0003-3363-2496'
  - given-names: Vatsal Jhalani
    affiliation: >-
      Jet Propulsion Laboratory, California Institute of
      Technology
    orcid: 'https://orcid.org/0000-0003-0866-0858'
  - given-names: Winston Olson-Duvall
    affiliation: >-
      Jet Propulsion Laboratory, California Institute of
      Technology
    orcid: 'https://orcid.org/0000-0002-4210-0283'

identifiers:
  - type: doi
    value: 10.5281/zenodo.15098652
license: Apache-2.0

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 8
  • Watch event: 1
  • Issue comment event: 8
  • Push event: 12
  • Pull request event: 11
  • Fork event: 1
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 8
  • Watch event: 1
  • Issue comment event: 8
  • Push event: 12
  • Pull request event: 11
  • Fork event: 1

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
juliahub.com: SpectralUnmixing

Spectral unmixing, oriented towards imaging spectroscopy data. Lots of flavors included.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 8.4%
Average: 22.2%
Dependent packages count: 36.1%
Last synced: 6 months ago

Dependencies

.github/workflows/unit-tests.yml actions
  • actions/checkout v2.2.0 composite
  • julia-actions/setup-julia v1 composite