A method of clustering and reducing hyperspectral image data having a plurality of spatial pixels, and a plurality of spectral dimensions associated with each spatial pixel, the method comprising: computing an initial basis vector associated with the hyperspectral image data; unmixing the initial basis vector with the hyperspectral image data to generate an initial set of coefficients and an associated set of residual vectors, wherein said unmixing comprises computing a dot product of the initial basis vector with each spatial pixel of the hyperspectral image data, and computing a residual vector associated with each dot product; generating a set of clusters based on the initial set of coefficients; and iteratively computing one or more additional basis vectors and updating the set of clusters by: calculating a subsequent basis vector based on a residual vector associated with a prior unmixing, wherein the subsequent basis vector is orthogonal to the previous basis vector; unmixing the subsequent basis vector with a prior set of residual vectors to generate additional coefficients associated with each pixel, wherein said unmixing comprises computing a dot product of the subsequent basis vector and the residual vector at each spatial pixel of the hyperspectral image data, and computing a residual vector associated with each dot product; and iteratively computing (170, 180) cluster centers and the assignment of pixels to each cluster by updating the cluster centers computed in a previous iteration, said cluster centers including an additional dimension associated with the subsequent basis vector; and further comprising outputting dimensionally reduced data comprising one or more of the initial coefficients and the additional coefficients associated with each pixel. computing an initial basis vector associated with the hyperspectral image data; unmixing the initial basis vector with the hyperspectral image data to generate an initial set of coefficients and an associated set of residual vectors, wherein said unmixing comprises computing a dot product of the initial basis vector with each spatial pixel of the hyperspectral image data, and computing a residual vector associated with each dot product; generating a set of clusters based on the initial set of coefficients; and iteratively computing one or more additional basis vectors and updating the set of clusters by: calculating a subsequent basis vector based on a residual vector associated with a prior unmixing, wherein the subsequent basis vector is orthogonal to the previous basis vector; unmixing the subsequent basis vector with a prior set of residual vectors to generate additional coefficients associated with each pixel, wherein said unmixing comprises computing a dot product of the subsequent basis vector and the residual vector at each spatial pixel of the hyperspectral image data, and computing a residual vector associated with each dot product; and iteratively computing (170, 180) cluster centers and the assignment of pixels to each cluster by updating the cluster centers computed in a previous iteration, said cluster centers including an additional dimension associated with the subsequent basis vector; and calculating a subsequent basis vector based on a residual vector associated with a prior unmixing, wherein the subsequent basis vector is orthogonal to the previous basis vector; unmixing the subsequent basis vector with a prior set of residual vectors to generate additional coefficients associated with each pixel, wherein said unmixing comprises computing a dot product of the subsequent basis vector and the residual vector at each spatial pixel of the hyperspectral image data, and computing a residual vector associated with each dot product; and iteratively computing (170, 180) cluster centers and the assignment of pixels to each cluster by updating the cluster centers computed in a previous iteration, said cluster centers including an additional dimension associated with the subsequent basis vector; and further comprising outputting dimensionally reduced data comprising one or more of the initial coefficients and the additional coefficients associated with each pixel.