Tim Michelsen wrote:

> O question on this here:
> > Improved Python API:     * read/write GRASS rasters to/from NumPy
> How do I trigger this?
> 
> Will a command r.out.numpy save the raster in a pickled array?
> How will the geographic information be retrained?

The grass.script.array module defines a class "array" which is a
subclass of numpy.memmap with .read() and .write() methods to
read/write the underlying file via r.out.bin/r.in.bin.

Example:

        import grass.script.array as garray
        a = garray.array()
        a.read("elevation.dem")
        b = garray.array()
        b[...] = (a / 50).astype(int) * 50      # or whatever
        b.write("elev.50m")

The size of the array is taken from the current region.

The main drawback of using numpy is that you're limited by available
memory. Using a subclass of numpy.memmap lets you use files which may
be much larger, but processing the entire array in one go is likely to
produce in-memory results of a similar size.

Unfortunately, I don't think that it's possible to define an array
subclass which provides the data in chunks.

-- 
Glynn Clements <[email protected]>
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to