<div dir="ltr"><div><div><div>Sorry to post again on this long thread...<br><br></div>I have just managed to get my hands on a 64bit osgeolive install with 12GB RAM available and the afformentioned function worked. Just to reiterate this was i.segment.stats on gp_seg_optimum_clump (which was the output of i.segment, run through r.clump). I haven't created the vectormap, but it seems that the csv was created correctly. <br><br></div>I don't know if it was the 64bit or the bit of extra RAM that made the difference here.<br><br></div>James<br><div class="gmail_extra"><br><div class="gmail_quote">On 4 November 2016 at 15:34, Markus Metz <span dir="ltr"><<a href="mailto:markus.metz.giswork@gmail.com" target="_blank">markus.metz.giswork@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Nov 4, 2016 at 3:51 PM, Moritz Lennert<br>
<div><div class="h5"><<a href="mailto:mlennert@club.worldonline.be">mlennert@club.worldonline.be</a>> wrote:<br>
> On 04/11/16 14:29, Markus Metz wrote:<br>
>><br>
>> On Wed, Nov 2, 2016 at 5:15 PM, Markus Metz<br>
>> <<a href="mailto:markus.metz.giswork@gmail.com">markus.metz.giswork@gmail.com</a><wbr>> wrote:<br>
>>><br>
>>> On Wed, Nov 2, 2016 at 3:47 PM, Moritz Lennert<br>
>>> <<a href="mailto:mlennert@club.worldonline.be">mlennert@club.worldonline.be</a>> wrote:<br>
>>>><br>
>>>> On 02/11/16 11:05, James Duffy wrote:<br>
>>>>><br>
>>>>><br>
>>>>> I can't register with osgeo to submit a bug as no-one has replied with<br>
>>>>> a<br>
>>>>> 'mantra' for me to do so... what a convoluted bug reporting system!<br>
>>>>><br>
>>>>> And in your opinion Moritz, does it look like my workflow will not be<br>
>>>>> possible unless I find a 64bit machine with a decent amount of RAM?<br>
>>>><br>
>>>><br>
>>>><br>
>>>> I'm not sure about the necessity of 64bit, but more RAM probably.<br>
>>>><br>
>>>> IIUC, all the stats of all the zones are put into memory during the run<br>
>>>> of<br>
>>>> the module. Maybe a file-based store of the information might be<br>
>>>> possible<br>
>>>> which would avoid this memory usage, but I'm not sure.<br>
>>>><br>
>>>> @MarkusM: could you have a look at this ? See<br>
>>>> <a href="https://lists.osgeo.org/pipermail/grass-user/2016-October/075493.html" rel="noreferrer" target="_blank">https://lists.osgeo.org/<wbr>pipermail/grass-user/2016-<wbr>October/075493.html</a><br>
>>>> for<br>
>>>> the beginning of the thread. In short: James seems to be hitting memory<br>
>>>> limits of r.univar and I'm wondering out loud whether there is something<br>
>>>> that could be done about this...<br>
>>><br>
>>><br>
>>> As Anna wrote, the -e flag increases memory consumption of r.univar<br>
>>> considerably. A file based approach for extended stats of r.univar is<br>
>>> difficult because the number of values per segment is initially<br>
>>> unknown to r.univar, thus the amount of disk space needed for extended<br>
>>> stats for each segment is unknown.<br>
>>><br>
>>> I would rather use r.univar for standard stats and r.stats.quantile<br>
>>> for extended stats.<br>
>><br>
>><br>
>> There were some bugs in r.stats.quantile, fixed in r69770-2 in all G7<br>
>> branches.<br>
><br>
><br>
> Great, thanks !<br>
><br>
>><br>
>> About the limit to MAX_CATS categories in the base map (ticket #3198),<br>
>> there is not really a reason for it. I guess it is meant to protect<br>
>> against out-of-memory errors.<br>
><br>
><br>
> Does this mean we can just take out the lines referencing it ?<br>
<br>
</div></div>Maybe replace the error with a warning. I tested with a base map with<br>
1.4 million categories (output of i.segment) and it works, but I<br>
needed to reduce the number of bins from 1000 to 100 to avoid OOM.<br>
With a low number of bins, the memory consumption of r.stats.quantile<br>
is much less than what r.univar requires, but a low number of bins can<br>
in some cases (histogram of the cell values with a peak) lead to<br>
higher memory consumption.<br>
<br>
r.univar does memory reallocation on demand which means that for a<br>
short time, double the amount of memory is needed. r.univar2 makes a<br>
guess about how much memory is required and then allocates all at<br>
once. Still, the binning approach of r.(stats.)quantile usually needs<br>
less memory.<br>
<br>
Markus M<br>
</blockquote></div></div></div>