ST_ColorMap — Cria um novo raster de até quatro bandas 8BUI (grayscale, RGB, RGBA) do raster fonte e uma banda específica. A banda 1 usada se não especificado.
raster ST_ColorMap(
raster rast, integer nband=1, text colormap=grayscale, text method=INTERPOLATE)
;
raster ST_ColorMap(
raster rast, text colormap, text method=INTERPOLATE)
;
Aplica um colormap
à banda na nband
do rast
resultando em um novo raster englobado com até quatro bandas 8BUI. O número de bandas 8BUI no novo raster é determinado pelo número de cores componentes definidas no colormap
.
Se nband
não for especificado, a banda 1 é assumida.
colormap
pode ser uma palavra-chave de um colormap pré definido ou um conjunto de linhas definindo o valor e a cor dos componentes.
Palavra-chave válida do colormap
pré definida:
grayscale
ou greyscale
para uma banda raster 8BUI de tons de cinza.
pseudocolor
para quatro bandas raster 8BUI (RGBA) com cores indo de azul para verde e para vermelho.
fire
para quatro bandas raster 8BUI (RGBA) com cores indo de preto para vermelho para amarelo claro.
bluered
para quatro bandas raster 8BUI (RGBA) com cores indo de azul para branco para vermelho.
Os usuários podem passar um conjunto de entradas (uma por linha) para colormap
para especificar colormaps personalizados. Cada entrada consiste de cinco valores: o valor de pixel e componentes Vermelho, Verde, Azul, Alfa correspondentes (entre 0 e 255). Valores de porcentagem podem ser usados em vez de valores de pixel onde 0% e 100% são os mínimos e os máximos encontrados na banda raster. Os valores podem ser separados por vírgulas (","), tabs, dois pontos (":") e/ou espaços. O valor do pixel pode ser nv, null ou nodata para o valor NODATA. Um exemplo é fornecido abaixo.
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
A sintaxe do colormap
é parecida com com a do modo do auxílio de cor do GDAL gdaldem.
Palavras-chave válidas para method
:
INTERPOLATE
para usar interpolação linear para misturar suavemente as cores entre os valores do pixel
EXACT
para combinar estritamente somente aqueles valores de pixel encontrados no colormap. Os pixeis cujos valores não combinarem com uma entrada do colormap serão 0 0 0 0 (RGBA)
NEAREST
para usar a entrada do colormap cujos valores são mais próximos ao valor do pixel
Uma ótima referência para o colormap é ColorBrewer. |
As bandas resultantes do novo raster não terá nenhum valor NODATA. Use ST_SetBandNoDataValue se precisar de um valor NODATA. |
Disponibilidade: 2.1.0
Esta não é uma boa tabela para desfrutar
-- setup test raster table -- DROP TABLE IF EXISTS funky_shapes; CREATE TABLE funky_shapes(rast raster); INSERT INTO funky_shapes(rast) WITH ref AS ( SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast ) SELECT ST_Union(rast) FROM ( SELECT ST_AsRaster( ST_Rotate( ST_Buffer( ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'), 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 ST_NumBands(rast) As n_orig, ST_NumBands(ST_ColorMap(rast,1, 'greyscale')) As ngrey, ST_NumBands(ST_ColorMap(rast,1, 'pseudocolor')) As npseudo, ST_NumBands(ST_ColorMap(rast,1, 'fire')) As nfire, ST_NumBands(ST_ColorMap(rast,1, 'bluered')) As nbluered, ST_NumBands(ST_ColorMap(rast,1, ' 100% 255 0 0 80% 160 0 0 50% 130 0 0 30% 30 0 0 20% 60 0 0 0% 0 0 0 nv 255 255 255 ')) As nred FROM funky_shapes;
n_orig | ngrey | npseudo | nfire | nbluered | nred --------+-------+---------+-------+----------+------ 1 | 1 | 4 | 4 | 4 | 3
SELECT ST_AsPNG(rast) As orig_png, ST_AsPNG(ST_ColorMap(rast,1,'greyscale')) As grey_png, ST_AsPNG(ST_ColorMap(rast,1, 'pseudocolor')) As pseudo_png, ST_AsPNG(ST_ColorMap(rast,1, 'nfire')) As fire_png, ST_AsPNG(ST_ColorMap(rast,1, 'bluered')) As bluered_png, ST_AsPNG(ST_ColorMap(rast,1, ' 100% 255 0 0 80% 160 0 0 50% 130 0 0 30% 30 0 0 20% 60 0 0 0% 0 0 0 nv 255 255 255 ')) As red_png FROM funky_shapes;
|
|
|
|
|
|