<div>hello all,</div>
<div> </div>
<div>am still facing this problem.... even after updating the patch file..</div>
<div><br><font size="1">r.terraflow December 2003<br>region size is 13593 x 15215<br>cell 960MBdata header compatible with region header<br>elevation stored as FLOAT (4B) WARNING: raster 960MBdata is of type CELL_TYPE --you should use
r.terraflow.short</font></div>
<div>
<p><font size="1">STREAM temporary files in /var/tmp (THESE INTERMEDIATE STREAMS WILL NOT BE DELETED IN CASE OF ABNORMAL TERMINATION OF THE PROGRAM. TO SAVE SPACE PLEASE DELETE THESE FILES MANUALLY!)<br>SFD (D8) flow direction
<br>D8CUT=999999986991104.000000<br>memory size: 400.00M (419430400) bytes<br>Memory manager registering memory in MM_WARN_ON_MEMORY_EXCEEDED mode.<br>reading data from 960MBdata to stream /var/tmp/STREAM_kohqGU: </font></p>
<p><font size="1">total elements=206817495, nodata elements=50042031<br>largest temporary files: <br> FILL: 10.79G (11581779720) [206817495 elements, 56B each]<br> FLOW: 11.68G (12542037120) [156775464 elements, 80B each]
<br>Will need at least 23.36G (25084074240) space available in /var/tmp<br>------------------------------<br>COMPUTING FLOW DIRECTIONS<br>classifying nodata (inner & boundary)<br>finding nodata<br>relabeling nodata<br>
MM warning: limit=419430400B. allocating 209608296B. limit exceeded by 23602B.<br>MM warning: limit=419430400B. allocating 209608296B. limit exceeded by 23633B.<br>merging relabeled grid<br>MM warning: limit=419430400B. allocating 209567256B. limit exceeded by 23558B.
<br>MM warning: limit=419430400B. allocating 209567256B. limit exceeded by 23589B.<br>----------<br>assigning preliminary directions<br>----------<br>finding flat areas (plateaus and depressions)<br>plateau.cc:starting memscan
<br>plateau.cc:memscan done<br>removing duplicate plateaus<br>MM warning: limit=419430400B. allocating 209567260B. limit exceeded by 23574B.<br><font size="1">:</font><br>MM warning: limit=419430400B. allocating 209567260B. limit exceeded by 23636B.
<br>relabeling plateaus<br>MM warning: limit=419430400B. allocating 209567260B. limit exceeded by 23570B.<br>MM warning: limit=419430400B. allocating 209567260B. limit exceeded by 23601B.<br>generating plateau statistics
<br>MM warning: limit=419430400B. allocating 209403100B. limit exceeded by 23570B.<br>MM warning: limit=419430400B. allocating 209403100B. limit exceeded by 23601B.<br>----------<br>assigning directions on plateaus<br>MM warning: limit=419430400B. allocating 209649312B. limit exceeded by 19306B.
<br><font size="1">:</font><br>MM warning: limit=419430400B. allocating 209649312B. limit exceeded by 19368B.<br>--------------<br>generating watersheds and watershed graph<br>creating windows<br>warning: using slower scan
<br>generateWatersheds<br>MM warning: limit=419430400B. allocating 209628776B. limit exceeded by 10438B.<br>:<br>:<br>:<br>:<br>:</font><font size="1"><br>MM warning: limit=419430400B. allocating 209628776B. limit exceeded by 11182B.
<br>file=/var/tmp/STREAM_UpisEN:cannot read!: Input/output error<br>r.terraflow: ./IOStream/include/ami_sort_impl.h:109: void makeRun_Block(AMI_STREAM<T>*, T*, unsigned int, Compare*) [with T = waterWindowType, Compare = priorityCmpWaterWindowType]: Assertion `err == AMI_ERROR_NO_ERROR' failed.
<br></font> <br>-- <br>Best Regrads<br><br>Abhay Menon<br><span class="gmail_quote"><br>On 4/28/06, <b class="gmail_sendername">Shaun Walbridge</b> <<a href="mailto:walbridge@nceas.ucsb.edu">walbridge@nceas.ucsb.edu</a>
> wrote:</span> </p></div>
<div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Apologies, I forgot to re-attach the patch to this list. The only<br>changes I've found necessary are those couple spots in ami_stream.h.
<br>We've successfully run Terraflow on 4GB+ datasets after the swap to<br>fseeko/ftello.<br><br>Cheers,<br>Shaun<br><br>--- ami_stream.h 2004-11-09 05:29:58.000000000 -0800<br>+++ ami_stream.h.edit 2006-04-27 10:44:
48.000000000 -0700<br>@@ -394,8 +394,8 @@<br> seek_offset = offset * sizeof(T);<br> }<br><br>- if (fseek(fp, seek_offset, SEEK_SET) == -1) {<br>- cerr << "AMI_STREAM::seek offset=" << seek_offset << "failed.\n";
<br>+ if (fseeko(fp, seek_offset, SEEK_SET) == -1) {<br>+ cerr << "AMI_STREAM::seek offset=" << seek_offset << " failed.\n";<br> assert(0);<br> exit(1);<br> }<br>@@ -463,7 +463,7 @@
<br><br> assert(fp);<br> //if we go past substream range<br>- if ((logical_eos >= 0) && ftell(fp) >= sizeof(T) * logical_eos) {<br>+ if ((logical_eos >= 0) && ftello(fp) >= sizeof(T) * logical_eos) {
<br> return AMI_ERROR_END_OF_STREAM;<br><br> } else {<br>@@ -489,7 +489,7 @@<br> assert(fp);<br><br> //if we go past substream range<br>- if ((logical_eos >= 0) && ftell(fp) >= sizeof(T) * logical_eos) {
<br>+ if ((logical_eos >= 0) && ftello(fp) >= sizeof(T) * logical_eos) {<br> return AMI_ERROR_END_OF_STREAM;<br><br> } else {<br>@@ -512,7 +512,7 @@<br><br> assert(fp);<br> //if we go past substream range
<br>- if ((logical_eos >= 0) && ftell(fp) >= sizeof(T) * logical_eos) {<br>+ if ((logical_eos >= 0) && ftello(fp) >= sizeof(T) * logical_eos) {<br> return AMI_ERROR_END_OF_STREAM;<br><br> } else {
<br>@@ -532,7 +532,7 @@<br><br> assert(fp);<br> //if we go past substream range<br>- if ((logical_eos >= 0) && ftell(fp) >= sizeof(T) * logical_eos) {<br>+ if ((logical_eos >= 0) && ftello(fp) >= sizeof(T) * logical_eos) {
<br> return AMI_ERROR_END_OF_STREAM;<br><br> } else {<br></blockquote></div>