PostGIS
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 9.2.1, “Raster Columns Catalog” for more details.
-
blocksize
sets both X and Y blocksize -
blocksize_x
sets X tile (width in pixels of each tile) -
blocksize_y
sets Y tile (height in pixels of each tile) -
extent
computes extent of whole table and applys constraint all rasters must be within that extent -
num_bands
number of bands -
pixel_types
reads array of pixel types for each band ensure all band n have same pixel type -
regular_blocking
sets spatially unique (no two rasters can be spatially the same) and coverage tile (raster is aligned to a coverage) constraints -
same_alignment
ensures they all have same alignment meaning any two tiles you compare will return true for. Refer to ST_SameAlignment. -
srid
ensures all have same srid -
More — any listed as inputs into the above functions
|
|
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
See Also
Section 9.2.1, “Raster Columns Catalog”, ST_AddBand, ST_MakeEmptyRaster, DropRasterConstraints, ST_BandPixelType, ST_SRID
unionarg |
DropRasterConstraints |