名前

ST_SetValue — 与えられたバンドの columnX, columnY か、ラスターと同じ空間参照系のジオメトリーポイントで指定されたピクセルの値または指定したジオメトリーとインタセクトするピクセル群の値を設定することから得られる、変更されたラスターを返します。バンド番号は 1始まりで、指定しない場合には、1番と仮定します。

概要

raster ST_SetValue(raster rast, integer bandnum, geometry geom, double precision newvalue);

raster ST_SetValue(raster rast, geometry geom, double precision newvalue);

raster ST_SetValue(raster rast, integer bandnum, integer columnx, integer rowy, double precision newvalue);

raster ST_SetValue(raster rast, integer columnx, integer rowy, double precision newvalue);

説明

指定されたバンドの、与えられたラスターの行と列またはジオメトリーで指定したピクセルの値を新しい値に設定することで得られる、変更したラスターを返します。バンドが指定されいていない場合には、1番と仮定します。

Enhanced: 2.1.0 ST_SetValue でジオメトリーを用いる形式が、ポイントだけでなくあらゆるジオメトリータイプに対応するようになりました。ジオメトリーを用いる形式はST_SetValues の geomval[]を用いる形式をラップしたものです。

この例ではジオメトリー入力を使います。

コード

                SELECT (foo.geomval).val, ST_Union((foo.geomval).geom)
FROM (SELECT ST_DumpAsPolygons(ST_SetValue(
            rast,
            1,
            ST_Point(3427927.75, 5793243.95),
            50)
            ) As geomval
FROM dummy_rast
where rid = 2) As foo
WHERE (foo.geomval).val < 250
GROUP BY (foo.geomval).val;
出力
 val |                                                     st_astext
-----+-------------------------------------------------------------------
  50 | POLYGON((3427927.75 5793244,3427927.75 5793243.95,3427927.8 579324 ...
 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 57932 ...

この例では変更されたラスターを格納します。

コード
UPDATE dummy_rast SET rast = ST_SetValue(rast, 1, ST_Point(3427927.75, 5793243.95), 100)
    WHERE rid = 2   ;

                

関連情報

ST_Value, ST_DumpAsPolygons