1. A process for determining a subset of members of a group of N data vectors, the subset denoted as endmembers, which may be taken in positive linear combinations to approximate the other members of the group, comprising: a. providing a data set comprised of a plurality of spectra; b. defining an error metric dependent on a difference between two spectra; c. selecting a first spectrum as the first endmember; d. for the member spectra in the group, determining a non-negative weighting factor such that, when the first spectrum is multiplied by the weighting factor and subtracted from the spectrum, the resulting difference generates a smallest error metric; e. selecting as a next endmember the member spectrum whose calculated difference from step d generates the largest error metric; f. for the N member spectra in the group, determining a weighting factor, determining an updated difference by subtracting from the prior difference the difference for the endmember in step e multiplied by the weighting factor, and determining an updated set of member weighting factors by subtracting from the prior set of weighting factors the set of weighting factors for the endmember in step d multiplied by the weighting factor, such that all updated weighting factors are non-negative and the updated member difference generates a smallest error metric; and g. repeating steps e and f for all or a subset of member spectra one or more times.