Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

606 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spectral Python (SPy)

https://github.com/spectralpython/spectral/actions/workflows/python-package.yml/badge.svg?branch=master Join the chat at https://gitter.im/spectralpython/spectral

Spectral Python (SPy) is a pure Python module for processing hyperspectral image data (imaging spectroscopy data). It has functions for reading, displaying, manipulating, and classifying hyperspectral imagery. Full details about the package are on the web site.

Installation Instructions

The latest release is always hosted on PyPI, so if you have pip installed, you can install SPy from the command line with

pip install spectral

Packaged distributions are also hosted at PyPI and GitHub so you can download and unpack the latest zip/tarball, then type

python setup.py install

To install the latest development version, download or clone the git repository and install as above. No explicit installation is required so you can simply access (or symlink) the spectral module within the source tree.

Finally, up-to-date guidance on how to install via the popular conda package and environment management system can be found at official conda-forge documentation.

Unit Tests

To run the suite of unit tests, you must have numpy and pytest installed and you must have the sample data files downloaded to the current directory (or one specified by the SPECTRAL_DATA environment variable).

The suite also covers SPy's optional graphics/GUI functionality (2D display via matplotlib/Pillow, and 3D display via PySide6/PyOpenGL), marked with graphics (and, for the 3D window tests specifically, gui3d). Tests for a given package are skipped automatically if that package isn't installed; pass --require-optional-deps to turn a missing optional dependency into a hard failure instead of a skip. A few examples:

Run only the basic tests (I/O and algorithms), explicitly excluding all graphics/GUI tests:

pytest -m "not graphics" spectral/tests

Run the basic tests plus any additional graphics/GUI tests supported by whatever optional packages are currently installed, letting tests for anything still missing skip automatically:

pytest spectral/tests

Run the basic tests and force the 2D rendering/GUI tests (matplotlib, Pillow) to run, failing rather than skipping if either package is missing:

pytest --require-optional-deps=matplotlib,PIL spectral/tests

Run every available test, including the 3D (PySide6/PyOpenGL) GUI tests, failing rather than skipping if any optional dependency -- or a working OpenGL rendering surface -- is unavailable. If no real display is available, run under a virtual one via xvfb-run:

xvfb-run -a pytest --require-optional-deps=all spectral/tests

Dependencies

Using SPy interactively with its visualization capabilities requires IPython and several other packages (depending on the features used). See the web site for details.

Releases

Packages

Used by

Contributors

Languages