ви повинні перевірити магазин, обробку та аналіз растрових даних в просторових базах даних PostgreSQL / PostGIS документа П'єра Расін і Стів Каммінг , який був представлений на FOSS, тут . Існує безліч функцій, визначених як растрова статистика для вирішення вашої проблеми. Я думаю, що ST_SummaryStats допоможе тобі про зональну статику, звичайно, недостатньо.
ST_SummaryStats(raster)
перетворить вам набір записів (min, max, sum, mean, stddev, count (з даними пікселів)).
Postgis 2.0 підтримує зональний аналіз статистики з деякими запитами sql, над якими ви працюєте. я натрапив на гарну документацію в мережі про зону статистики з esri vs postgis 2.0. Ви можете ознайомитись із деякою інформацією на Moving Spatial тут . обом було надано однаковий результат статистики з деякими жорсткими запитами.
Приклад запиту, який було взято з сайту Ентоні Лопеса, про який я вже згадував ...
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;
Результат зональної статистики Есрі: Населення: 207 578 Кількість клітин: 14 400
Результат методу Постгіса: Населення: 207 578 Кількість клітин: 14 400.
Відсоткова різниця населення: 0%
Я ще не пробував цього, але Ентоні зазначив, що з растровим аналізом з постгітами була певна проблема.
я сподіваюся, що це допоможе тобі ...