Tous les produits
Search
Centre de documentation

ApsaraDB RDS:ST_Resize

Dernière mise à jour :Sep 01, 2026

Redimensionne la plage de pixels d'un objet raster sans modifier son emprise géospatiale.

Syntaxe

raster ST_Resize(raster rast,
           integer outWidth,
           integer outHeight,
           cstring processExpr default '',
           cstring storageOption default '')

Paramètres

Paramètre Description
rast Objet raster à redimensionner.
outWidth Largeur de l'objet raster de sortie, en pixels.
outHeight Hauteur de l'objet raster de sortie, en pixels.
processExpr Chaîne JSON contrôlant le rééchantillonnage des pixels et la gestion des valeurs nodata.
storageOption Chaîne JSON définissant le mode de stockage de l'objet raster de sortie.

Champs processExpr

Chaque paire clé-valeur de la chaîne JSON processExpr correspond à un champ décrit ci-dessous.

Champ Type Valeur par défaut Description
resample text Near Méthode de rééchantillonnage. Valeurs valides : Near, Average, Cubic, Bilinear.
nodata Boolean false Indique s'il faut traiter les valeurs nodata de l'objet raster source comme valides. Si ce paramètre est défini sur true, les pixels contenant des valeurs nodata ne sont pas rééchantillonnés. S'il est défini sur false, ces pixels sont rééchantillonnés.
nodataValue float8 float8[] NULL

Valeur nodata à attribuer aux bandes de l'objet raster de sortie. Spécifiez une seule valeur pour l'appliquer à toutes les bandes, ou indiquez une valeur distincte par bande. Le nombre de valeurs doit correspondre au nombre de bandes.

Remarque

Définissez

nodata

sur

false

et omettez

nodataValue

si l'objet raster source ne contient aucun pixel avec des valeurs nodata. Dans le cas contraire, des artefacts visuels peuvent apparaître dans l'image.

Champs storageOption

Champ Type Valeur par défaut Description
chunking Boolean Identique à la source Indique si l'objet raster de sortie doit être stocké sous forme de blocs (chunks).
chunkdim String Identique à la source Dimensions des blocs. Ce paramètre n'est pris en compte que si chunking est défini sur true.
chunktable String '' (chaîne vide) Nom de la table de blocs. Si ce paramètre est défini sur NULL ou sur une chaîne vide, la sortie est stockée dans une table de blocs temporaire dotée d'un nom aléatoire, valable uniquement pour la session en cours. Pour rendre la sortie persistante, spécifiez un nom de table de blocs permanent.
compression String Identique à la source Format de compression. Valeurs valides : None, JPEG, Zlib, PNG, LZO, LZ4.
quality Integer Identique à la source Qualité de l'image JPEG. Ce paramètre n'est pris en compte que si compression est défini sur JPEG.
interleaving String Identique à la source Type d'entrelacement. Valeurs valides : bip (bande entrelacée par pixel, BIP), bil (bande entrelacée par ligne, BIL), bsq (séquentiel par bande, BSQ).
endian String Identique à la source Ordre des octets. Valeurs valides : NDR (little-endian), XDR (big-endian).
Remarque

Si

chunktable

est

NULL

ou une chaîne vide, la sortie est stockée dans une table de blocs temporaire qui sera supprimée à la fin de la session en cours. Spécifiez un nom de table de blocs pour enregistrer la sortie de manière permanente.

Exemples

CREATE TABLE IF NOT EXISTS datasource_table(id integer, rast raster);
INSERT INTO datasource_table VALUES(1, ST_ImportFrom('rbt','$(RAST_DATA_DIR)/512_512_1_bsq_8u_geo.tif', '{}'));

Méthode 1 : Spécifier une table de blocs permanente

Utilisez un paramètre chunktable nommé pour rendre l'objet raster de sortie persistant.

CREATE TABLE rat_resize_result(id integer, rast raster);

-- No nodata field specified
INSERT INTO rat_resize_result(id, rast)
SELECT 10, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

-- Single nodata value applied to all bands; nodata pixels are not resampled
INSERT INTO rat_resize_result(id, rast)
SELECT 11, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":true,"nodatavalue":255}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

-- Multiple nodata values, one per band
INSERT INTO rat_resize_result(id, rast)
SELECT 12, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false,"nodatavalue":[255,255,255]}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

Méthode 2 : Utiliser une table de blocs temporaire

Omettez le paramètre chunktable pour stocker la sortie dans une table temporaire limitée à la session. Le résultat reste disponible pour les calculs imbriqués au cours de la session en cours et est supprimé lorsque celle-ci se termine.

CREATE TEMP TABLE rat_resize_result_temp(id integer, rast raster);

INSERT INTO rat_resize_result_temp(id, rast)
SELECT 1, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false,"nodataValue":[255,255,255]}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq"}')
FROM datasource_table
WHERE id = 1;