flipturn.org - stuff. things. other stuff.
dvorak | pantera | hacks


Commonly used in remote sensing applications, hyperspectral images have many more "colors" than just red, green, and blue. Typically, the images are structured in layers called "bands", where each band represents a specific wavelength of light. You can think of them as a stack of grayscale images, one on top of the other, where each image in the stack is looking at the same field of view, but at a different wavelength of light.

Because each pixel at the same row and column in the band refers to the same spot on the ground, each pixel can be associated with a spectrum. Because there can be hundreds of bands in an image, the spectrum can be quite high resolution. Because of the large number of samples in the spectrum, the spectrum can be used to identify the material(s) in the pixel.

The Federation of American Scientists has a good tutorial about remote sensing, and it includes sections about hyperspectral imagery.

There are many hyperspectral imagers; most are airborne or mounted on spacecraft. NASA's AVIRIS sensor is very well known in the field of earth remote sensing. They provide some free data for testing purposes.

Hyperspectral images are very large, typically on the order of hundreds of megabytes for a standard scene. This means that most of the time an image won't be read entirely into memory at once. This major mode is capable of viewing images larger than physical memory.

Raw File Formats

There are many different image formats for hyperspectral images, but they fall in two general categories: raw and compressed.


A common image format is the ENVI format, which consists of two files: a data file in a raw format, and a header file that describes the format.

Compressed Formats

peppy doesn't support compressed formats directly; you must use GDAL to load compressed images like copressed NITF, ECW, jpeg2000, etc.


GDAL is a C++ library with a python binding that supports many different file formats through one API. peppy only supports the ngpython bindings of GDAL, so when compiling GDAL you must use the following configure flags:

./configure --without-python --with-ngpython

In addition, the libecw2 library from ERMapper can be used to support stand-alone JPEG2000 images and JPEG2000 images embedded in other formats like NITF.

Sample Images

ENVI format

GDAL-supported formats

erection pharmacy erection pills california erection pills california erection pharmacy
sale levitra order cialis online levitra over the counter levitra over the counter