Name

AddRasterConstraints — Ajoute des contraintes raster à une table pour une colonne spécifique pour contraindre le système de référence spatial, l'échelle, la taille des blocs, l'alignement, le nombre de bandes, le type de pixels, la contrainte d'unicité spatiale. La table doit être chargée avec des données pour que les contraintes puissent être inférées. Retourne true si les contraintes ont été ajoutées, ou émet une notice sinon.

Synopsis

boolean AddRasterConstraints(name rasttable, name rastcolumn, boolean srid=true, boolean scale_x=true, boolean scale_y=true, boolean blocksize_x=true, boolean blocksize_y=true, boolean same_alignment=true, boolean regular_blocking=false, boolean num_bands=true , boolean pixel_types=true , boolean nodata_values=true , boolean out_db=true , boolean extent=true );

boolean AddRasterConstraints(name rasttable, name rastcolumn, text[] VARIADIC constraints);

boolean AddRasterConstraints(name rastschema, name rasttable, name rastcolumn, text[] VARIADIC constraints);

boolean AddRasterConstraints(name rastschema, name rasttable, name rastcolumn, boolean srid=true, boolean scale_x=true, boolean scale_y=true, boolean blocksize_x=true, boolean blocksize_y=true, boolean same_alignment=true, boolean regular_blocking=false, boolean num_bands=true, boolean pixel_types=true, boolean nodata_values=true , boolean out_db=true , boolean extent=true );

Description

Génère des contraintes pour une colonne raster, qui peuvent être utilisées pour afficher des informations depuis le catalogue raster raster_columns. rastschema est le nom du schéma de la table. srid doit être un entier défini dans la table SPATIAL_REF_SYS.

Le chargeur de rasters raster2pgsql utilise cette fonction pour enregistrer les tables raster

Noms de contraintes à passer en arguments : se référer à Section 10.2.1, “Catalogue des colonnes raster” pour plus de détails.

  • blocksize défini la largeur en X et en Y

  • blocksize_x défini la largeur (nombre de pixels) de chaque tuile raster

  • blocksize_y défini la hauteur (nombre de pixels vers le bas) de chaque tuile raster

  • extent calcule l'étendue de l'ensemble de la table et contraint tous les rasters à être inclus dans cette étendue

  • num_bands nombre de bandes

  • pixel_types tableau de types de pixels pour chaque bande - contraint chaque bande n au même type de pixels

  • regular_blocking défini les contraintes d'unité spatiale (deux rasters ne peuvent pas être spatialement identiques) et de couverture de tuiles (raster est aligné sur une couverture)

  • same_alignment garantie que toutes les tuiles ont le même alignement. Comparer n'importe quel couple de tuiles retournera true. Voir ST_SameAlignment pour plus de détails.

  • srid garantie que tous les rasters ont le même srid

  • Plus -- n'importe quelle contrainte listée parmi les arguments des fonctions décrites ci-dessus

[Note]

Cette fonction infère les contraintes depuis les données déjà présentes dans la table. Ainsi, vous devez d'abord créer la colonne raster et charger des données dedans avant de pouvoir utiliser cette fonction.

[Note]

Si vous avez besoin de charger plus de données dans la table après avoir défini les contraintes, vous pourrez avoir besoin d'exécuter la fonction DropRasterConstraints avant le chargement, en particulier si l'étendue des données est modifiée.

Disponibilité : 2.0.0

Exemples : Appliquer toutes les contraintes possibles à partir des données présentes

CREATE TABLE myrasters(rid SERIAL primary key, rast raster);
INSERT INTO myrasters(rast)
SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI'::text, -129, NULL);

SELECT AddRasterConstraints('myrasters'::name, 'rast'::name);


-- verify if registered correctly in the raster_columns view --
SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, pixel_types, nodata_values
    FROM raster_columns
    WHERE r_table_name = 'myrasters';

 srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | pixel_types| nodata_values
------+---------+---------+-------------+-------------+-----------+-------------+---------------
 4326 |       2 |       2 |        1000 |        1000 |         1 | {8BSI}      | {0}
        

Exemples : Appliquer une seule contrainte

CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster);
INSERT INTO myrasters2(rast)
SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI'::text, -129, NULL);

SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name,'regular_blocking', 'blocksize');
-- get notice--
NOTICE:  Adding regular blocking constraint
NOTICE:  Adding blocksize-X constraint
NOTICE:  Adding blocksize-Y constraint