ST_ReclassExact — Skapar ett nytt raster som består av band som omklassificerats från originalbandet med hjälp av en 1:1-mappning från värden i originalbandet till nya värden i destinationsbandet.
raster ST_ReclassExact(raster rast, double precision[] inputvalues, double precision[] outputvalues, integer bandnumber=1, text pixeltype=32BF, double precision nodatavalue=NULL);
Skapar ett nytt raster som bildas genom att tillämpa en omklassificeringsoperation som definieras av matriserna inputvalues och outputvalues. Pixelvärden som finns i input-arrayen mappas till motsvarande värde i output-arrayen. Alla andra pixelvärden mappas till nodatavärdet.
Pixeltypen för utdata är som standard float, men kan specificeras med hjälp av parametern pixeltype. Om inget bandnumber anges antas band 1.
Det nya rastret kommer att ha samma georeferens, bredd och höjd som det ursprungliga rastret. Band som inte anges returneras oförändrade.
Tillgänglighet: 3.6.0
Skapa ett litet raster och mappa dess pixlar till nya värden.
Skapa ett raster med fyra pixlar: första raden 1 2, andra raden 3 4.
CREATE TABLE reclassexact (
id integer,
rast raster
);
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
);
Omklassificera värdena till nya värden och dumpa värdena i det nya rastret för visning.
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 pixel type
) AS rast
FROM reclassexact
WHERE id = 1
)
SELECT 'rce-1', (ST_DumpValues(rc.rast)).*
FROM rc;