根据指定像素位置或空间范围更改像素值。

语法

raster ST_SetValue(raster raster_obj,
                   integer row,
                   integer column,
                   double value,
                   integer band);

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 被更改像素值所在的行号。
column 被更改像素值所在的列号。
value 需要更改新像素值。
band 被更改像素值波段号。
rebuild_pyd 是否重建金字塔。
setvalueOptions json字符串表示的像素值更改选项,具体参数说明请参见表 1
表 1. setvalueOptions参数说明
参数名称 类型 默认值 说明
window_clip bool false 是否使用geometry的外包框进行裁剪。
  • true:使用geometry的MBR作为更改像素值区域。
  • false:使用geometry对象作为更改像素值区域。
rast_coord bool false 传入的geometry是否使用的是象元坐标。
  • true:使用象元坐标,横坐标x表示象元的列号(起始为0),纵坐标y表示象元的行号(起始为0)。
  • false:不使用象元坐标。

示例

select st_value(rast, 0, 2, 1) from raster_table order by id;

update raster_table set rast=st_setvalue(rast, ST_geomfromtext('MULTIPOINT(0 0, 2 2, 10 10)', 4326),250.0, 0, true);

update raster_table set rast=st_setvalue(rast, ST_geomfromtext('LINESTRING(211 77, 233 100)', 4326), 10.0, 0, false, '{"rast_coord":true}');