dovresti dare un'occhiata a Memorizza, manipola e analizza i dati raster all'interno del documento di database spaziale PostgreSQL / PostGIS di Pierre Racine e Steve Cumming che è stato presentato al FOSS, qui . Esistono molte funzioni definite come statistiche raster per risolvere il tuo problema. penso che ST_SummaryStats ti aiuterà a capire la statica zonale, ovviamente, non abbastanza.
ST_SummaryStats(raster)
ti trasformerà in un set di (min, max, sum, mean, stddev, count (of withdata pixels)) record.
Postgis 2.0 supporta l'analisi delle statistiche zonali con alcune query sql su cui hai lavorato. mi sono imbattuto in una buona documentazione in rete sulle statistiche zonali con esri vs postgis 2.0. dovresti controllare alcune informazioni su Moving Spatial qui . ad entrambi è stato dato lo stesso risultato statistico con alcune query difficili.
query di esempio che è stata presa dal sito di Anthony Lopez che ho menzionato prima ...
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;
Risultato delle statistiche zonali Esri: Popolazione: 207.578 Conteggio delle cellule: 14.400
Risultato del metodo Postgis: Popolazione: 207.578 Numero di cellule: 14.400.
Differenza percentuale della popolazione: 0%
non l'ho ancora provato, ma Anthony ha detto che c'era qualche problema di prestazioni con l'analisi raster con i postgis.
spero che ti aiuti ...