Renvoie les coordonnées géographiques et les valeurs de pixel de toutes les cellules d'un objet raster qui intersectent un objet géométrique. Les bandes sont numérotées à partir de 0. Par défaut, la fonction renvoie toutes les bandes. Les deux objets doivent partager le même identifiant de système de référence spatiale (SRID).
Syntaxe
set of record ST_Values(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '', /* All bands */
cstring clipOption default '',
out point cords,
out integer band,
out float8 value)
La fonction renvoie un ensemble d'enregistrements (set of record). Chaque ligne contient trois champs de sortie : cords (coordonnées géographiques), band (numéro de séquence de la bande) et value (valeur du pixel). Pour développer tous les champs de sortie dans une requête, utilisez la syntaxe .* :
SELECT (ST_Values(rast, geom)).*
FROM your_table;
Pour accéder à un champ spécifique, utilisez la notation par point :
SELECT (ST_Values(rast, geom)).cords,
(ST_Values(rast, geom)).value
FROM your_table;
Paramètres
Paramètres d'entrée
| Paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
raster_obj |
raster | — | L'objet raster à interroger. |
geom |
geometry | — | L'objet géométrique utilisé pour le découpage. Il doit avoir le même SRID que raster_obj. |
pyramidLevel |
integer | 0 |
Le niveau de pyramide de l'objet raster à utiliser. |
bands |
cstring | '' |
Les numéros de séquence des bandes à renvoyer, au format '0-2' ou '1,2,3'. Les numéros de bande commencent à 0. La chaîne vide par défaut '' renvoie toutes les bandes. |
clipOption |
cstring | '' |
Options de découpage sous forme de chaîne au format JSON. Consultez les paramètres clipOption. |
Champs de sortie
| Champ | Type | Description |
|---|---|---|
cords |
point | Les coordonnées géographiques du pixel. |
band |
integer | Le numéro de séquence de la bande du pixel. |
value |
float8 | La valeur du pixel. |
Paramètres clipOption
| Paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
window_clip |
Boolean | false |
Contrôle si le découpage s'effectue selon la boîte englobante de l'objet géométrique ou selon sa forme exacte. Définissez ce paramètre sur true pour découper selon le rectangle englobant minimal (MBR) de l'objet géométrique. Définissez-le sur false pour découper selon la forme exacte de l'objet géométrique. |
Quand utiliser window_clip :
Utilisez
window_clip: truelorsque vous souhaitez récupérer toutes les cellules situées dans l'enveloppe rectangulaire d'un objet géométrique, par exemple lors d'un découpage avec un point, afin de capturer la grille de pixels environnante plutôt que la seule intersection exacte.Utilisez
window_clip: false(valeur par défaut) lorsque vous avez besoin d'une intersection précise avec la forme réelle de l'objet géométrique, comme un découpage le long d'une linestring ou d'une limite de polygone.
Remarques d'utilisation
L'objet géométrique et l'objet raster doivent tous deux disposer d'un SRID valide, et leurs SRID doivent correspondre.
Par défaut, chaque appel renvoie jusqu'à 100 Mo de données. Pour ajuster cette limite, définissez le paramètre
ganos.raster.clip_max_buffer_size.
Exemples
Tous les exemples appellent ST_Values avec la syntaxe .* pour développer la sortie en colonnes individuelles.
Découpage avec un objet géométrique de type point
Le fait de définir window_clip sur true permet de récupérer la grille de pixels située dans le MBR du point, plutôt qu'une seule cellule d'intersection exacte.
SELECT (ST_Values(rast, ST_geomfromtext('POINT(128.135 29.774)', 4326)::geometry, 0,'{"window_clip":"true"}')).*
FROM rat_clip WHERE id=1;
coord | band | value
--------------+------+-------
(127.8,29.7) | 0 | 11
(127.8,29.7) | 1 | 10
(127.8,29.7) | 2 | 50
(3 rows)
Découpage avec un objet géométrique de type linestring
Cet exemple découpe le raster en utilisant la forme exacte d'une linestring, en renvoyant jusqu'à 10 lignes pour toutes les bandes.
SELECT (ST_Values(rast, ST_geomfromtext('LINESTRING(0 0, 45 45, 90 0, 135 45)', 4326)::geometry, 0)).*
FROM rat_clip WHERE id=1 LIMIT 10;
coord | band | value
-------------+------+-------
(44.1,45) | 0 | 115
(44.1,45) | 1 | 112
(44.1,45) | 2 | 69
(45,45) | 0 | 122
(45,45) | 1 | 117
(45,45) | 2 | 75
(134.1,45) | 0 | 37
(134.1,45) | 1 | 64
(134.1,45) | 2 | 13
(43.2,44.1) | 0 | 66
(10 rows)
Étapes suivantes
ST_Value — Renvoie la valeur d'une seule cellule à un point ou à des coordonnées de pixel spécifiés.
ST_ClipByMask — Découpe un objet raster à l'aide d'un masque géométrique et renvoie le raster découpé.
ST_Clip — Découpe un objet raster par un objet géométrique et renvoie le raster découpé.
ST_Intersects — Teste si un objet raster et un objet géométrique s'intersectent.