ST_ReclassExact — 元ラスターから再分類したバンドからなる新しいラスタを生成します。元ラスターのバンド内の値から新たに生成されるラスターのバンド内の値への1対1のマッピングを使います。
raster ST_ReclassExact(
raster rast, double precision[] inputvalues, double precision[] outputvalues, integer bandnumber=1, text pixeltype=32BF, double precision nodatavalue=NULL)
;
inputvalues
配列とoutputvalues
配列によって定義される再分類処理を適用することで形成される新しいラスタを生成します。入力配列のピクセル値は対応する出力配列の値にマップされます。他のピクセル値は全て nodatavalue
にマップされます。
出力ピクセルタイプのデフォルトは浮動小数点数ですが、 pixeltype
パラメータで指定できます。bandnumber
を指定しな場合には、1番を仮定します。
新しいラスターは元ラスターと同じジオリファレンス、同じ幅、同じ高さを持ちます。指定されていないバンドは変更されずに返ります。
Availability: 3.6.0
小さいラスターを作ってピクセルに新しい値をマップしていきます。
CREATE TABLE reclassexact ( id integer, rast raster ); -- -- Create a raster with just four pixels -- [1 2] -- [3 4] -- INSERT INTO reclassexact (id, rast) SELECT 1, ST_SetValues( ST_AddBand( ST_MakeEmptyRaster( 2, -- width in pixels 2, -- height in pixels 0, -- upper-left x-coordinate 0, -- upper-left y-coordinate 1, -- pixel size in x-direction -1, -- pixel size in y-direction (negative for north-up) 0, -- skew in x-direction 0, -- skew in y-direction 4326 -- SRID (e.g., WGS 84) ), '32BUI'::text, -- pixel type (e.g., '32BF' for float, '8BUI' for unsigned 8-bit int) 0.0, -- initial value for the band (e.g., 0.0 or a no-data value) -99 -- nodatavalue ), 1, -- band number (usually 1 for single-band rasters) 1, -- x origin for setting values (usually 1) 1, -- y origin for setting values (usually 1) ARRAY[ ARRAY[1, 2], ARRAY[3, 4] ]::double precision[][] -- 2D array of values ); -- Reclass the values to new values -- and dump the values of the new raster for display WITH rc AS ( SELECT ST_ReclassExact( rast, -- input raster ARRAY[4,3,2,1], -- input map ARRAY[14,13,12,11], -- output map 1, -- band number to remap '32BUI' -- output raster pixtype ) AS rast FROM reclassexact WHERE id = 1 ) SELECT 'rce-1', (ST_DumpValues(rc.rast)).* FROM rc;