指定された位置(行・列による指定、またはジオメトリ形状による指定)でラスターオブジェクトの画素値を設定します。
構文
オーバーロード 1:行と列で指定
raster ST_SetValue(raster raster_obj,
integer row,
integer column,
double value,
integer band);オーバーロード 2:ジオメトリで指定
raster ST_SetValue(raster raster_obj,
geometry geom,
double value,
integer band default 0,
boolean rebuild_pyd default true,
cstring setvalueOptions default '');パラメーター
| パラメーター | 型 | 説明 |
|---|---|---|
raster_obj | raster | 更新対象のラスターオブジェクトです。 |
row | integer | 更新対象の画素の行番号です。 |
column | integer | 更新対象の画素の列番号です。 |
value | double | 新しい画素値です。 |
band | integer | 更新対象の画素が属するバンド番号です。 |
geom | geometry | 画素値を更新する領域を定義するジオメトリです。 |
rebuild_pyd | boolean | 画素値の更新後にピラミッドを再構築するかどうかを指定します。 |
setvalueOptions | cstring | 更新操作に使用する追加オプション(JSON 文字列形式)。サポートされるフィールドについては、以下の表をご参照ください。 |
setvalueOptions のフィールド
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
window_clip | bool | false | ジオメトリオブジェクトのバウンディングボックスを更新領域として使用するかどうかを指定します。true の場合、ジオメトリオブジェクトの最小境界矩形(MBR)が使用されます。false の場合、ジオメトリオブジェクト自体が使用されます。 |
rast_coord | bool | false | 入力ジオメトリが画素座標系を使用しているかどうかを指定します。true の場合、画素座標系が使用され、x 座標は列番号、y 座標は行番号に対応し、ともに 0 から始まります。false の場合、画素座標系は使用されません。 |
例
行 0、列 2、バンド 1 の画素値を読み取ります:
SELECT ST_Value(rast, 0, 2, 1) FROM raster_table ORDER BY id;バンド 0 において、MULTIPOINT ジオメトリで定義された位置の画素値を 250.0 に設定し、ピラミッドの再構築を有効化します:
UPDATE raster_table
SET rast = ST_SetValue(rast, ST_GeomFromText('MULTIPOINT(0 0, 2 2, 10 10)', 4326), 250.0, 0, true);画素座標系(rast_coord: true)を用いた LINESTRING 上で画素値を 10.0 に設定し、ピラミッドの再構築を行わないようにします:
UPDATE raster_table
SET rast = ST_SetValue(rast, ST_GeomFromText('LINESTRING(211 77, 233 100)', 4326), 10.0, 0, false, '{"rast_coord":true}');