Blog

HypPy

Hyperspectral Python

HypPy Overview

Hyperspectral Python (HypPy) is a collection of tools that were developed over the years at ITC. It has adopted the ENVI file format as the format used for images. Most people will use this package in conjuction with a software like the ENVI software. To a certain extent HypPy can also import and export some other formats.

HypPy Features
  • Viewer for ENVI format hyperspectral images.
  • Viewer for spectra and spectral libraries, including spectral math.
  • Conversion programs.
  • Simple spectral tools.
  • Band Math and Spectral Math.
  • Minimum Wavelength mapping.
  • Destriping
  • PCA and inverse PCA.
  • Hyperspectral filters.
  • Spectral Angle Mapper (SAM).
  • Tools for processing Omega images from the Mars Express.
  • Command-line interface for scripting.
  • Manuals for the graphical user-interface, scripting with HypPy, programming interface, and spectral math.
HypPy Release notes
  • 2019 March 28, bug fixes on decision tree and image wavelengths.
  • 2019 February 7, updates on spectra and spectral library functions.
  • 2018 October 19, “No points given” bug fix in convex hull.
  • 2018 October 5, tokml.py now also converts ENVI Classification images.
  • 2018 October 4, added classstats.py for mean spectrum of classes.
  • 2018 October 3, added decisiontree.py for executing ENVI decision trees.
  • 2018 Spetember 25, bandmath.py now has a commandline interface.
  • 2018 September 13, added fix SWIR for every 8th sample problem.
  • 2018 September 12, added smile analyzer (work in progress).
  • 2018 September 7, added keystone analyzer (work in progress).
  • 2018 April 25, added Movie option to the Image Viewer.
  • 2018 April 24, added a GUI for the GLT geocorrection tool.
  • 2018 April 16, Wavelength Mapper step 1 was completely reimplemented based on spectrum.py and has an added option for matching broad features (for iron for instance).
  • 2018 April 13, spectrum.py now uses scipy’s ConvexHull and interp1d for quick convex hull and parabola fitting.
  • 2018 March 28, destriping filter is now 8-neighborhood based instead of 9.
  • 2018 February 23, changed old-style os.spawn* by subprocess.Popen calls.
  • 2018 January 26, the spectral library viewer now supports Speclib07a files.
  • 2018 January 17, fixed stretch bug for unsigned data types.
  • 2018 January 16, added the ‘robust’ option for dark & white reference.
  • 2018 January 12, default stretch set to ‘0 255 linear’ for wavelength maps.
  • 2018 January 10, minor improvements on the Mars geocoding.
  • 2018, January 9, added azimuthal equidistant projection for Omega polar images.
  • 2017, December, added support for mean spectral profile from the viewer.
HypPy Prerequisites

In order to run, HypPy needs Python 3 plus some additional modules. These can easily be picked up by installing the following packages:

  • Python
  • NumPy
  • SciPy
  • PIL/Pillow (Python imaging libary)
  • Matplotlib
  • Matplotlib Basemap Toolkit (optional, only needed for viewing shapefiles)
  • OWSlib (optional, needed for WMS get)

Installers for these packages can HypPy3 downloadbe found at the pages listed under the quick links menu.

HypPy3 for Python3 Download

HypPy3 has been ported to Python3 and current development and bug-fixes are only continued on the HypPy3 version.

HypPy3 download

HypPy Installation, Linux

The following packages are needed on Linux:

  • python3
  • python3-tk
  • python3-numpy
  • python3-scipy
  • python3-pil
  • python3-pil.imagetk
  • python3-matplotlib
  • python3-mpltoolkits.basemap
  • python3-owslib

Since there’s no regular installer yet, the next best thing you can do is to create a new directory for HypPy and to unpack the tar file into this directory:

$ cd
$ mkdir HypPy
$ cd HypPy
$ tar zxvf ../hyppy.tar.gz
$ python tkHypPy.pyw

HypPy Installation, Windows

The easiest way to run HypPy on Windows is to pick up a Portable Python, for instance WinPython. WinPython is a complete portable scientific Python 3 distribution for Windows.

Download the latest WinPython with Python 3 and extract the package into a directory. This may be any directory of your choice; that’s why it’s called a portable Python.

From the WinPython directory run the WinPython control panel.exe. Go to the Advanced tab and Register your WinPython.

There is no uninstall for WinPython. Should you want to get rid of the WinPython then you can do that by simply unregistering first using the WinPython control panel and then to delete the entire WinPython directory tree.

Alternatively, you can install Python 3 and all the required packages yourself.

Next, download the HypPy3 zip file. Create a directory for HypPy. Unzip the hyppy3.zip into this directory.

To start HypPy go to the HypPy directory and double-click the tkHypPy.pyw. The HypPy main menu will pop up in the upper-right corner.

(If you need installers for 64-bit Windows systems, these can be found at this site maintained by Christoph Gohlke.)

(Tip: if Python installers hang on Windows you can trying running the installer as administrator; right-click the installer and click Run as administrator.)

HypPy Installation, other systems

Install Python 3 plus packages

Pick up the zip file, create a directory HypPy, unzip the hyppy.zip into this directory. To run HypPy double-click the file tkHypPy.pyw.

HypPy Documentation

The documentation of HypPy is contained by the tar file or zip file. The documentation is split into three levels:

  1. The User Manual for the graphical user-interface (GUI).
  2. The Scripting Manual for the conmmandline-interface (CLI).
  3. The Programming Manual for Pythonites.

As the package is in development, the documentation is never really finished. But I think the documentation is at least 90% complete.

HypPy for OMEGA

If you want to use HypPy for processing Mars Express/OMEGA images, please, contact us. There may be a couple of tricks you need to know first!

HypPy Contact

HypPy is distributed under the GNU General Public License (GNU-GPL). We don’t claim that this software is fit for any purpose. HypPy does have its limitations in the sense that the file size on 32-bit systems is limited to 2 GB (no limits on 64-bit systems) and that the display program was not designed to handle huge images. However, if you find HypPy useful, or if you have comments or contributions, please, send us an e-mail.

If you produce any scientific output using HypPy, please consider citing the references mentioned below.

Contributors

Jelmer Oosthoek

References
[Bakker 2002]
WH Bakker, KS Schmidt, Hyperspectral edge filtering for measuring homogeneity of surface cover types, ISPRS Journal of Photogrammetry and Remote Sensing, vol. 56, ed. 4, pp 246-256, 2002, Elsevier
[Bakker 2014]
WH Bakker, FJA van Ruitenbeek, HMA van der Werff, TE Zegers, JHP Oosthoek, SH Marsh, FD van der Meer, Processing OMEGA/Mars Express hyperspectral imagery from radiance-at-sensor to surface reflectance, Planetary and Space Science, vol. 90, pages 1-9, 2014, Pergamon
[vRuitenbeek 2014]
FJA van Ruitenbeek, WH Bakker, HMA van der Werff, TE Zegers, JHP Oosthoek, ZA Omer, SH Marsh, FD van der Meer, Mapping the wavelength position of absorption features between 2.1 and 2.4 μm: a new method for exploratory analysis of OMEGA/Mars Express hyperspectral imagery, Planetary and Space Science, Volume 101, 15 October 2014, Pages 108-117, Pergamon
[vdMeer 2018]
F van der Meer, V Kopačková, L Koucká, HMA van der Werff, FJA van Ruitenbeek, WH Bakker, Wavelength feature mapping as a proxy to mineral chemistry for investigating geologic systems: An example from the Rodalquilar epithermal system, International Journal of Applied Earth Observation and Geoinformation, Volume 64, 2018, Pages 237-248, Elsevier