AddRasterConstraints
Name
AddRasterConstraints — Adds raster constraints to a loaded raster table for a specific column that constrains spatial ref, scaling, blocksize, alignment, bands, band type and a flag to denote if raster column is regularly blocked. The table must be loaded with data for the constraints to be inferred. Returns true if the constraint setting was accomplished and issues a notice otherwise.
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
   Generates constraints on a raster column that are used to display information in the
   
    raster_columns
   
   raster catalog.
        The
   
    rastschema
   
   is the name of the table schema the table resides in. The
   
    srid
   
   must be an integer value reference to an entry in the SPATIAL_REF_SYS
        table.
  
   
    raster2pgsql
   
   loader uses this function to register raster tables
  
Valid constraint names to pass in: refer to Section 11.2.1, “Raster Columns Catalog” for more details.
- 
     
blocksizesets both X and Y blocksize - 
     
blocksize_xsets X tile (width in pixels of each tile) - 
     
blocksize_ysets Y tile (height in pixels of each tile) - 
     
extentcomputes extent of whole table and applys constraint all rasters must be within that extent - 
     
num_bandsnumber of bands - 
     
pixel_typesreads array of pixel types for each band ensure all band n have same pixel type - 
     
regular_blockingsets spatially unique (no two rasters can be spatially the same) and coverage tile (raster is aligned to a coverage) constraints - 
     
same_alignmentensures they all have same alignment meaning any two tiles you compare will return true for. Refer to ST_SameAlignment . - 
     
sridensures all have same srid - 
     
More -- any listed as inputs into the above functions
 
       
      | 
     |
| 
       This function infers the constraints from the data already present in the table. As such for it to work, you must create the raster column first and then load it with data.  | 
    
       
      | 
     |
| 
       If you need to load more data in your tables after you have already applied constraints, you may want to run the DropRasterConstraints if the extent of your data has changed.  | 
    
Availability: 2.0.0
Examples: Apply all possible constraints on column based on data
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}
        
 Examples: Apply single constraint
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