[GRASS-dev] R.terraflow on massive grids

Markus Metz markus.metz.giswork at googlemail.com
Mon Aug 15 06:28:13 EDT 2011


<Doug_Newcomb at fws.gov> wrote:
>
> Hi Folks,
> I have an fcell grid of elevations for the state of North Carolina (51000
> rows 133000 columns 6783000000 cells) .  I tried to run r.terraflow in
> GRASS7 ( 8/8/2011 svn snapshot) and ran into the dimension limits.  So I
> patched them according to Glynn's email ,
> http://www.osgeo.org/pipermail/grass-user/2004-February/024722.html  and
> tried again ( Would it be better to change the  dimension variable to int
> instead of  short int?) .
>
> This time my Streams file builds to about 26 GB and then r.terraflow bombs
> with :
>
> MFD flow direction
> D8CUT=999999986991104.000000
> Memory size: 808.00M (847249408) bytes
> Memory manager registering memory in MM_IGNORE_MEMORY_EXCEEDED mode.
> r.terraflow: grass2str.h:145: AMI_STREAM<T>*
> cell2stream(char*, elevation_type, long int*) [with T =
> float, elevation_type = float]: Assertion `nrows * ncols ==
> str->stream_len()' failed.
>
> The memory size is interesting, because I'm giving it 8GB of RAM out of 16
> GB in the command.

Note that the memory manager of the iostream lib used by r.terraflow
can only handle up to 2047 MB of RAM because the memory option in MB
is internally converted to Byte and stored as int, thus the max
recognized value is 2^31 - 1 Byte.

Markus M


More information about the grass-dev mailing list