Mescla um array de objetos raster em um único objeto raster, com opções de reamostragem, tratamento de nodata, balanceamento de cores e processamento paralelo.
Sintaxe
raster ST_MosaicFrom(
raster source[],
cstring chunkTableName,
cstring storageOption DEFAULT '{}',
cstring mosaicOption DEFAULT '{}'
)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Objetos raster a mesclar. |
|
|
Nome da tabela de chunks que armazena o raster de saída. Deve seguir as convenções de nomenclatura de tabelas do banco de dados. |
|
|
String JSON que controla o armazenamento do raster de saída. Padrão: |
|
|
String JSON que controla o algoritmo de mosaico. Padrão: |
Opções de armazenamento
O parâmetro storageOption aceita os seguintes campos JSON:
|
Campo |
Tipo |
Padrão |
Descrição |
|
|
boolean |
Igual aos rasters de origem |
Define se o raster de saída será armazenado em chunks. |
|
|
string |
Igual aos rasters de origem |
Dimensões dos chunks. Válido apenas quando |
|
|
string |
Igual aos rasters de origem |
Tipo de intercalação. Valores válidos: |
|
|
string |
Igual aos rasters de origem |
Formato de compressão. Valores válidos: |
|
|
integer |
Igual aos rasters de origem |
Qualidade da imagem após a compressão. Aplicável somente quando |
Opções de mosaico
O parâmetro mosaicOption aceita os seguintes campos JSON:
|
Campo |
Tipo |
Padrão |
Descrição |
|
|
integer |
SRID do raster superior esquerdo |
Identificador de referência espacial (SRID) do raster de saída. Especifique junto com |
|
|
float8[] |
Tamanho do pixel do raster superior esquerdo |
Tamanho do pixel do raster de saída como |
|
|
text |
|
Método de reamostragem. Valores válidos: |
|
|
bool |
|
Indica se os valores nodata dos rasters de origem são tratados como válidos. Se |
|
|
float8 ou float8[] |
|
Valor nodata atribuído ao raster de saída. Defina como escalar para aplicar o mesmo valor a todas as bandas ou como array com comprimento igual ao número de bandas. |
|
|
bool |
|
Indica se o balanceamento de cores deve ser aplicado. |
|
|
integer |
|
Tamanho do passo usado durante o balanceamento de cores. Válido apenas quando |
|
|
integer |
|
Número de iterações do balanceamento de cores. Válido apenas quando |
|
|
integer |
|
Grau de paralelismo (DOP). Valores válidos: de |
Descrição
A função ST_MosaicFrom mescla vários objetos raster em um único raster de saída.
Requisitos dos rasters de origem
Todos os rasters de origem devem atender às seguintes condições:
Possuir o mesmo número de bandas.
Estar todos georreferenciados ou nenhum georreferenciado. Quando todos os rasters possuem georreferência, a operação de mosaico utiliza coordenadas globais; os SRIDs e parâmetros afins podem variar entre os rasters.
Os tipos de pixel podem ser diferentes.
Funcionamento do balanceamento de cores
A função ST_MosaicFrom utiliza balanceamento de cores baseado em correção gama, aplicado em três etapas:
Geração de um plano de cor global. Todos os rasters de origem passam por reamostragem e ajuste polinomial para produzir uma matriz global de pixels, que serve como referência de cor.
Cálculo de um plano de cor local. Para cada raster de origem, a interpolação bilinear deriva um plano de cor local que mapeia as cores individuais do raster para a matriz global de pixels.
Aplicação da correção gama. Para cada posição de pixel, dois valores são calculados: um do plano de cor local e outro do plano de cor global. O parâmetro de correção gama alinha os dois valores e gera uma saída com cores balanceadas.
Exemplos
Mosaico básico
INSERT INTO raster_obj
VALUES (
1,
ST_MosaicFrom(
ARRAY(SELECT raster_obj FROM raster_table WHERE id < 10),
'chunk_table_mosaic',
'',
''
)
);
Mosaico com SRID e tamanho de célula
UPDATE raster_table
SET raster_obj = ST_MosaicFrom(
ARRAY(SELECT raster_obj FROM raster_table WHERE id < 10),
'chunk_table_mosaic',
'',
'{"srid":4326,"cell_size":[0.00002,0.00002]}'
)
WHERE id = 11;
Mosaico com tratamento de nodata
INSERT INTO rat_mosaicfrom
VALUES (
110,
ST_MosaicFrom(
ARRAY(SELECT rast FROM rat_mosaicfrom WHERE id < 5),
'rbt_mosaic',
'{"chunking":true,"chunkdim":"(256,256,3)","compression":"jpeg","quality":75,"interleaving":"bsq","celltype":"8bui"}',
'{"resample":"Average","srid":4326,"cell_size":[0.00002,0.00002],"nodata":true,"nodataValue":[255,255,255]}'
)
);
Mosaico com paralelismo
INSERT INTO raster_obj
VALUES (
1,
ST_MosaicFrom(
ARRAY(SELECT raster_obj FROM raster_table WHERE id < 10),
'chunk_table_mosaic',
'',
'{"srid":4326,"cell_size":[0.00002,0.00002],"parallel":4}'
)
);
Mosaico com balanceamento de cores e paralelismo
INSERT INTO raster_obj
VALUES (
1,
ST_MosaicFrom(
ARRAY(SELECT raster_obj FROM raster_table WHERE id < 10),
'chunk_table_mosaic',
'',
'{"srid":4326,"cell_size":[0.00002,0.00002],"color_balance":true,"parallel":4}'
)
);