você deve verificar Armazenar, manipular e analisar dados rasterizados no documento do banco de dados espacial PostgreSQL / PostGIS de Pierre Racine e Steve Cumming, apresentado na FOSS, aqui . Existem muitas funções definidas como estatísticas de varredura para resolver seu problema. Eu acho que ST_SummaryStats irá ajudá-lo sobre estática zonal, é claro, não é suficiente.
ST_SummaryStats(raster)
transformará um conjunto de registros (min, max, soma, média, stddev, count (de pixels com dados)).
O Postgis 2.0 suporta a análise estatística zonal com algumas consultas sql nas quais você trabalha. Eu me deparei com uma boa documentação na net sobre estatística zonal com esri vs postgis 2.0. você deve conferir algumas informações em Moving Spatial aqui . ambos receberam o mesmo resultado estatístico com algumas consultas difíceis.
consulta de exemplo que foi retirada do site de Anthony Lopez que eu mencionei 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;
Esri Zonal Resultado da estatística: População: 207,578 Contagem de células: 14,400
Resultado do Método Postgis: População: 207.578 Contagem de Células: 14.400.
Diferença percentual da população: 0%
Ainda não tentei, mas Anthony mencionou que havia algum problema de desempenho na análise raster com postgis.
espero que ajude você ...