Obtém as estatísticas de uma banda de um objeto raster.
Sintaxe
-
Sintaxe 1:
TEXT ST_Statistics(raster raster_obj, integer band); -
Sintaxe 2:
SETOF RECORD ST_Statistics(raster raster_object, geometry geom, integer band default 0, cstring statics_range default '', boolean rast_coord default true, out cstring name, out integer band, out float8 min, out float8 max, out float8 mean, out float8 sum, out float8 count, out float8 std, out float8 median, out float8 mode);
Parâmetros
|
Parâmetro |
Descrição |
|
raster_obj |
Objeto raster. |
|
band |
Número da banda, começando em 0. |
|
geom |
Objeto de geometria. Se a geometria tiver valores M, eles representarão as informações de peso correspondentes. |
|
stats_range |
Descreve os intervalos estatísticos, que representam as faixas de valores originais dos pixels. Um intervalo pode conter um ou mais valores numéricos separados por vírgula (,). Os limites inicial e final do intervalo aceitam relações de intervalo aberto e fechado. Exemplos:
Valor padrão:
|
|
rast_coord |
Define se as coordenadas são coordenadas de pixel. |
|
name |
Nome do intervalo.
|
|
min |
Valor mínimo. |
|
max |
Valor máximo. |
|
mean |
Valor médio. |
|
sum |
Soma. |
|
count |
Contagem. |
|
std |
Desvio padrão. |
|
median |
Mediana. |
|
mode |
Moda. |
Descrição
Sintaxe 1: Retorna as estatísticas de uma banda do objeto raster no formato JSON. Se não houver estatísticas disponíveis, a função retornará um valor vazio.
Sintaxe 2: Calcula as estatísticas correspondentes com base em uma geometria. Se a geometria tiver valores M, eles representarão as informações de peso correspondentes.
Exemplo
SELECT ST_Statistics(raster_obj, 0) FROM raster_table WHERE id=1;
__________________________________
'{ "min" : 0.00, "max" : 255.00,"mean" : 125.00,"std" : 23.123,"approx" : false}'
-- No range
SELECT (ST_Statistics(raster_obj, 'MultiPoint((0 0 10), (100 100 50), (199 199 100))'::geometry, 0)).*
FROM raster_table WHERE id=1;
name | band | min | max | mean | sum | count | std | median | mode
--------------------------------------------------------------------------------------
full | 2 | 47 | 196 | 140.3125 | 22450 | 160 | 71.8955133770529 | 47 | 196
-- with range
SELECT (ST_Statistics(raster_obj, 'MultiPoint((0 0 10), (100 100 50), (199 199 100))'::geometry, 0, '(0, 10, 20,100,1000]')).*
FROM raster_table
WHERE id=1;
name | band | min | max | mean | sum | count | std | median | mode
--------------------------------------------------------------------------------------
full | 0 | 1 | 202 | 82 | 246 | 3 | 86.5678924313166 | 202 | 1
(0-10] | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1
(10-20] | 0 | | | | | | | |
(20-100] | 0 | 43 | 43 | 43 | 43 | 1 | 0 | 43 | 43
(100-1000] | 0 | 202 | 202 | 202 | 202 | 1 | 0 | 202 | 202
-- Polygon
SELECT id, (ST_Statistics(rast, ST_geomfromtext('POLYGON((50 50,55 50,55 55,50 55,50 50))'),1,'(0, 10, 20,100,1000]')).*
FROM raster_table WHERE id = 1;
id | name | band | min | max | mean | sum | count | std | median | mode
----+------------+------+-----+-----+------------------+------+-------+------------------+--------+------
3 | full | 0 | 48 | 103 | 78.1020408163265 | 3827 | 49 | 21.5815916437107 | 97 | 97
3 | (0-10] | 0 | | | | | | | |
3 | (10-20] | 0 | | | | | | | |
3 | (20-100] | 0 | 48 | 97 | 76.4782608695652 | 3518 | 46 | 21.2855729161028 | 97 | 97
3 | (100-1000] | 0 | 103 | 103 | 103 | 309 | 3 | 0 | 103 | 103
(5 rows)