Чи можлива зональна статистика в PostGIS2?


12

Тепер із postgis2, який підтримує растри за замовчуванням, чи можливо зробити зональний аналіз статистики?

Я його google, але я не знайшов нічого твердого? Чи є підручник, щоб розпочати мене?

Хтось може надати мені sql приклад того, як це зробити?

Редагувати:

Оновлений (спрощений) запит відповідно до блогу згадки про Арагон:

CREATE TABLE sum_pop3 AS 
 SELECT gid, SUM((ST_SummaryStats(ST_Clip(rast,1,geom))).sum)
 FROM perez_grid, ls_den
 WHERE ST_Intersects(geom,rast) 
GROUP BY gid;

Привіт @nickves, чи вдалось вам коли-небудь запустити статистику зони? Мені здається, що оновлений запит не працює.
Кліф

@CliffPatterson пам'ятаю, що я працював - минуло три роки з того часу, багато чого змінилося. Я пізніше випробую квери пізніше і підтверджую або оновлюю.
ніки

щось, мабуть, змінилося від останнього разу, коли я це використовував; на даний момент не вистачає часу, щоб побачити, де починається запит. якщо вам це вдасться виправити, будь ласка, оновіть
nickves

Ознайомтесь з моїм останнім запитанням з цього приводу.
Кліф

Відповіді:


6

ви повинні перевірити магазин, обробку та аналіз растрових даних в просторових базах даних 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%

Я ще не пробував цього, але Ентоні зазначив, що з растровим аналізом з постгітами була певна проблема.

я сподіваюся, що це допоможе тобі ...


Це хороша відправна точка!
прізвиська
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.