AddRasterConstraints — Aggiunge vincoli raster a una tabella raster caricata per una colonna specifica che vincola il rif spaziale, la scala, la dimensione del blocco, l'allineamento, le bande, il tipo di banda e un flag per indicare se la colonna raster è regolarmente bloccata. La tabella deve essere caricata con i dati per poter dedurre i vincoli. Restituisce true se l'impostazione dei vincoli è stata eseguita, altrimenti emette un avviso.
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 )
;
Genera vincoli su una colonna raster che vengono utilizzati per visualizzare le informazioni nel catalogo raster raster_columns
. rastschema
è il nome dello schema della tabella in cui risiede la tabella. srid
deve essere un valore intero di riferimento a una voce della tabella SPATIAL_REF_SYS.
raster2pgsql
loader utilizza questa funzione per registrare le tabelle raster
Nomi di vincoli validi da inserire: fare riferimento a Section 10.2.1, “Catalogo delle colonne raster” per maggiori dettagli.
blocksize
imposta sia la dimensione del blocco X che Y
blocksize_x
imposta il riquadro X (larghezza in pixel di ogni riquadro)
blocksize_y
imposta il riquadro Y (altezza in pixel di ogni riquadro)
extent
calcola l'estensione dell'intera tabella e applica il vincolo che tutti i raster devono rientrare in tale estensione
num_bands
numero di bande
pixel_types
legge l'array di tipi di pixel per ogni banda, assicurando che tutte le bande n abbiano lo stesso tipo di pixel
regular_blocking
imposta i vincoli di unicità spaziale (non ci sono due raster uguali dal punto di vista spaziale) e di copertura (il raster è allineato a una copertura)
same_alignment
assicura che tutte le tessere abbiano lo stesso allineamento, il che significa che ogni due tessere confrontate restituiranno true. Fare riferimento a ST_SameAlignment.
srid
assicura che tutti abbiano lo stesso srid
Altro -- tutti quelli elencati come input delle funzioni precedenti
Questa funzione infonde i vincoli dai dati già presenti nella tabella. Per questo motivo, affinché funzioni, è necessario creare prima la colonna raster e poi caricarla con i dati. |
Se è necessario caricare altri dati nelle tabelle dopo aver applicato i vincoli, è possibile eseguire DropRasterConstraints se l'estensione dei dati è cambiata. |
Disponibilità: 2.0.0
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}
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