ST_PixelData.setValue
Определение
Функция ST_PixelData.setValue изменяет значение отдельного пиксела, получив местоположение данного пиксела внутри объекта ST_PixelData, и его новое значение. Местоположение пиксела может быть выбрано или с помощью координат пиксела, или с помощью географических координат.
Функция возвращает ошибку в случае, если выбранное местоположение находится вне измерения пиксела растра или вне географического экстента. ST_PixelData.setValue устанавливает пиксел на NoData, если значение равно NULL.
Синтаксис
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)
Возвраты
Нет
Параметры
Параметр | Описание |
|---|---|
данные | Отмечает тот объект ST_PixelData, который будет изменен |
band | Номер канала пиксела (начиная с 1) |
x | Значение координаты x пиксела |
y | Значение координаты y пиксела |
точка | Географическая координата пиксела |
значение | Значение пиксела; должно попадать в диапазон допустимых значений, заданный глубиной пиксела с типом ST_PixelData |
Примеры
Следующая функция устанавливает значение отдельного пиксела, получив местоположение этого пиксела внутри объекта ST_PixelData.
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));