Crée un objet raster à partir d'un fichier stocké dans Alibaba Cloud Object Storage Service (OSS), un bucket MinIO (Multi-Cloud Object Storage) ou un chemin Hadoop Distributed File System (HDFS). Génère également un objet raster à partir des données contenues dans un tableau unidimensionnel.
Syntaxe
-- Variant 1: Create from a storage path
raster ST_CreateRast(cstring url);
-- Variant 2: Create from a storage path with chunk and interleaving options
raster ST_CreateRast(cstring url, cstring storageOption);
-- Variant 3: Create from a storage path with chunk, interleaving, and import options
raster ST_CreateRast(cstring url, cstring storageOption, cstring createOption);
-- Variant 4: Generate from a one-dimensional array
raster ST_CreateRast(anyarray data, integer width, cstring storageOption, geometry extent);
Paramètres
Variantes 1, 2 et 3 : Création à partir d'un chemin de stockage
| Paramètre | Type | Description |
|---|---|---|
url |
cstring | Chemin du fichier source. Prend en charge les chemins OSS, MinIO et HDFS. Pour plus de détails sur le format des chemins, consultez la rubrique Chemins de stockage d'objets. |
storageOption |
cstring | (Variantes 2 et 3) Chaîne JSON qui contrôle le stockage des chunks et l'entrelacement dans la pyramide raster. Consultez les champs storageOption. |
createOption |
cstring | (Uniquement variante 3) Chaîne JSON qui contrôle le calcul des statistiques de bande lors de l'importation. Consultez les champs createOption. |
Variante 4 : Génération à partir d'un tableau unidimensionnel
| Paramètre | Type | Description |
|---|---|---|
data |
anyarray | Données raster sous forme de tableau unidimensionnel. Le nombre d'éléments doit être égal au produit du nombre de colonnes par le nombre de lignes. |
width |
integer | Nombre de colonnes des données raster. |
storageOption |
cstring | Chaîne JSON spécifiant les options de stockage des chunks. Le champ chunk_table est obligatoire pour cette variante. Consultez les champs storageOption. |
extent |
geometry | (Facultatif) Étendue spatiale 3D du raster, représentée sous forme de géométrie. |
Champs storageOption
| Champ | Type | Valeur par défaut | Description |
|---|---|---|---|
chunkdim |
string | Identique à la taille de chunk d'origine | Dimensions de chaque chunk au format (width,height,bands), par exemple (256,256,3). |
interleaving |
string | bsq |
Type d'entrelacement de l'objet raster. Valeurs valides : bip (entrelacement par pixel, BIP), bil (entrelacement par ligne, BIL), bsq (séquentiel par bande, BSQ), auto (déterminé automatiquement). |
chunk_table |
string | Aucune | Nom de la table de chunks. Obligatoire lors de l'utilisation de la variante 4 pour générer un objet raster à partir d'un tableau. |
Ne modifiez les valeurs par défaut de chunkdim ou de interleaving que si nécessaire :
Pour afficher un raster en tant que composite RVB (rouge, vert, bleu) multibande lorsque l'entrelacement actuel est
bsq, remplacez-le parbip.Si l'image source contient des chunks de 1×n colonnes mais que vous avez besoin de chunks de 256×256, définissez
chunkdimsur(256,256,3).
Champs createOption
| Champ | Type | Valeur par défaut | Description |
|---|---|---|---|
compute_stats |
boolean | false |
Indique s'il faut calculer automatiquement les statistiques de bande lors de l'importation. |
approx |
boolean | false |
Indique s'il faut utiliser une méthode d'échantillonnage pour calculer les statistiques. Si la valeur est true, les résultats peuvent être approximatifs. |
factor |
integer | 4 |
Facteur d'échantillonnage. Une valeur de n signifie que chaque unité d'échantillonnage couvre n pixels. Ne prend effet que si approx est défini sur true. |
exclusive_nodata |
boolean | true |
Indique s'il faut exclure les valeurs nodata des calculs statistiques. |
Description
La fonction ST_RasterDrivers renvoie la liste des types de données pris en charge.
Format d'URL selon le type de stockage :
Chaque type de stockage utilise un schéma d'URL différent :
| Stockage | Format d'URL | Exemple |
|---|---|---|
| OSS | OSS://<ak>:<ak_secret>@<endpoint>/<bucket>/<path> |
OSS://mykey:mysecret@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif |
| MinIO | MIO://<ak>:<ak_secret>@<host>:<port>/<bucket>/<path> |
MIO://mykey:mysecret@10.0.0.1:443/mybucket/data/image.tif |
| HDFS | HDFS://<user_name>@<host>:<port>/<path> |
HDFS://myuser@10.0.0.1:8020/path/image.tif |
Pour les formats multi-ensembles de données tels que NetCDF et HDF5, ajoutez le nom de l'ensemble de données au chemin :
NetCDF :
image.nc:<dataset>HDF5 :
image.hdf5://<group>/<dataset>
Exemples
Créer un objet raster à partir d'un fichier OSS :
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');
Créer un objet raster à partir d'un fichier MinIO :
SELECT ST_CreateRast('MIO://<ak>:<ak_secret>@10.0.0.1:443/mybucket/data/image.tif');
Créer un objet raster à partir d'un fichier HDFS :
SELECT ST_CreateRast('HDFS://<user_name>@10.0.0.1:8020/path/image.tif');
Définir les dimensions des chunks et l'entrelacement :
SELECT ST_CreateRast(
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif',
'{"chunkdim":"(256,256,3)","interleaving":"auto"}'
);
Calculer les statistiques de bande lors de l'importation :
SELECT ST_CreateRast(
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif',
'{"chunkdim":"(256,256,3)","interleaving":"auto"}',
'{"compute_stats":true}'
);
Créer un objet raster à partir d'un fichier NetCDF avec un ensemble de données nommé :
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
Créer un objet raster à partir d'un fichier HDF5 avec un ensemble de données nommé :
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/hcc');
Générer un objet raster à partir d'un tableau :
SELECT ST_FixedRid(
ST_CreateRast(
ARRAY[10, 11, 8, 12],
2,
'{"chunktable":"rbt"}',
ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326)
)
);
**Agréger plusieurs enregistrements dans un objet raster à l'aide de array_agg :**
SELECT ST_FixedRid(
ST_CreateRast(
(SELECT array_agg(value) FROM point_table),
300,
'{"chunktable":"rbt"}'
)
);
Voir aussi
ST_RasterDrivers — répertorie les formats raster pris en charge
Chemins de stockage d'objets — référence des formats d'URL pour OSS, MinIO et HDFS