debe consultar Almacenar, manipular y analizar datos ráster en el documento de base de datos espacial PostgreSQL / PostGIS de Pierre Racine y Steve Cumming que se presentó aquí en FOSS . Hay muchas funciones definidas como estadísticas ráster para resolver su problema. Creo que ST_SummaryStats lo ayudará con las estadísticas zonales, por supuesto, no lo suficiente.
ST_SummaryStats(raster)
le dará un conjunto de registros (min, max, sum, mean, stddev, count (of withdata pixels)).
Postgis 2.0 admite el análisis de estadísticas zonales con algunas consultas sql en las que tiene trabajo. Me encontré con una buena documentación en la red sobre estadísticas zonales con esri vs postgis 2.0. deberías consultar información en Moving Spatial aquí . A ambos se les dio el mismo resultado estadístico con algunas consultas difíciles.
ejemplo de consulta que fue tomada del sitio de Anthony Lopez que he mencionado antes ...
CREATE TABLE sum_pop2 AS
WITH
feat AS (SELECT gid, geom FROM perez_grid AS b ),
b_stats AS
(SELECT gid, (stats).*
FROM (
SELECT gid, ST_SummaryStats(ST_Clip(rast,1,geom)) AS stats
FROM ls_den
INNER JOIN feat
ON ST_Intersects(feat.geom,rast) ) AS foo )
SELECT gid, SUM(count) AS cell_count
,SUM(sum) AS population
FROM b_stats
WHERE count > 0
GROUP BY gid
ORDER BY gid;
Resultado de las estadísticas zonales de Esri: Población: 207,578 Conteo de células: 14,400
Resultado del Método Postgis: Población: 207,578 Conteo de células: 14,400.
Diferencia porcentual de población: 0%
Todavía no lo he probado, pero Anthony mencionó que había algún problema de rendimiento con el análisis de ráster con postgis.
Espero que te ayude...