By Larry Biehl1, Abdur Rahman Maud1, Wei-Kang Hsu1, Tsung Tai Yeh1

1. Purdue University

Image processing application to display and analyze geospatial images

Launch Tool

This tool version is unpublished and cannot be run. If you would like to have this version staged, you can put a request through HUB Support.

Archive Version 3.4
Published on 16 May 2020
Latest version: 3.42. All versions

Open source: license | download



Published on


MultiSpec is an image processing tool to display and analyze geospatial images. The online version has all of the features in the Macintosh and Windows desktop versions. More information on MultiSpec can be found at the MultiSpec site.

Note that you need to create an account (register) on mygeohub. You can set it up so that you stay logged in so that you do not have to log in each time. (Note that there will be a delay after registering before the account is approved. Send an email to to check into getting the account approved.)

The MultiSpec Reference contains the documentation for MultiSpec. Several tutorials (listed below) are also available.

Tutorials on using the Processor->Display Image menu item are at:

    - Tutorial 1: Basic display of images.

    - Tutorial 2: Image enhancement features.

A tutorial on Unsupervised Classification is at: 

    - Tutorial 3: Uses the Processor->Cluster menu item.

A tutorial on Supervised Classification is at: 

    - Tutorial 4: Uses the Processor->Statistics menu item (and several more menu items). 

Other tutorials high lighting features in MultiSpec are:

    - Tutorial 5: Combining Separate Image Files into a Single Multispectral Image File.

    - Tutorial 6: Overlay Shape Files on Image Window.

    - Tutorial 7: Selecting Areas in Image Window and the Coordinate View.

    - Tutorial 8: Creating Vegetation Indices Images.

    - Tutorial 9: Handling HDF and netCDF Formatted Image Files.

    - Tutorial 10: Visualizing Growing Degree Day (GDD) Images.

    - Middle/High School Lesson: Landsat 5 Flood Lesson.

The latest version (3.4; 05/14/2020) brings the code base up to the same level as that for the desktop versions of 5/14/2020. The changes include:
Processor->Reformat->Change Image File Format: A new feature was added to the New Channel from Algebraic Transformation option in the 'Transform Data' dialog box. One can select options to convert the respective thermal channel data values to radiance (if needed) and then to radiant temperature. Default constants (radiance conversions and K1 and K2 constants) are included if MultiSpec can recognize if the image data is Landsat 5, 7, or 8. However, users should always verify that the defaults are representative of the data they are using and modify them if needed. If the image data do not need to be converted to radiance, use 0 as the offset and 1 as the multiplier in the radiance conversion.
Processor->Display (multispectral) Image: A change was made so that the equal area and gaussian stretches will work correctly for 1-channel thematic images when the data are 32-bit integer and 32-bit and 64-bit real values.
Overlays in Cluster and Classify Processors: Overlays work correctly now when an overlay is drawn on a subset of the image when the image has been scrolled.
Processor->Reformat->Change Image File Format: A fix was made so that MultiSpec would not crash when one selected this processor to work with a 1-channel thematic image; crashes occurred sporadically for this operation.
Version 3.34 (04/22/2020) brings the code base up to the same level as that for the desktop versions of 4/17/2020. The changes include:
Processor->Open Image: Changes were made so that one can handle files with path names longer than 254 characters. The new limit is 1000 characters.
Processor->Feature Extraction: A fix was made so that the Nonparametric Weighting feature extraction (NWFE) algorithm would not crash like it did in certain situations.
Processor->Classify: A fix was made so that MultiSpec would not crash when using the ECHO classifier with the generate ECHO Field and Class image files option selected. The ECHO Fields image file generation would periodically cause a crash when the number of fields were significantly more than 256.
File->Save and Load Transformation Matrix: This feature has been implemented. One can save the transformation matrix generated by the Feature Extraction or Principal Component processors and read back in for further processing in a later session.
Output Text Window: A fix was made so that MultiSpec would not crash when one tried to select text in the window. The fix is actually to not allow one to make a selection with the cursor. This problem is buried deep in the libraries being used. One can still select all of the text and/or save the text in the window to a disk file. Fixes were also made so that the Edit Menu 'quick' keys for the window were correct.
Edit->Image Map Parameters: The menu item 'quick' key was changed from '`' to '-'. The '`' character is not handled in the wxWidgets/GTK2 code.
Other: The code is being compiled with a higher level of optimization. Let us know if you run into problems. You can submit a ticket by selecting the '?' in the upper right of the main MultiSpec page with the 'Launch Tool' button.

Version 3.33 (03/31/2020) fixes a problem in the Edit->Map Parameters menu item which caused geographic coordinate systems specified by EPSG codes to not be recognized and/or handled correctly. Also a change was made to allow more precision for horizontal and vertical pixel sizes. This may be needed for geographic coordinate systems.


Version 3.32 (02/20/2020) includes changes in the license information in each of the files in preparation to making the code for MultiSpec Online open source.

Version 3.3 (11/14/2019) includes a Support Vector Machine classifier. The LIBSVM support vector machine library developed by Chih-Chung Chang and Chih-Jen Lin is used. Several options are available. One can refer to for details about this SVM classifier and the options available.
This version also includes a change in the 'blinking' operation in thematic image windows. It is consistent with that in the desktop versions of MultiSpec. One can 'blink' the color of the class or group by placing the cursor over the respective color chip in the legend or over the respective color in the image window and do the following:

Shift Key: If one holds the shift key down, the cursor will change to an eye. Clicking the (left) mouse button down will change the color of the class or group to the background color. Releasing the mouse button will change the color back to the original. 

Shift and Control or z or / Keys: If one holds the shift and control or z or / keys down, the cursor will change to an eye. Clicking the mouse button down will change the color of all of the other classes or groups to the background color. Releasing the mouse button will change the colors back to the original. Note that whether one uses the Control or z or / keys is browser dependent. The control key does not work in some browsers. Therefore other options are provided; not perfect but the capability does work.

Shift and Option or a or ' Keys: If one holds shift and option or a or ' keys down, the cursor will change to an eye. Clicking the mouse button down will change the colors of this class or group and all with class/group numbers less than the selected one to the background color. Releasing the mouse button will change the colors back to the original. This option was specifically made available for probability images generated by the classify processor.

Changes were also made in several of the drop down menus in dialog windows so that one can select anywhere in the menu to get the menu list.
Changes were made in the channels and class dialog selection dialogs so that the selected channels or classes would appear immediately as one enters the first, last, or interval values.
Changes were also made to fix issues with handling overlays in the classify & cluster processors and issues in the statistics image processor.
Version 3.21 (8/19/2019) This version allows one to use a subset of classes and/or channels for the 'K Nearest Neighbor' classifier.
Version 3.2 (7/9/2019) includes the K Nearest Neighbor classifier. For this classifier, a pixel is assigned to the class which is most common among its k nearest training pixel neighbors. One can change the k value for nearest neighbors by holding the shift key down before selecting 'K Nearest Neighbor (KNN)' in the 'Procedure' dropdown menu in the Classify dialog box. One can threshold results by setting the minimum number of most common nearest training neighbors. For example setting the threshold to 4 will require that a pixel be assigned to a class only if there are 4 or more training pixels for that class in the k nearest neighbors. Note that the threshold has to be less than or equal to the 'k' value for the classifier. One can also create a 'KNN Values File' which is similar to a probability image file; the resulting image indicates the number of common classes for each pixel in the image.
Version 3.1 (4/12/2019) contains changes to allow only affected areas of the image windows to be updated, instead of the entire image for each update. Little change is noticed in smaller images (1000 lines and columns), but working with larger images is a little more efficient such as when making selections.
Version 3.0 (3/1/2019) is a merger of the code being used for the 64-bit version of MultiSpec for MacOS. The wxWidgets 3.1.2 library is used. There are changes in the layout of many of the dialog boxes. 
One can now hold the zoom in and zoom out buttons down for continuous zooming (with some delay). The same is true for the previous and next buttons on the histogram graphs.
Version 2.29 (8/29/2018) adds the ability to read PCI Geomatics PCIDSK (.pix) image files. This version has been tested with a few PCIDSK formatted image files.
Dialog boxes with lines and columns greater than 32,000 are now handled correctly.
Changes were made so that the wait (watch) cursor is displayed more consistently when long operations are underway.
Version 2.27 (7/31/2018) adds the ability to read National Imagery Transmission Format (NITF) image files. This version has been tested with a few single and multi-segment NITF files.
Sentinel S2A and S2B jp2 image files do not need to have S2A or S2B in the file names as long as S2A_ or S2B_ are in one of the parent folder names for MultiSpec to recognize that the image files were collected by one of the Sentinel 2 sensors.
Version 2.25 (7/20/2018) adds the ability to recognize PeruSat-1 data and associate the band description information with the channels as long as PER1 is in the file name. The bands are plotted in wavelength order for the selection graphs when one plots the data by wavelength or band width. One has the option to create a new image file in wavelength order using the Processor->Change Image File Format menu item. Newly created files do not need to have PER1 in the file name for GeoTIFF formatted files; the instrument name is included with the TIFF description tag.
-This version will also recognize Sentinel 2B data and associate the band description information with the channels as long as S2B is in the file name. The band description information for Sentinel 2A has been changed from the design specs to the actual specs.
-Processor->Reformat->Rectify: Problem was fixed which caused part of the output rectified scene to have missing data around the edges for some situations.

Version 2.21 (6/19/2018) modifies the File->Open Image dialog box so that when one selects multiple files and then selects the 'Open' button an option window will be displayed requesting whether the user wishes to link the files together if the link option was not already selected.

-The Output file drop-down menu in the Reformat->Change Image File Format dialog box was modified so that the non-available options would not be displayed.
-Some changes were made in the status dialog box when clustering to provide more consistent information.
Version 2.20 (5/2/2018) adds the ability to create a false color palette for classification images based on the training class mean values in the project statistics for three selected channels. The project file needs to be open to use this feature.
-Improvements were made in the selection and list data graphs along with a bug which would cause MultiSpec to crash in a specific circumstance.
-Also a change was made so that the open file dialog box will always open in front of all other windows; this would not occur if a graph or project window was the topmost window and there were no open image windows.
- A fix was made which caused MultiSpec to crash when generating cluster overlays when overlays existed for other image windows.

Version 2.15 (3/8/2018)adds the ability to handle the GDAL VRT file structure for images. Some changes were also make in scaling for selection graphs.


Version 2.10 (1/30/2018) adds the ability plot selected multispectral data in a graph indicating the wavelength band width, if available, for each band (channel). The x-axis label allows the user to select channel number, wavelength, and wavelength band. Additionally if the image data represents both reflective and thermal data, the x-axis label allow one to plot only the reflective data or thermal data against the wavelengths that the respective bands represent.

- Another feature that was added is the ability to select the mixing value for the Leave One Out Covariance option in the Stats popup menu in the project window. Hold the shift key down before selecting the menu to have the ability to select this option; the LOOC choice will look like 'LOOC...' to cause a dialog box to appear with LOOC mixing options. See pages 59, 89-90 of the MultiSpec Reference for more information about this option.
Version 2.05 (12/19/2017) adds the ability plot selected multispectral data against wavelength in selection graphs. The x-axis label allows the user to select channel number or wavelength if that information is available for the image. This version also fixes an issue with displaying hdf4, hdf5 and netcdf files when the data set is changed from the default.

Cite this work

Researchers should cite this work as follows:

  • Larry Biehl; Abdur Rahman Maud; Wei-Kang Hsu; Tsung Tai Yeh (2020), "MultiSpec,"

    BibTex | EndNote