[gdal-dev] Raster size and ReadAsArray()

Antonio Valentino antonio.valentino at tiscali.it
Wed Aug 3 10:39:25 EDT 2011


Hi Alexander,

Il 03/08/2011 15:35, Alexander Bruy ha scritto:
> Hi,
> 
> There is a well-know "problem": reading really large rasters or bands
> into memory with DataSource.ReadAsArray() method impossible due
> memory limitations. For example, when I try to read one band with
> size 53109x29049 I get error:

[CUT]

> I want to know is it possible to get maximum raster size that can be handled
> using ReadAsArray() without errors because I want to implement a fallback
> algorithm for large rasters in my tool.

In my experience using too large chunks of memory can cause,
paradoxically, slowdowns.
My suggestion is to define a reasonable maximum size for arrays in your
application/library and switch to the "fallback algorithm for large
rasters" every time that MAX_SIZE is exceeded, even if using ReadAsArray
still works.

> Currently I try to implement it with try-except statement but maybe
> there is more
> elegant solution?
> 
> 
> Thanks

IMHO using try-except *is* elegant and perfectly in line with python's
philosophy.

best regards

-- 
Antonio Valentino


More information about the gdal-dev mailing list