[Gdal-dev] Efficient BIP Access?
Simon Perkins
sy at perkins.net
Mon Apr 23 12:55:05 EDT 2007
Hi,
I have a need to access large hyperspectral (hundred of bands) data
files efficiently. The files are stored in BIP format (nad interleaved
by pixel, i.e. "packed" pixel format), and hyperspectral processing is
typically carried out a pixel at a time using data from all bands.
The GDAL data access functions on the other hand are very band oriented,
and cache blocks are inherently 2D, and in the absence of tiling,
default to single rows of the image. So, if I want to access all bands
in a tile of an image, this will often blow GDAL's cache, since multiple
whole rows will be loaded for every band. It's also inherently
inefficient since hundreds of separate multiple random access reads have
to be made to the same portion of the file for each pixel.
Now, GDALDataset does define a RasterIO() method that allows 3D windows
to be retrieved, but the default implementation reverts to accessing the
data band by band. So my question is: which data formats implement this
method efficiently for BIP images? Second question: do these
implementations use GDALs cache?
Cheers,
Simon
More information about the Gdal-dev
mailing list