<br><br><div class="gmail_quote">On Fri, May 25, 2012 at 1:46 PM, Johannes Radinger <span dir="ltr">&lt;<a href="mailto:JRadinger@gmx.at" target="_blank">JRadinger@gmx.at</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Madi,<br>
<br>
thank you, that&#39;s just what I thought of...<br>
anyway do you know does r.univar consider MASK if it is existing?<br></blockquote><div><br></div><div>Yes it does.</div><div><br></div><div>madi </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
/johannes<br>
<br>
-------- Original-Nachricht --------<br>
&gt; Datum: Fri, 25 May 2012 13:38:05 +0200<br>
&gt; Von: Margherita Di Leo &lt;<a href="mailto:diregola@gmail.com">diregola@gmail.com</a>&gt;<br>
&gt; An: Johannes Radinger &lt;<a href="mailto:JRadinger@gmx.at">JRadinger@gmx.at</a>&gt;<br>
&gt; CC: grass user list &lt;<a href="mailto:grass-user@lists.osgeo.org">grass-user@lists.osgeo.org</a>&gt;<br>
&gt; Betreff: Re: [GRASS-user] Getting statistical values (r.univar) via python<br>
<div class="HOEnZb"><div class="h5"><br>
&gt; Hi Johannes,<br>
&gt;<br>
&gt; On Fri, May 25, 2012 at 1:12 PM, Johannes Radinger &lt;<a href="mailto:JRadinger@gmx.at">JRadinger@gmx.at</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; I am trying to get statistical values for a raster map in a python<br>
&gt; script.<br>
&gt; &gt; What I am doing so far is using r.univar (e.g. for the nc-dataset):<br>
&gt; &gt;<br>
&gt; &gt; grass.read_command(&quot;r.univar&quot;, map =&quot;elevation&quot;)<br>
&gt; &gt;<br>
&gt; &gt; but how to get e.g the mean value as float? I thought of two<br>
&gt; &gt; options:<br>
&gt; &gt;<br>
&gt; &gt; 1) either indexing like<br>
&gt; &gt; float(grass.read_command(&quot;r.univar&quot;, map =&quot;elevation&quot;)[x:y])<br>
&gt; &gt;<br>
&gt; &gt; 2) or splitting the string into lines and then at the &quot;:&quot;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; You can use the following:<br>
&gt;<br>
&gt; import sys<br>
&gt; import os<br>
&gt; import grass.script as grass<br>
&gt;<br>
&gt; univar = grass.read_command(&#39;r.univar&#39;, map=&#39;elevation&#39;)<br>
&gt;<br>
&gt; print univar #so that you can see how the output looks like<br>
&gt;<br>
&gt; The output is:<br>
&gt; total null and non-null cells: 2025000<br>
&gt; total null cells: 0<br>
&gt;<br>
&gt; Of the non-null cells:<br>
&gt; ----------------------<br>
&gt; n: 2025000<br>
&gt; minimum: 55.5788<br>
&gt; maximum: 156.33<br>
&gt; range: 100.751<br>
&gt; mean: 110.375<br>
&gt; mean of absolute values: 110.375<br>
&gt; standard deviation: 20.3153<br>
&gt; variance: 412.712<br>
&gt; variation coefficient: 18.4057 %<br>
&gt; sum: 223510266.5581016541<br>
&gt;<br>
&gt; Now you want to split every line of the output with .split(&#39;\n&#39;), you are<br>
&gt; interested in the line [10], then you split against split(&#39;:&#39;) and take<br>
&gt; the<br>
&gt; argument [1].<br>
&gt;<br>
&gt; mean = float(univar.split(&#39;\n&#39;)[10].split(&#39;:&#39;)[1])<br>
&gt;<br>
&gt; Hope this helps,<br>
&gt;<br>
&gt; madi<br>
&gt; --<br>
&gt; Ing. Margherita Di Leo, Ph.D.<br>
<br>
</div></div><div class="HOEnZb"><div class="h5">--<br>
NEU: FreePhone 3-fach-Flat mit kostenlosem Smartphone!<br>
Jetzt informieren: <a href="http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a" target="_blank">http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Ing. Margherita Di Leo, Ph.D.<br>