ST_PixelData.setValue
定義
ST_PixelData.setValue 関数は、ST_PixelData オブジェクト内にピクセルの位置と新しい値を指定して、単一ピクセルの値を変更します。位置は、ピクセル座標と地理座標のどちらかで指定できます。
指定した位置がラスタ ピクセルのディメンションまたは地理範囲の外にある場合、関数は常にエラーを返します。値が NULL の場合、ST_PixelData.setValue はピクセルを NoData に設定します。
構文
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)
戻り値
なし
パラメータ
パラメータ | 説明 |
---|---|
data | 変更される ST_PixelData オブジェクト |
band | ピクセルの(1 から始まる)バンド数 |
x | X ピクセル座標 |
y | Y ピクセル座標 |
point | ピクセルの地理座標 |
value | ピクセル値。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));
9/14/2013