ST_PixelData.setValue
Definition
Mit der ST_PixelData.setValue-Funktion wird der Wert eines einzelnen Pixels anhand der Position dieses Pixels im ST_PixelData-Objekt geändert. Die Position kann entweder in Pixelkoordinaten oder in geographischen Koordinaten angegeben werden.
Die Funktion gibt einen Fehler zurück, wenn sich die angegebene Position außerhalb der Raster-Pixeldimension oder geographischen Ausdehnung befindet. ST_PixelData.setValue legt für das Pixel "NoData" fest, wenn der Wert NULL ist.
Syntax
Oracle
setValue (band INTEGER,
x INTEGER,
y INTEGER,
value NUMBER)
setValue (band INTEGER,
point SE_COORD,
value NUMBER)
PostgreSQL
setValue (data IN ST_PixelData,
band IN INT,
x IN INT,
y IN INT,
value IN NUMBER)
setValue (data IN ST_PixelData,
band IN INT,
point IN SE_COORD,
value IN NUMBER)
SQL Server
setValue (band IN INTEGER,
x IN INTEGER,
y IN INTEGER,
value IN NUMBER)
setValueByLoc (band IN INTEGER,
x IN DOUBLE,
y IN DOUBLE,
value IN NUMBER)
Rückgaben
Keine
Parameter
Parameter | Beschreibung |
|---|---|
Daten | Gibt das zu ändernde ST_PixelData-Objekt an |
Band | Die Bandnummer des Pixels (beginnend bei 1) |
X | Die X-Koordinate des Pixels |
y | Die Y-Koordinate des Pixels |
Punkt | Die geographische Koordinate des Pixels |
Wert | Der Pixelwert; dieser muss sich im zulässigen Bereich befinden, der durch die Pixeltiefe des ST_PixelData-Typs festgelegt wird |
Beispiele
Mit dem folgenden Code wird der Wert eines einzelnen Pixels anhand der Position dieses Pixels im ST_PixelData-Objekt festgelegt.
Oracle
DECLARE p sde.ST_PixelData := sde.ST_PixelData(256, 256, 1, 'pixelType=uint8'); BEGIN p.setValue(1, 0, 0, 100); p.setValue(1, 0, 1, 101); p.setExtent(SE_EXTENT(0,0,20,20)); INSERT INTO FOO VALUES (p); END;
PostgreSQL
CREATE OR REPLACE FUNCTION set_pixel_value()
RETURNS integer AS '
DECLARE
p sde.ST_PIXELDATA := st_pixeldata(256, 256, 1, ''pixelType=uint8'');
BEGIN
setValue(p, 1, 0, 0, 100);
setValue(p, 1, 0, 1, 101);
setExtent(p, SDE.SE_EXTENT(0,0,20,20));
INSERT INTO foo VALUES (ST_RASTER(p));
END; '
LANGUAGE plpgsql;
SELECT set_pixel_data();
DROP FUNCTION IF EXISTS set_pixel_data();
SQL Server
DECLARE @p ST_Pixeldata; SET @p = ST_Pixeldata::construct(256, 256, 1, 'pixelType=uint8'); SELECT @p = @p.setValue(1, 0, 0, 100); SELECT @p = @p.setValue(1, 0, 1, 101); SELECT @p = @p.setExtent(0,0,20,20); INSERT INTO foo VALUES (ST_Raster::construct(NULL,@p,NULL));