[gdal-dev] Reading image

Lucena, Ivan ivan.lucena at pmldnet.com
Tue Sep 2 08:46:53 EDT 2008


Silvia,

As far as I know, the GDAL API doesn't have a function to read direct 
from a multi-band to 3D matrix.

The GDALRasterBand::RasterIO()[1] and GDALRasterBand::ReadBlock()[2] 
reads from one band at the time.

The GDALDataset::RasterIO()[3] does support multi-band reading but I 
believe that it will not going to word generically for whatever input 
you have and that is usually a import goal when programming with GDAL.

That will depend on the interleave mode and the returning buffer is not 
going to be exactly a 3D matrix but it could be interpreted as one with 
simple math. I guess.

But that doesn't mean that you cannot use the GDALRasterBand methods and 
write your on code to mount a 3D matrix. I don't know about the others 
but I feel safer with this approach instead of the GDALDAtaset one.

Anyway, Take a look in some C++ code, that doesn't do multi-band, but a 
least can give you one idea of how you can use GDAL in C++ to manipulate 
pixel values.[4]

1)http://www.gdal.org/classGDALDataset.html#e077c53268d2272eebed10b891a05743
2)http://www.gdal.org/classGDALRasterBand.html#09e1d83971ddff0b43deffd54ef25eef
3)http://www.gdal.org/classGDALDataset.html#e077c53268d2272eebed10b891a05743
4)http://perrygeo.googlecode.com/svn/trunk/demtools/

Best regards,

Ivan


Silvia Marchesi wrote:
> Hi everybody,
>  I'm a new user of gdal library and functions and I would like to know how
> can I read a multiband image putting in a matrix (i.e. A[x][y][b]) the
> values of the DN.
> 
> Thanks a lot,
> Silvia
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev


More information about the gdal-dev mailing list