Name

AddRasterConstraints — Lägger till rasterbegränsningar till en laddad rastertabell för en specifik kolumn som begränsar spatial ref, skalning, blockstorlek, inriktning, band, bandtyp och en flagga för att ange om rasterkolumnen blockeras regelbundet. Tabellen måste vara laddad med data för att begränsningarna ska kunna härledas. Returnerar true om begränsningsinställningen har utförts och utfärdar ett meddelande i annat fall.

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 );

Beskrivning

Skapar begränsningar för en rasterkolumn som används för att visa information i rasterkatalogen raster_columns. Rastschema är namnet på det tabellschema som tabellen finns i. Srid måste vara en heltalsreferens till en post i tabellen SPATIAL_REF_SYS.

raster2pgsql-laddaren använder denna funktion för att registrera rastertabeller

Giltiga namn på begränsningar som kan anges: se Section 10.2.1, “Rasterkolumner Katalog” för mer information.

  • blocksize ställer in både X- och Y-blocksize

  • blocksize_x ställer in X-tile (bredd i pixlar för varje tile)

  • blocksize_y anger Y-platta (höjd i pixlar för varje platta)

  • extent beräknar hela tabellens utsträckning och tillämpar begränsningen att alla raster måste ligga inom denna utsträckning

  • num_bands antal band

  • pixel_types läser matris med pixeltyper för varje band säkerställer att alla band n har samma pixeltyp

  • regular_blocking anger spatialt unika (inga två raster kan vara spatialt lika) och täckningsplatta (raster är anpassat till en täckning) begränsningar

  • same_alignment säkerställer att de alla har samma inriktning, vilket innebär att alla två brickor du jämför kommer att returnera sant för. Hänvisa till ST_SameAlignment.

  • srid säkerställer att alla har samma srid

  • Mer -- alla som anges som indata i ovanstående funktioner

[Note]

Denna funktion härleder begränsningarna från de data som redan finns i tabellen. För att den ska fungera måste du därför först skapa rasterkolumnen och sedan läsa in den med data.

[Note]

Om du behöver läsa in mer data i dina tabeller efter att du redan har tillämpat begränsningar kan du köra DropRasterConstraints om omfattningen av dina data har ändrats.

Tillgänglighet: 2.0.0

Exempel: Tillämpa alla möjliga begränsningar på kolumnen baserat på 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}
        

Exempel: Tillämpa en enda begränsning

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