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));
5/25/2014