Namn

ST_ColorMap — Skapar ett nytt raster med upp till fyra 8BUI-band (gråskala, RGB, RGBA) från källrastret och ett angivet band. Band 1 antas om det inte specificeras.

Synopsis

raster ST_ColorMap(raster rast, integer nband=1, text colormap=grayscale, text method=INTERPOLATE);

raster ST_ColorMap(raster rast, text colormap, text method=INTERPOLATE);

Description

Tillämpa en färgkarta på bandet vid nband i rast, vilket resulterar i ett nytt raster som består av upp till fyra 8BUI-band. Antalet 8BUI-band i det nya rastret bestäms av antalet färgkomponenter som definieras i colormap.

Om nband inte anges antas band 1.

colormap kan vara ett nyckelord för en fördefinierad colormap eller en uppsättning linjer som definierar värdet och färgkomponenterna.

Giltigt fördefinierat nyckelord för färgkartor:

  • gråskala eller gråskala för ett 8BUI-bandraster av nyanser av grått.

  • pseudofärg för ett raster med fyra 8BUI (RGBA)-band med färger från blått till grönt till rött.

  • brand för ett raster med fyra 8BUI (RGBA)-band med färger från svart till rött till ljusgult.

  • bluered för ett raster med fyra 8BUI (RGBA)-band med färger från blått till ljusvitt till rött.

Användare kan skicka en uppsättning poster (en per rad) till colormap för att ange anpassade färgkartor. Varje post består i allmänhet av fem värden: pixelvärdet och motsvarande röd-, grön-, blå- och alfakomponenter (färgkomponenter mellan 0 och 255). Procentvärden kan användas i stället för pixelvärden, där 0% aoch 100% aär de lägsta och högsta värdena i rasterbandet. Värdena kan separeras med kommatecken (','), tabbar, kolon (':') och/eller mellanslag. Pixelvärdet kan sättas till nv, null eller nodata för NODATA-värdet. Ett exempel ges nedan.

Code
5 0 0 0 255
4 100:50 55 255
1 150, 100 150 255
0% 255 255 255 255
nv 0 0 0 0
                    

Syntaxen för colormap liknar den för färgreliefläget i GDAL gdaldem.

Giltiga nyckelord för metod:

  • INTERPOLATE för att använda linjär interpolation för att mjukt blanda färgerna mellan de angivna pixelvärdena

  • EXACT för att strikt matcha endast de pixelvärden som finns i färgkartan. Pixlar vars värde inte matchar en post i färgkartan kommer att sättas till 0 0 0 0 0 (RGBA)

  • NEAREST för att använda den färgkartspost vars värde ligger närmast pixelvärdet

[Notera]

En bra referens för färgkartor är ColorBrewer.

[Varning]

De resulterande banden av nytt raster kommer inte att ha något NODATA-värde inställt. Använd ST_SetBandNoDataValue för att ställa in ett NODATA-värde om ett sådant behövs.

Tillgänglighet: 2.1.0

Exempel

This example builds a raster from rotated buffered lines and compares the original values with predefined and custom color maps.

Code
WITH ref AS (
    SELECT ST_MakeEmptyRaster(200, 200, 0, 200, 1, -1, 0, 0) AS rast
), source AS (
    SELECT ST_Union(rast) AS rast
    FROM (
    SELECT
        ST_AsRaster(ST_Rotate(ST_Buffer('LINESTRING(0 2,50 50,150 150,125 50)'::geometry,
                    i*2
                ),
                pi() * i * 0.125, ST_Point(50, 50)
            ),
            ref.rast, '8BUI'::text, i * 5
        ) AS rast
    FROM ref
    CROSS JOIN generate_series(1, 10, 3) AS i
) AS shapes
)
SELECT title, ST_AsPNG(rendered) AS image
FROM source
CROSS JOIN LATERAL (VALUES
    ('original', rast),
    ('grayscale', ST_ColorMap(rast, 1, 'greyscale')),
    ('pseudocolor', ST_ColorMap(rast, 1, 'pseudocolor')),
    ('fire', ST_ColorMap(rast, 1, 'fire')),
    ('blue-red', ST_ColorMap(rast, 1, 'bluered')),
    ('custom red', ST_ColorMap(
        rast,
        1,
        E'100% 255 0 0 255\n80% 160 0 0 255\n50% 130 0 0 255\n' ||
        E'30% 30 0 0 255\n20% 60 0 0 255\n0% 0 0 0 255\n' ||
        E'nv 255 255 255 0'
    ))
) AS variants(title, rendered);
Rasterutdata
title      | image
------------+--------------------------------
 original   | PNG image, 224 x 295 pixels
 grayscale | PNG image, 224 x 295 pixels
 pseudocolor| PNG image, 224 x 295 pixels
 fire       | PNG image, 224 x 295 pixels
 blue-red   | PNG image, 224 x 295 pixels
 custom red | PNG image, 224 x 295 pixels
                    
Figure
Geometry figure for visual-rt-st-colormap-01