[GRASS-user] r.terraflow

Francesco Mirabella mirabell at unipg.it
Tue Nov 10 06:34:54 EST 2009


Hi Markus,
I tried to apply the patch of r.terraflow.  I do not know if I did it 
fine, what I did was to change the original 
"include/iostream/ami_sort_impl.h" file with the modifications in the 
.diff file. If this was fine, below is the output of r.terraflow which 
to me seems to give a different error as before.

===============================================================
GRASS 6.4.0RC5 (WGS84_UTM33):~ > r.terraflow elevation=dem_tagliato 
filled=flood direction=flow swatershed=sink accumulation=accumulation 
tci=tci d8cut=infinity memory=1600 STREAM_DIR=/tmp stats=stats.out
STREAM temporary files in /tmp  (THESE INTERMEDIATE STREAMS WILL NOT BE 
DELETED IN CASE OF ABNORMAL TERMINATION OF THE PROGRAM. TO SAVE SPACE 
PLEASE DELETE THESE FILES MANUALLY!)
MFD flow direction
D8CUT=999999986991104.000000
Memory size: 1.56G (1677721600) bytes
Memory manager registering memory in MM_IGNORE_MEMORY_EXCEEDED mode.
total elements=67071935, nodata elements=61864898
largest temporary files:
FILL: 3.50G (3756028360) [67071935 elements, 56B each]
FLOW: 397.27M (416562960) [5207037 elements, 80B each]
Will need at least 7.00G (7512056720) space available in /tmp
------------------------------
COMPUTING FLOW DIRECTIONS
classifying nodata (inner & boundary)
EMPQUEUEADAPTIVE: starting in-memory pqueue
EMPQUEUEADAPTIVE: available memory: 1597.93MB
EMPQUEUEADAPTIVE: desired memory: 1597.93MB
sz_stream: 270388 buf_arity: 200 mm_overhead: 8665728 mm_avail: 1675549602.
EMPQUEUEADAPTIVE: memory overhead set to 8.26428MB
EMPQUEUEADAPTIVE: pqsize set to 208360484
assigning preliminary directions
finding flat areas (plateaus and depressions)
EMPQUEUEADAPTIVE: starting in-memory pqueue
EMPQUEUEADAPTIVE: available memory: 1597.41MB
EMPQUEUEADAPTIVE: desired memory: 1597.41MB
sz_stream: 270388 buf_arity: 200 mm_overhead: 8665728 mm_avail: 1675008754.
EMPQUEUEADAPTIVE: memory overhead set to 8.26428MB
EMPQUEUEADAPTIVE: pqsize set to 208292878
assigning directions on plateaus
generating watersheds and watershed graph
AMI_STREAM::write_item failed.
/tmp/STREAM_HHSoQw: File too large
r.terraflow: 
/usr/local/svn/grass/grass640_rc5/dist.i686-pc-linux-gnu/include/grass/iostream/ami_stream.h:560: 
AMI_err AMI_STREAM<T>::write_item(const T&) [with T = 
compressedWaterWindowType]: Assertion `0' failed.
Abortito
GRASS 6.4.0RC5 (WGS84_UTM33):~ >
===============================================================

Francesco






Markus Neteler wrote:
> On Mon, Nov 9, 2009 at 1:24 PM, Francesco Mirabella <mirabell at unipg.it> wrote:
>> Hi all,
>> I am trying to get flow directions out of a dem (10m resolution). I have
>> tried r.terraflow which gives me the error below:
>> Can anyone tell me if I am doing something wrong and how can I solve this?
>> many thanks
>> Francesco
>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>> GRASS 6.4.0RC5 (WGS84_UTM33):~ > r.terraflow elevation=copia.dem
>> filled=flood direction=flow swatershed=sink accumulation=accumulation
>> tci=tci d8cut=infinity memory=300 STREAM_DIR=/tmp stats=stats.out
>>
>> STREAM temporary files in /tmp  (THESE INTERMEDIATE STREAMS WILL NOT BE
>> DELETED IN CASE OF ABNORMAL TERMINATION OF THE PROGRAM. TO SAVE SPACE PLEASE
>> DELETE THESE FILES MANUALLY!)
>> file stats.out exists - renaming.
>> MFD flow direction
>> D8CUT=999999986991104.000000
>> Memory size: 300.00M (314572800) bytes
>> Memory manager registering memory in MM_IGNORE_MEMORY_EXCEEDED mode.
>> total elements=67071935, nodata elements=8624611
>> largest temporary files:
>> FILL: 3.50G (3756028360) [67071935 elements, 56B each]
>> FLOW: 4.35G (4675785920) [58447324 elements, 80B each]
>> Will need at least 8.71G (9351571840) space available in /tmp
>> ------------------------------
>> COMPUTING FLOW DIRECTIONS
>> classifying nodata (inner & boundary)
>> EMPQUEUEADAPTIVE: starting in-memory pqueue
>> EMPQUEUEADAPTIVE: available memory: 297.929MB
>> EMPQUEUEADAPTIVE: desired memory: 297.929MB
>> sz_stream: 270388 buf_arity: 200 mm_overhead: 8665728 mm_avail: 312400802.
>> EMPQUEUEADAPTIVE: memory overhead set to 8.26428MB
>> EMPQUEUEADAPTIVE: pqsize set to 37966884
>> assigning preliminary directions
>> finding flat areas (plateaus and depressions)
>> file=/tmp/STREAM_rSqNkF:cannot read!: Bad address
>> r.terraflow:
>> /usr/local/svn/grass/grass640_rc5/dist.i686-pc-linux-gnu/include/grass/iostream/ami_sort_impl.h:91:
>> size_t makeRun_Block(AMI_STREAM<T>*, T*, unsigned int, Compare*) [with T =
>> plateauType, Compare = ijCmpPlateauType]: Assertion `err ==
>> AMI_ERROR_NO_ERROR || err == AMI_ERROR_END_OF_STREAM' failed.
>> Abortito
> 
> This is a known bug:
> http://trac.osgeo.org/grass/ticket/775
> 
> with a patch (r.terraflow.diff) to test. Perhaps you could try it
> and report back directly in the ticket?
> 
> thanks
> Markus
> 
> 


-- 
**********************************************
Francesco Mirabella,
Geologia Strutturale e Geofisica
Universita' di Perugia,
Dipartimento di Scienze della Terra,
Piazza Universita' 1, 06100 Perugia (Italy)
tel: ++39.(0)75.584.7948
fax: ++39.(0)75.585.2603
skype: francesco.mirabella
web: http://www.unipg.it/~mirabell/
**********************************************



More information about the grass-user mailing list