Sie sollten das Dokument zur Speicherung, Bearbeitung und Analyse von Rasterdaten in der PostgreSQL / PostGIS-Geodatenbank von Pierre Racine und Steve Cumming lesen, das hier auf der FOSS vorgestellt wurde . Es gibt viele Funktionen, die als Raster-Statistiken definiert sind, um Ihr Problem zu lösen. Ich denke, ST_SummaryStats wird Ihnen in Bezug auf die Zonenstatik natürlich nicht genug helfen.
ST_SummaryStats(raster)
Sie erhalten eine Reihe von Datensätzen (min, max, sum, mean, stddev, count (of withdata pixels)).
Postgis 2.0 unterstützt die Analyse von Zonenstatistiken mit einigen SQL-Abfragen, an denen Sie arbeiten. Ich habe eine gute Dokumentation im Netz über Zonale Statistik mit Esri vs Postgis 2.0 gefunden. Sie sollten bei Umzug Spatial einige Informationen überprüfen hier . Beide erhielten das gleiche Statistikergebnis mit einigen harten Abfragen.
Beispielabfrage, die von der Anthony Lopez-Website stammt, die ich bereits erwähnt habe ...
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 Statistik Ergebnis: Bevölkerung: 207.578 Zellzahl: 14.400
Ergebnis der Postgis-Methode: Bevölkerung: 207.578 Zellzahl: 14.400.
Bevölkerungsunterschied: 0%
Ich habe es noch nicht ausprobiert, aber Anthony erwähnte, dass es ein Performance-Problem bei der Rasteranalyse mit Postgis gab.
ich hoffe es hilft dir ...