bạn nên kiểm tra Lưu trữ, thao tác và phân tích dữ liệu raster trong tài liệu cơ sở dữ liệu không gian PostgreSQL / PostGIS của Pierre Racine và Steve Cumming đã được trình bày tại FOSS, tại đây . Có rất nhiều chức năng được định nghĩa là thống kê raster để giải quyết vấn đề của bạn. Tôi nghĩ rằng ST_SummaryStats sẽ giúp bạn về thống kê khu vực, tất nhiên, không đủ.
ST_SummaryStats(raster)
sẽ biến cho bạn một tập hợp các bản ghi (min, max, sum, mean, stddev, Count (of withdata pixel)).
Postgis 2.0 hỗ trợ phân tích thống kê khu vực với một số truy vấn sql mà bạn đã làm việc trên đó. tôi đã tìm thấy một tài liệu tốt trên mạng về thống kê khu vực với esri vs postgis 2.0. bạn nên kiểm tra một số thông tin tại Move Spatial tại đây . cả hai đều được đưa ra cùng một kết quả thống kê với một số truy vấn khó.
ví dụ truy vấn được lấy từ trang Anthony Lopez mà tôi đã đề cập trước đó ...
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;
Kết quả thống kê của Esri Zonal: Dân số: 207.578 Số lượng tế bào: 14.400
Kết quả Phương pháp Postgis: Dân số: 207.578 Số lượng tế bào: 14.400.
Chênh lệch tỷ lệ phần trăm dân số: 0%
Tôi chưa thử nó nhưng Anthony đã đề cập rằng có một số vấn đề về hiệu suất với phân tích raster với postgis.
Tôi hy vọng nó sẽ giúp bạn...