Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_MosaicFrom

Última atualização: Jul 05, 2026

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

source

Objetos raster a mesclar.

chunkTableName

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.

storageOption

String JSON que controla o armazenamento do raster de saída. Padrão: '{}'. Consulte Opções de armazenamento.

mosaicOption

String JSON que controla o algoritmo de mosaico. Padrão: '{}'. Consulte Opções de mosaico.

Opções de armazenamento

O parâmetro storageOption aceita os seguintes campos JSON:

Campo

Tipo

Padrão

Descrição

chunking

boolean

Igual aos rasters de origem

Define se o raster de saída será armazenado em chunks.

chunkdim

string

Igual aos rasters de origem

Dimensões dos chunks. Válido apenas quando chunking é true. Formato: (w,h,b).

interleaving

string

Igual aos rasters de origem

Tipo de intercalação. Valores válidos: bip (intercalação por pixel), bil (intercalação por linha), bsq (intercalação por banda) e auto (determinado automaticamente).

compression

string

Igual aos rasters de origem

Formato de compressão. Valores válidos: none, jpeg, zlib, png, lzo, lz4, zstd, snappy e jp2k.

quality

integer

Igual aos rasters de origem

Qualidade da imagem após a compressão. Aplicável somente quando compression é jpeg ou jp2k.

Opções de mosaico

O parâmetro mosaicOption aceita os seguintes campos JSON:

Campo

Tipo

Padrão

Descrição

srid

integer

SRID do raster superior esquerdo

Identificador de referência espacial (SRID) do raster de saída. Especifique junto com cell_size.

cell_size

float8[]

Tamanho do pixel do raster superior esquerdo

Tamanho do pixel do raster de saída como [cell_size_x, cell_size_y]. Especifique junto com srid.

resample

text

'Near'

Método de reamostragem. Valores válidos: 'Near', 'Average', 'Cubic' e 'Bilinear'.

nodata

bool

false

Indica se os valores nodata dos rasters de origem são tratados como válidos. Se true, pixels com valores nodata não passam por reamostragem. Se false, esses pixels são reamostrados.

nodataValue

float8 ou float8[]

NULL

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.

color_balance

bool

false

Indica se o balanceamento de cores deve ser aplicado.

step

integer

0.1

Tamanho do passo usado durante o balanceamento de cores. Válido apenas quando color_balance é true. Um passo maior acelera o processamento, mas pode reduzir a precisão.

iteration

integer

50000

Número de iterações do balanceamento de cores. Válido apenas quando color_balance é true. Mais iterações produzem resultados melhores, porém aumentam o tempo de execução.

parallel

integer

1

Grau de paralelismo (DOP). Valores válidos: de 1 a 64.

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:

  1. 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.

  2. 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.

  3. 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}'
  )
);