1. A method of selecting an algorithm for use in processing hyperspectral data comprising: providing a set of algorithms, each having qualities for processing certain characteristics of hyperspectral data, and including at least Spectral Information Divergence (SID), Spectral Angle Mapping (SAM), Zero Mean Differential Area (ZMDA), Mahalanobis Distance, and Bhattacharyya Distance; accessing frame characteristics of the hyperspectral data; selecting at least one characteristic of the hyperspectral data; establishing a tolerance for variations in the at least one characteristic from a reference sample of the at least one characteristic; comparing the at least one characteristic in the hyperspectral data to the tolerance; and if the at least one characteristic exceeds the tolerance, selecting an algorithm from the set best associated with the at least one characteristic to process the hyperspectral data.