<div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13px">Hi,</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Not sure it's the best way but I did something similar with these workarounds: </div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">A - with gdal:</div><div style="font-family:arial,sans-serif;font-size:13px">1 - the user click and you get your buffer. (already done)</div>
<div style="font-family:arial,sans-serif;font-size:13px">2 - use gdalwarp with "-cutline" and "<b style="font-size:12px;font-family:'Lucida Grande',Verdana,Geneva,Arial,sans-serif">-</b>crop_to_cutline" options to extract a new raster. (python subprocess)</div>
<div style="font-family:arial,sans-serif;font-size:13px">3 - read the created raster in a numpy array to do all the statistics you need. </div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
B - with matplotlib: </div><div style="font-family:arial,sans-serif;font-size:13px">1 - with the buffer: create an array of the vertices</div><div style="font-family:arial,sans-serif;font-size:13px">2 - read the raster into another numpy array</div>
<div style="font-family:arial,sans-serif;font-size:13px">3 - use the "points_inside_poly" function of "matplotlib" lib to create a numpy mask. </div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">Not tried but postgis raster should do the job.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
Hth,</div><div style="font-family:arial,sans-serif;font-size:13px">Fred</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 2, 2013 at 1:12 PM, Otto Dassau <span dir="ltr"><<a href="mailto:dassau@gbd-consult.de" target="_blank">dassau@gbd-consult.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
for a qgis 1.8 plugin I would like to query the mean of pixel values of a<br>
raster layer within a defined buffer for the current mouse position (not for<br>
an existing point layer).<br>
<br>
For the buffer it works:<br>
<br>
...<br>
feat.geometry().asPoint()<br>
(3.5176e+06,5.4062e+06)<br>
buff_geom = feat.geometry().buffer(1000, 5)<br>
buff_geom.asPolygon() [[(3.5186e+06,5.4062e+06), (3.51855e+06,5.4059e+06),<br>
(3.51841e+06,5.40562e+06), (3.51819e+06,5.4054e+06),<br>
(3.51791e+06,5.40525e+06), (3.5176e+06,5.4052e+06),<br>
(3.51729e+06,5.40525e+06), (3.51701e+06,5.4054e+06),...]]<br>
<br>
but now I try to find a solution to query the raster pixels within the<br>
buffer zone and calculate the mean, but I don't know how and if this is<br>
possible in QGIS 1.8 at all. I found QgsZonalStatistics, but that doesn't<br>
work for my task.<br>
<br>
Does anybody have a solution for this or a better idea, how to solve this?<br>
<br>
Thanks<br>
<br>
Otto<br>
_______________________________________________<br>
Qgis-developer mailing list<br>
<a href="mailto:Qgis-developer@lists.osgeo.org">Qgis-developer@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</blockquote></div><br></div>