Définit la valeur d'un pixel d'un objet raster à un emplacement donné, identifié soit par ses indices de ligne et de colonne, soit par une géométrie.
Syntaxe
Surcharge 1 : définition par ligne et colonne
raster ST_SetValue(raster raster_obj,
integer row,
integer column,
double value,
integer band);
Surcharge 2 : définition par géométrie
raster ST_SetValue(raster raster_obj,
geometry geom,
double value,
integer band default 0,
boolean rebuild_pyd default true,
cstring setvalueOptions default '');
Paramètres
| Paramètre | Type | Description |
|---|---|---|
raster_obj |
raster | Objet raster à mettre à jour. |
row |
integer | Indice de ligne du pixel à mettre à jour. |
column |
integer | Indice de colonne du pixel à mettre à jour. |
value |
double | Nouvelle valeur du pixel. |
band |
integer | Indice de bande du pixel à mettre à jour. |
geom |
geometry | Géométrie définissant la zone de mise à jour des pixels. |
rebuild_pyd |
boolean | Indique si la pyramide doit être reconstruite après la mise à jour des valeurs de pixel. |
setvalueOptions |
cstring | Options supplémentaires pour l'opération de mise à jour, transmises sous forme de chaîne JSON. Voir le tableau ci-dessous pour les champs pris en charge. |
Champs setvalueOptions
| Champ | Type | Par défaut | Description |
|---|---|---|---|
window_clip |
bool | false | Indique s'il faut utiliser la boîte englobante de l'objet géométrique comme zone de mise à jour. true utilise le rectangle englobant minimal (MBR) de l'objet géométrique. false utilise l'objet géométrique lui-même. |
rast_coord |
bool | false | Indique si la géométrie d'entrée utilise des coordonnées de pixels. true signifie que les coordonnées de pixels sont utilisées : la coordonnée x correspond à l'indice de colonne et la coordonnée y à l'indice de ligne, tous deux commençant à 0. false signifie que les coordonnées de pixels ne sont pas utilisées. |
Exemples
Lisez la valeur du pixel à la ligne 0, colonne 2, bande 1 :
SELECT ST_Value(rast, 0, 2, 1) FROM raster_table ORDER BY id;
Définissez la valeur des pixels sur 250.0 aux emplacements définis par une géométrie MULTIPOINT sur la bande 0, avec reconstruction de la pyramide activée :
UPDATE raster_table
SET rast = ST_SetValue(rast, ST_GeomFromText('MULTIPOINT(0 0, 2 2, 10 10)', 4326), 250.0, 0, true);
Définissez la valeur des pixels sur 10.0 le long d'une LINESTRING en utilisant les coordonnées de pixels (rast_coord: true), sans reconstruire la pyramide :
UPDATE raster_table
SET rast = ST_SetValue(rast, ST_GeomFromText('LINESTRING(211 77, 233 100)', 4326), 10.0, 0, false, '{"rast_coord":true}');