Calcula estatísticas de um tile de heatmap para renderização de mapas.
Sintaxe
record ST_HMTStats(bytea hmt, integer factor default 1, out float8 min, out float8 max, out float8 mean, out float8 sum, out float8 count, out float8 std, out float8 median, out float8 mode, out float8[] percentile);
Parâmetros
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
hmt |
bytea |
— |
Binário do tile de heatmap codificado no formato protobuf. Gere esse valor com ST_AsHMT. |
|
factor |
integer |
1 |
Intervalo de amostragem. O valor |
Valores de retorno
Retorna um record com os seguintes campos de saída:
|
Campo |
Tipo |
Descrição |
|
min |
float8 |
Valor mínimo. |
|
max |
float8 |
Valor máximo. |
|
mean |
float8 |
Valor médio. |
|
sum |
float8 |
Soma de todos os valores amostrados. |
|
count |
float8 |
Quantidade de valores incluídos no cálculo. |
|
std |
float8 |
Desvio padrão. |
|
median |
float8 |
Mediana dos valores. |
|
mode |
float8 |
Moda (valor mais frequente). |
|
percentile |
float8[] |
Array com 100 valores de percentil. |
Exemplos
Os exemplos abaixo usam a mesma tabela de teste. Crie-a uma única vez e execute qualquer uma das consultas.
CREATE TABLE test_table AS
SELECT i num,
ST_setSRID(st_makepoint((i-0.5)::numeric, (i-0.5)::numeric), 4326) geom,
i*100::int4 weight,
i*i*i::float8 volume
FROM generate_series(1, 10) i;
Exemplo 1: Amostragem padrão (factor=1)
O cálculo inclui todos os 100 valores do tile.
SELECT (ST_HMTstats(ST_AsHMT(the_geom,
ST_MakeEnvelope(0, 0, 10, 10),
10,
10))).*
FROM test_table;
Saída esperada:
min | max | mean | sum | count | std | median | mode | percentile
-----+-----+------+-----+-------+--------------------+--------+------+------------------------------------------------
0 | 2 | 0.19 | 19 | 100 | 0.5778408085277467 | 0 | 0 | {0,0,...,0,0,1,2,2,2,2,2,2,2,2}
Exemplo 2: Amostragem esparsa (factor=4)
A amostragem ocorre a cada quatro valores, o que reduz a contagem para 25.
SELECT (ST_HMTstats(ST_AsHMT(the_geom,
ST_MakeEnvelope(0, 0, 10, 10),
10,
10), 4)).*
FROM test_table;
Saída esperada:
min | max | mean | sum | count | std | median | mode | percentile
-----+-----+------+-----+-------+--------------------+--------+------+------------------------------------------------
0 | 2 | 0.16 | 4 | 25 | 0.5425863986500215 | 0 | 0 | {0,0,...,0,0,2,2,2,2,2,2,2}