1. A computer implemented method for compressing 3D hyperspectral image data having a plurality of spatial pixels associated with a hyperspectral image, and a number of spectral dimensions associated with each spatial pixel, the method comprising: receiving, using a processor, the 3D hyperspectral image data, a set of basis vectors associated therewith, and a maximum error amount; partitioning, using the processor, the 3D hyperspectral image data into a plurality of 2D images, each associated with one of the number of spectral dimensions, and an associated one of the set of basis vectors; ranking, using the processor, the set of basis vectors if not already ranked; iteratively applying a lossy compression to the plurality of 2D images using the processor, starting with 2D images associated with a lowest ranked basis vector, as compressed 2D images; comparing, using the processor, an error associated with the compressed 2D images with the maximum error amount, to maximize an amount of volume compression within the maximum error amount; setting aside, using the processor, pixels of the 2D images with errors exceeding the maximum error amount; wherein iteratively applying the lossy compression to the plurality of 2D images comprises measuring error in a worst case pixel associated with each of the plurality of 2D images and comparing the error in the worst case pixel associated with one of the plurality of 2D images in a current iteration to the error in a worst case pixel associated with one of the plurality of 2D images in a prior iteration; and wherein said comparing the error comprises testing whether the error in the worst case pixel in the current iteration is more than a user-determined amount greater than the error in the worst case pixel in the prior iteration.