<div dir="ltr"><div>Hi again all,<br></div><div><br></div><div>Sorry for the multiple messages on this - realizing the query I posted was somewhat off from what I intended - below are examples that are getting at what I'm going for but exhibiting the issue I described (sometimes including pixels in counts aren't actually be within polygons [i.e., the categorical value isn't actually within the polygon based on visual inspection & this same analysis with other tools]).</div><div><br></div><div>Simpler/quicker:</div><div><br></div><div>  SELECT  bbl, (pvc).VALUE, SUM((pvc).COUNT) AS tot_pix<br> FROM base_rasters.landcover6in<br>  INNER join  results_scratch.polys_test<br>  ON ST_Intersects(landcover6in.rast, polys_test.geom_2263), <br>    ST_ValueCount(ST_Clip(landcover6in.rast,polys_test.geom_2263),1, TRUE, ARRAY[1, 2, 3, 4, 5, 6, 7]) AS pvc<br>  GROUP BY (pvc).VALUE, bbl<br> ORDER BY bbl, (pvc).VALUE;<br> </div><div><br></div><div><br></div><div>A longer, less efficient version that gives the same results (but unions the clipped raster tiles):</div><div><br></div><div><br></div><div> SELECT<br>   bbl, (value_count).value, SUM((value_count).count) AS count<br>  FROM<br>    (<br>    select<br>    bbl,<br>      rid,<br>      ST_ValueCount(<br>        ST_Union(ST_Clip(rast, geom_2263, TRUE)), 1, TRUE, ARRAY[1, 2, 3, 4, 5, 6, 7]<br>      ) value_count<br>    FROM<br>      (SELECT bbl, geom_2263 FROM results_scratch.polys_test) v,<br>      (SELECT rid, rast FROM base_rasters.landcover6in) r<br>    WHERE ST_Intersects(rast, geom_2263)<br>    GROUP BY bbl, rid, geom_2263<br>    ) i<br>  GROUP BY bbl, value<br>  ORDER BY bbl, value<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 21, 2018 at 4:23 PM, Michael Treglia <span dir="ltr"><<a href="mailto:mtreglia@gmail.com" target="_blank">mtreglia@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi all,</div><div><br></div><div>I'm basically trying to compute # of pixels of land cover type by polygon, for lots of polygons. <br></div><div><br></div><div>I'm working with a query a query like this:<br></div><div></div><div>SELECT  bbl, (pvc).VALUE, SUM((pvc).COUNT) AS tot_pix<br> FROM base_rasters.landcover6in<br>  INNER join  results_scratch.polys_test<br>  ON ST_Intersects(landcover6in.<wbr>rast, polys_test.geom_2263), <br>    ST_ValueCount(ST_Clip(<wbr>landcover6in.rast,polys_test.<wbr>geom_2263),1) AS pvc<br>  GROUP BY (pvc).VALUE, bbl<br> ORDER BY (pvc).VALUE;</div><div><br></div><div>For smaller polygons, spot-checking, it looks like I'm generally getting the right results. However, for larger polygons, not always. For example, though a polygon might not have roads, I'm getting non-0 counts for road pixels within a polygon (polygons have unique identifiers as 'bbl').  The total area of pixels counted ends up being larger than the polygon (larger than would be attributable to differences between polygons edges & pixels)<br></div><div><br></div><div>I'm thinking it's an issue when there are multiple raster tiles included... but not entirely sure. Any suggestions on whether there's something off in this query that might be causing an issue like I describe?</div><div><br></div><div>Thanks in advance for any suggestions!</div><div>Mike<br></div></div>
</blockquote></div><br></div>