<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div></div>
            <div>Hi Helmut and Stefan,</div><div><br></div><div>thanks for sharing that with me, it is good to know that there are similar <span><span style="color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px;">ongoing </span></span>approaches to solve related issues.</div><div><br></div><div>Helmut,</div><div>very nice addon. However, it seems to me that the part on calculating statistics is still based on v.rast.stats, am I right?</div><div><br></div><div>Stefan, the question you pose is indeed very related. I took a better look at my code and I noticed that what really takes time is not the process of making a mask, but what comes before: the rasterization of one of the polygons of the input vector.</div><div>What I do is:</div><div>1) g.region using the vector layer, aligning it to the first of the input rasters</div><div>2) v.to.rast selecting only one of the polygons at a time from the vector layer</div><div>3) r.mask using the rasterized polygon</div><div>4) g.region zoom=rasterized_polygon</div><div>5) calculate any function for all raster maps (in principle using a loop), using this small region and the mask, and attaching the results to the attribute table</div><div>6) repeat 1-5 for all polygons in the input vector</div><div><br></div><div>However, I noticed now that what takes time is v.rast.stats, since it depends on the whole region selected, which in my case is much bigger than a single polygon (the vector is a set of ~6,000 small polygons).</div><div>Do you guys know if there is a way of using a single polygon from a vector to define the region using something like g.region?</div><div>[this would be really great!!]</div><div>something like</div><div>g.region vector=vector_of_interest cat=1</div><div><br></div><div>Best,</div><div>Bernardo</div>
            
            <div id="yahoo_quoted_3745491540" class="yahoo_quoted">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div>
                        Em terça-feira, 10 de abril de 2018 06:01:34 BRT, Stefan Blumentrath <Stefan.Blumentrath@nina.no> escreveu:
                    </div>
                    <div><br></div>
                    <div><br></div>
                    <div><div dir="ltr">Hei Bernardo,<br clear="none"><br clear="none">Just for the record: I am currently working on something similar / related.<br clear="none"><br clear="none">First of all I would like to improve speed of v.rast.stats for multiple inputs:<br clear="none"><a shape="rect" href="https://www.mail-archive.com/grass-dev@lists.osgeo.org/msg52562.html " target="_blank">https://www.mail-archive.com/grass-dev@lists.osgeo.org/msg52562.html </a>and <br clear="none"><a shape="rect" href="https://trac.osgeo.org/grass/ticket/3523" target="_blank">https://trac.osgeo.org/grass/ticket/3523</a><br clear="none"><br clear="none">Adding a functionality to "tabulate areas" or "count categories" is a next step I have in mind which I am working on in v.rast.bufferstats (will be a port of v.what.rast.buffer [1] to GRASS 7 / pygrass (with some enhancements)). Once I have a good solution there I would like to see if it can be moved to v.rast.stats. Support for dbf driver is however a challenge...<br clear="none"><br clear="none">I will add my "work in progress" script to github, so you can have a look if you like.<br clear="none"><br clear="none">Cheers<br clear="none">Stefan<br clear="none"><br clear="none">1: <a shape="rect" href="https://grass.osgeo.org/grass64/manuals/addons/" target="_blank">https://grass.osgeo.org/grass64/manuals/addons/</a><br clear="none"><br clear="none">-----Original Message-----<br clear="none">From: grass-user <<a shape="rect" ymailto="mailto:grass-user-bounces@lists.osgeo.org" href="mailto:grass-user-bounces@lists.osgeo.org">grass-user-bounces@lists.osgeo.org</a>> On Behalf Of Helmut Kudrnovsky<br clear="none">Sent: mandag 9. april 2018 23.19<br clear="none">To: <a shape="rect" ymailto="mailto:grass-user@lists.osgeo.org" href="mailto:grass-user@lists.osgeo.org">grass-user@lists.osgeo.org</a><br clear="none">Subject: Re: [GRASS-user] zonal statistics/metrics - beyond simple statistics<br clear="none"><br clear="none">Bernardo Santos wrote<br clear="none">> Dear GRASS list,<br clear="none">> I am developing a Python script to be able to calculate (virtually <br clear="none">> any) metrics or statistics for zones/polygons in a vector - in analogy <br clear="none">> to zonal statistics (such as v.rast.stats).The idea is that one can <br clear="none">> calculate raster-based metrics (such as proportion of habitat, number <br clear="none">> of patches, or any metric that can be formalized as a function that <br clear="none">> takes some information from the input raster and returns a value) for <br clear="none">> each polygon in the vector, and this is updated as a value in a newly <br clear="none">> created column in the attribute table of this vector.<br clear="none">> Is there already anything like that (some addon/module) that I am <br clear="none">> missing, just to avoid re-doing something already created?<br clear="none">> If not, what I am doing is to create a loop over all the features in a <br clear="none">> vector, and for each one I zoom and use the polygon to define a mask <br clear="none">> (using r.mask), so that the calculation of the selected metric is <br clear="none">> performed only over that polygon, and this process is repeated.The <br clear="none">> script allows one to calculate metrics/statistics for multiple raster <br clear="none">> maps at once, and to incorporate other function for statistics also. <br clear="none">> It may be found here:<a shape="rect" href="https://github.com/LEEClab/GeneralizedZonalStats" target="_blank">https://github.com/LEEClab/GeneralizedZonalStats</a><br clear="none">> <br clear="none">> For small vectors this works nicely and I believe it has a great <br clear="none">> potential. However, when I try to calculate metrics for a large <br clear="none">> dataset (e.g. the Brazilian map of cities, with almost 6,000 polygons) <br clear="none">> - and that is when the tool would be interesting -, the process of <br clear="none">> creating each mask takes too long (387 steps), and the tool becomes kind of useless.<br clear="none">> Then I have two questions:- First, what drives the number of steps <br clear="none">> GRASS takes to create a mask? Why it is very small for some maps but <br clear="none">> very large for others? I quite don't understand that yet.- Do you <br clear="none">> think of a easier or faster way of doing the same thing (instead of using masks)?<br clear="none">> v.rast.stats seems to use r.univar and the option 'zones' for doing <br clear="none">> so, but then one gets restricted to the statistics calculated by this module.<br clear="none">> Any help or comment would be very welcome!<br clear="none">> Best,Bernardo Niebuhr<br clear="none">> _______________________________________________<br clear="none">> grass-user mailing list<br clear="none"><br clear="none">> <a shape="rect" ymailto="mailto:grass-user@.osgeo" href="mailto:grass-user@.osgeo">grass-user@.osgeo</a><br clear="none"><br clear="none">> <a shape="rect" href="https://lists.osgeo.org/mailman/listinfo/grass-user" target="_blank">https://lists.osgeo.org/mailman/listinfo/grass-user</a><br clear="none"><br clear="none">have look at<br clear="none"><br clear="none"><a shape="rect" href="https://grass.osgeo.org/grass74/manuals/addons/v.habitat.dem.html" target="_blank">https://grass.osgeo.org/grass74/manuals/addons/v.habitat.dem.html</a><br clear="none"><br clear="none">where I've coded some DEM derived stats and characteristics for polygones.<br clear="none"><br clear="none"><br clear="none"><br clear="none"><br clear="none">-----<br clear="none">best regards<br clear="none">Helmut<br clear="none">--<br clear="none">Sent from: <a shape="rect" href="http://osgeo-org.1560.x6.nabble.com/Grass-Users-f3884509.html" target="_blank">http://osgeo-org.1560.x6.nabble.com/Grass-Users-f3884509.html</a><br clear="none">_______________________________________________<br clear="none">grass-user mailing list<br clear="none"><a shape="rect" ymailto="mailto:grass-user@lists.osgeo.org" href="mailto:grass-user@lists.osgeo.org">grass-user@lists.osgeo.org</a><div class="yqt6245579123" id="yqtfd18594"><br clear="none"><a shape="rect" href="https://lists.osgeo.org/mailman/listinfo/grass-user" target="_blank">https://lists.osgeo.org/mailman/listinfo/grass-user</a><br clear="none">_______________________________________________<br clear="none">grass-user mailing list<br clear="none"><a shape="rect" ymailto="mailto:grass-user@lists.osgeo.org" href="mailto:grass-user@lists.osgeo.org">grass-user@lists.osgeo.org</a><br clear="none"><a shape="rect" href="https://lists.osgeo.org/mailman/listinfo/grass-user" target="_blank">https://lists.osgeo.org/mailman/listinfo/grass-user</a></div></div></div>
                </div>
            </div></div></body></html>