Name

AddRasterConstraints — Fügt die Raster-Constraints zu einer bestimmten Spalte einer bereits geladenen Rastertabelle hinzu. Diese Constraints beschränken das Koordinatentransformationssystem, den Maßstab, die Blockgröße, die Ausrichtung, die Bänder, den Bandtyp und eine Flag, die anzeigt ob die Rasterspalte regelmäßig geblockt ist. Es müssen bereits Daten in die Tabelle geladen sein, damit die Constraints abgeleitet werden können. Gibt TRUE zurück, wenn das Setzen der Constraints ausgeführt wurde; bei Problemen wird eine Meldung angezeigt.

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

Beschreibung

Setzt die Constraints auf eine Rasterspalte Diese werden verwendet um die Information in dem Rasterkatalog raster_columns anzuzeigeen. Der Parameter rastschema bezeichnet das Tabellenschema in dem die Tabelle liegt. Die Ganzzahl srid verweist auf einen Eintrag in der Tabelle "spatial_ref_sys".

Der raster2pgsql Lader verwendet diese Funktion um Rastertabellen zu registrieren.

Gültige Bezeichnungen für Constraints: siehe Section 10.2.1, “Rasterspalten Katalog” für weitere Details.

  • blocksize bestimmt die Datenblockgröße von X und Y

  • blocksize_x setzt die X-Kachel (die Breite der Kacheln in Pixel)

  • blocksize_y setzt die Y-Kachel (die Höhe der Kacheln in Pixel)

  • extent berechnet die räumliche Ausdehnung der ganzen Tabelle und setzt einen Constraint, der alle Raster auf diesen Ausschnitt beschränkt.

  • num_bands Anzahl der Bänder

  • pixel_types liest ein Feld mit Pixeltypen für jedes Band ein, und stellt sicher, dass alle Bänder denselben Pixeltyp haben

  • regular_blocking setzt die Constraints für die räumliche Eindeutigkeit (keine zwei Raster dürfen räumlich ident sein) und für die Coverage-Kachel (der Raster wird an einem Coverage ausgerichtet)

  • same_alignment stellt sicher, dass alle die selbe Ausrichtung haben, d.h. der Vergleich von zwei beliebigen Kacheln gibt TRUE zurück. Siehe ST_SameAlignment.

  • srid stellt sicher, dass alle die selbe SRID aufweisen

  • Mehr -- alles was als Eingabe in die obere Funktion aufgeführt ist

[Note]

Diese Funktion leitet die Constraints von den Daten ab, die bereits in der Tabelle vorliegen. Damit Sie die Funktion anwenden können, müssen Sie zuerst die Rasterspalte erzeugen in die Sie anschließend die Daten laden.

[Note]

Falls Sie weitere Daten in Ihre Tabellen laden müssen, nachdem Sie bereits die Constraints gesetzt haben, können Sie DropRasterConstraints ausführen, wenn sich die räumliche Ausdehnung Ihrer Daten geändert hat.

Verfügbarkeit: 2.0.0

Beispiele: Basierend auf den Daten sämtliche Connstraints auf die Spalte setzen

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}
        

Beispiele: Einen einzelnen Constraint setzen

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