VIPER Tools 3 Documentation


About VIPER Tools 3

The VIPER Tools software package is both a QGIS plugin and stand-alone python package that provides a suite of processing tools for multiband passive optical remote sensing data including hyperspectral and multispectral imagery.

The original VIPER Tools was written for ENVI/IDL and released in 2007. Several updates have been released since and the toolbox was ported to PyQGIS in 2018 and 2019.

The package provides tools for:
  • Creating spectral libraries interactively (selecting spectra from an image or using regions of interest) and managing the metadata (developed by HU Berlin)
  • Optimizing spectral libraries with Iterative Endmember Selection, Ear-Masa-Cob or CRES
  • Running SMA and MESMA (with multi-level fusion, stable zone unmixing, …)
  • Post-processing of the MESMA results (visualisation tool, shade normalisation, …)

VIPER Tools has now been developed in the open source environment to encourage further development of the tool.

The instruction pages can be found at and include guidance for installation, a user manual, exercises and an API.

The repository and testdata can be found at

Referencing VIPER Tools 3

When using Viper Tools 3, please use the following citation:

Crabbé, A. H., Jakimow, B., Somers, B., Roberts, D. A., Halligan, K., Dennison, P., Dudley, K. (2019). Viper Tools Software (Version 3) [Software]. Available from


The software and user guide are based on VIPER Tools 2.0 (UC Santa Barbara, VIPER Lab): Roberts, D. A., Halligan, K., Dennison, P., Dudley, K., Somers, B., Crabbe, A., 2018, Viper Tools User Manual, Version 2, 91 pp.

The revision into version 3 is funded primarily through BELSPO (the Belgian Science Policy Office) in the framework of the STEREO III Programme – Project LUMOS - SR/01/321.

VIPER and LUMOS logo’s created for free at

Software Licence

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version.

What is new in VIPER Tools 3.1?

Differences between Viper Tools 3.0 and 3.1:
  • The Library Creation tool has been revised thoroughly again, with extra features to import and save spectral libraries (from raster or vector sources, from ASD, CSV, ARTMO, ECOSIS, ENVI en SPECCHIO); better editing tools; it is also more stable now.
  • The EMC tool now also allows for square arrays that have been run in non-reset mode.

What is new in VIPER Tools 3.0?

Differences between Viper Tools 2.0 and 3.0:
  • The migration to PyQGIS is not just a translation from IDL to Python, but also a serious re-write of the code and a revision of the GUI to match the look and feel of other QGIS tools.
  • Library Creation has been revised thoroughly, with integration of GIS: inside QGIS, a spectral library is now represented as a vector layer and each spectrum as a feature. This makes it easier to select spectra from a map, use polygons for selection and manage features and their metadata via the attribute table.
  • The output of the Library Optimization tools has been optimized, breaking backwards compatibility with the IDL tools.
  • The output of the MESMA tools has been optimized, breaking backwards compatibility with the IDL tools.
  • A tool for visualisation of the MESMA results has been introduced. A first draft of this tool had been proposed for Viper 2.0, however this was not yet user-friendly and therefore later removed again. The visualisation tool included in this version is a revision of the former tool, with a focus on user friendliness and GIS.
  • The post-processing tool for integration with DEM has been removed.
  • Extra post-processing tool: Soft to Hard Classification (transforms the fractions image into a classification image)
_images/lumos_big.svg _images/viper_big.svg