<div dir="ltr">thank you all for your suggestions.<div>Dear Nikos, I have some 0-1 rasters that represents presence-absence of different land covers. Each raster's resolution is 10x10m, thus i want to compute the sum in order to obtain the surface covered by each land cover within my buffers. As regards to the buffer, i want to use the 0-100, 0-200, 0-300, 0-400 and 0-500 for computing stats. I can do it separately with the module v.rast.stats. I just don't know how to loop it in a python script</div><div>Dear Stefan, thank you, i guess that using multiple rasters as input would be a good solution. however i would really like to loop it using a python script since that would be useful in other situation that i'm going to face in the next days</div><div>Dear Micha thank you, i'll try ASAP!</div></div><br><div class="gmail_quote"><div dir="ltr">Il giorno lun 29 ott 2018 alle ore 21:07 Micha Silver <<a href="mailto:tsvibar@gmail.com">tsvibar@gmail.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
    
  
  <div style="direction:ltr" bgcolor="#FFFFFF" text="#000000">
    <p>Some further python specific tips that might help.</p>
    <p><br>
    </p>
    <p>To get a list of rasters that match some pattern (say you have
      many rasters like "band1", "band2",...), then run v.rast.stats on
      each of them in a loop to get zonal stats in the vector "buffers":<br>
    </p>
    <p><br>
    </p>
    <p><font size="+1"><tt># This must be run from within a grass
          session</tt><tt><br>
        </tt></font></p>
    <p><font size="+1"><tt>import grass.script as gscript</tt></font></p>
    <p><font size="+1"><tt>rast_list = gscript.read_command("g.list",
          type = "rast", pattern = "band*").strip().split("\n")</tt></font></p>
    <p><font size="+1"><tt># Loop thru the rasters, run v.rast.stats,
          and specify the column prefix using the raster name.</tt></font></p>
    <p><font size="+1"><tt>methods = ("minimum", "maximum", "average",
          "sum")  # add whatever stats you need</tt><tt><br>
        </tt></font></p>
    <p><font size="+1"><tt>for r in rast_list:</tt><tt><br>
        </tt></font></p>
    <p><font size="+1"><tt>    gscript.run_command("v.rast.stats", </tt></font></p>
    <p><font size="+1"><tt>        map_ = "buffers", raster=r,
          column_prefix=r,  method=methods)</tt></font></p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p>Be aware that if you have many rasters, you'll end up with
      many,many columns in the "buffers" vector<br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <div class="m_-3552665679187335822moz-cite-prefix">On 10/29/18 9:54 PM, Stefan Blumentrath
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      
      
      <div class="m_-3552665679187335822WordSection1">
        <p class="MsoNormal"><span>Hi
            Alessandro,<u></u><u></u></span></p>
        <p class="MsoNormal"><span><u></u> <u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">You could try v.rast.bufferstats [1], if you do
            not have hundrets of thousands of points….<u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">If the buffers don`t overlap, you could use
            v.rast.stats [2] from the upcoming GRASS 7.6 release, that
            will allow multiple raster input…<u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">Otherwise have a look at the general
            introduction to GRASS and Python [3].<u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">Cheers<u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">Stefan<u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">1: <a href="https://grass.osgeo.org/grass74/manuals/addons/v.rast.bufferstats.html" target="_blank">
https://grass.osgeo.org/grass74/manuals/addons/v.rast.bufferstats.html</a><u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">2: <a href="https://grass.osgeo.org/grass76/manuals/v.rast.stats.html" target="_blank">
              https://grass.osgeo.org/grass76/manuals/v.rast.stats.html</a><u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB">3: <a href="https://grasswiki.osgeo.org/wiki/GRASS_and_Python" target="_blank">
              https://grasswiki.osgeo.org/wiki/GRASS_and_Python</a><u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
        <p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> grass-user
            <a class="m_-3552665679187335822moz-txt-link-rfc2396E" href="mailto:grass-user-bounces@lists.osgeo.org" target="_blank"><grass-user-bounces@lists.osgeo.org></a>
            <b>On Behalf Of </b>Alessandro Sebastiani<br>
            <b>Sent:</b> mandag 29. oktober 2018 16:06<br>
            <b>To:</b> <a class="m_-3552665679187335822moz-txt-link-abbreviated" href="mailto:grass-user@lists.osgeo.org" target="_blank">grass-user@lists.osgeo.org</a><br>
            <b>Subject:</b> [GRASS-user] zonal statistics for multiple
            areas<u></u><u></u></span></p>
        <p class="MsoNormal"><span lang="EN-GB"><u></u> <u></u></span></p>
        <div>
          <p class="MsoNormal">Hello to everybody,<u></u><u></u></p>
          <div>
            <p class="MsoNormal">I hope my question is appropriate for
              this mail list. I have created 5 different buffer layers
              (d=100,200,300,400,500 m) from a point vector. Now i want
              to compute some zonal statistics using different rasters
              as input. I know how to do that separately, but i was
              wondering how could i automate this procedure using a
              python script. I know python's basics, but i was not able
              to do so following guidelines that i found on the
              internet, e.g GRASS tutorial. Thank you in advance, A<u></u><u></u></p>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="m_-3552665679187335822mimeAttachmentHeader"></fieldset>
      <pre class="m_-3552665679187335822moz-quote-pre">_______________________________________________
grass-user mailing list
<a class="m_-3552665679187335822moz-txt-link-abbreviated" href="mailto:grass-user@lists.osgeo.org" target="_blank">grass-user@lists.osgeo.org</a>
<a class="m_-3552665679187335822moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/grass-user" target="_blank">https://lists.osgeo.org/mailman/listinfo/grass-user</a></pre>
    </blockquote>
    <pre class="m_-3552665679187335822moz-signature" cols="72">-- 
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918</pre>
  </div>

</blockquote></div>