ST_HMTAsArray convertit une tuile de carte de chaleur (HMT) en un tableau bidimensionnel float8, rendant les valeurs des pixels directement lisibles dans un jeu de résultats SQL.
Syntaxe
float8[][] ST_HMTAsArray(bytea hmt);
Paramètres
| Paramètre | Type | Description |
|---|---|---|
hmt |
bytea |
Tuile de carte de chaleur encodée en binaire au format protobuf. Généralement générée par ST_AsHMT. |
Valeur de retour
Renvoie un tableau bidimensionnel float8[][]. Chaque élément représente la valeur statistique du pixel correspondant dans la carte de chaleur.
Exemple
L'exemple suivant crée une table de test contenant 10 géométries ponctuelles, génère une tuile de carte de chaleur avec ST_AsHMT, puis convertit la tuile en tableau bidimensionnel avec ST_HMTAsArray.
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;
SELECT ST_HMTAsArray(ST_AsHMT(geom, --geometry type
ST_MakeEnvelope(0, 0, 10, 10, 4326), -- Extent
10, -- Width, in pixel
10 -- height
))
FROM test_table;
Sortie :
[0:9][0:9]={{1,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,0,0,0,0},{0,0,0,1,0,0,0,0,0,0},{0,0,0,0,1,0,0,0,0,0},{0,0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,0,1,0},{0,0,0,0,0,0,0,0,0,1}}
Le préfixe [0:9][0:9]= correspond à la notation PostgreSQL pour un tableau bidimensionnel avec des bornes d'indice explicites. Les deux dimensions s'étendent de l'indice 0 à 9, ce qui correspond à la grille de pixels de 10 × 10. La disposition diagonale des valeurs 1 reflète la répartition uniforme des 10 points d'entrée sur la grille.
Voir aussi
ST_AsHMT — génère le binaire de la tuile de carte de chaleur (
bytea) utilisé par cette fonction.