Découpe un objet raster à l'aide d'une zone de délimitation ou d'une géométrie et renvoie le résultat sous forme de blob binaire. Par défaut, toutes les bandes sont découpées. Contrôlez le format de sortie et la compression via storageOption.
Syntaxe
bytea ST_Clip(raster raster_obj, integer pyramidLevel, box extent, BoxType boxType);
bytea ST_Clip(raster raster_obj, integer pyramidLevel, box extent, BoxType boxType, integer destSrid);
record ST_Clip(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '',
float8[] nodata default NULL,
cstring clipOption default '',
cstring storageOption default '',
out box outwindow,
out bytea rasterblob)
Paramètres
| Paramètre | Description |
|---|---|
raster_obj |
Objet raster à découper. |
pyramidLevel |
Niveau de pyramide de l'objet raster. |
extent |
Zone de délimitation utilisée pour le découpage. Format : '((minX,minY),(maxX,maxY))'. |
boxType |
Système de coordonnées de la zone de délimitation. Valeurs valides : Raster (coordonnées en pixels) et World (coordonnées mondiales). |
destSrid |
Identifiant du système de référence spatiale (SRID) du sous-ensemble de cellules en sortie. |
geom |
Objet géométrique utilisé pour le découpage. |
bands |
Bandes à découper, spécifiées sous forme de plage ('0-2') ou de liste séparée par des virgules ('1,2,3'). La numérotation des bandes commence à 0. Valeur par défaut : '' (toutes les bandes). |
nodata |
Tableau de valeurs de remplissage NoData (type float8[]) pour les zones situées en dehors de la région découpée. Si le nombre de valeurs fournies est inférieur au nombre de bandes, la valeur NoData prédéfinie de chaque bande restante est utilisée. Si une bande ne possède aucune valeur NoData prédéfinie, la valeur 0 est appliquée. |
clipOption |
Chaîne JSON contrôlant le comportement de découpage. Consultez les champs clipOption. |
storageOption |
Chaîne JSON contrôlant le format de sortie. Consultez les champs storageOption. |
outwindow |
(OUT) Zone de délimitation de l'objet raster renvoyé. |
rasterblob |
(OUT) Matrice de pixels binaire. |
Champs clipOption
| Champ | Type | Valeur par défaut | Description |
|---|---|---|---|
window_clip |
bool | false |
Contrôle la région de découpage. true : découpe selon le rectangle englobant minimal (MBR) de la géométrie. false : découpe selon la forme exacte de la géométrie. |
rast_coord |
bool | false |
Interprète les coordonnées géométriques comme des coordonnées raster (numéros de colonne et de ligne, tous deux commençant à 0) plutôt que comme des coordonnées mondiales. |
Champs storageOption
| Champ | Type | Valeur par défaut | Description |
|---|---|---|---|
compression |
string | lz4 |
Algorithme de compression. Valeurs valides : none, jpeg, zlib, png, lzo, lz4. |
quality |
integer | 75 |
Qualité de compression JPEG. S'applique uniquement lorsque compression est défini sur jpeg. |
interleaving |
string | Identique à la source | Format d'entrelacement. Valeurs valides : bip (bandes entrelacées par pixel) et bsq (bandes séquentielles). |
endian |
string | Identique à la source | Ordre des octets. Valeurs valides : NDR (little endian) et XDR (big endian). |
Notes d'utilisation
Limite de taille de sortie : Le cache de découpage par défaut est de 100 Mo. Pour ajuster cette limite, définissez ganos.raster.clip_max_buffer_size.
Comportement de secours NoData : Le tableau nodata est associé aux bandes dans l'ordre. Si le tableau est plus court que le nombre de bandes découpées, Ganos utilise la valeur NoData prédéfinie de chaque bande pour les bandes restantes. Si une bande ne possède aucune valeur NoData prédéfinie, la valeur 0 est utilisée.
Région de découpage contre zone de délimitation : Par défaut (window_clip: false), le raster est découpé selon la forme exacte de la géométrie. Définissez window_clip: true pour découper selon le MBR de la géométrie, ce qui produit un résultat rectangulaire.
Exemples
Découpage par zone de délimitation utilisant des coordonnées mondiales
SELECT ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World')
FROM clip_table;
Découpage par zone de délimitation et reprojection de la sortie
Spécifiez destSrid pour définir le système de référence spatiale de la sortie.
SELECT ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World', 4326)
FROM clip_table;
Découpage par géométrie avec les paramètres par défaut
Toutes les bandes sont découpées selon la forme exacte du polygone. Le résultat inclut à la fois la fenêtre de sortie et la matrice de pixels binaire.
SELECT (ST_Clip(rast, ST_GeomFromText('POLYGON((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0)).*
FROM clip_table
WHERE id = 1;
Découpage par géométrie avec un arrière-plan blanc et une sortie PNG
Définissez nodata sur ARRAY[254, 254, 254] pour remplir les zones découpées en blanc. Utilisez storageOption pour compresser la sortie au format PNG avec un entrelacement BIP.
SELECT (ST_Clip(
rast,
ST_GeomFromText('POLYGON((0 0, 45 45, 90 45, 45 0, 0 0))', 4326),
0,
'',
ARRAY[254, 254, 254],
'',
'{"compression":"png","interleaving":"bip"}'
)).*
FROM clip_table
WHERE id = 1;
Découpage utilisant la zone de délimitation d'une géométrie (découpage par fenêtre)
Définir window_clip sur true permet de découper selon le MBR du polygone plutôt que selon sa forme elle-même, produisant ainsi une sortie rectangulaire.
SELECT (ST_Clip(
rast,
ST_GeomFromText('POLYGON((0 0, 45 45, 90 45, 45 0, 0 0))', 4326),
0,
'',
NULL,
'{"window_clip":true}',
''
)).*
FROM clip_table
WHERE id = 1;