Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_Resize

Última atualização: Sep 01, 2026

Redimensiona o intervalo de pixels de um objeto raster sem alterar sua extensão geoespacial.

Sintaxe

raster ST_Resize(raster rast,
           integer outWidth,
           integer outHeight,
           cstring processExpr default '',
           cstring storageOption default '')

Parâmetros

Parâmetro

Descrição

rast

Objeto raster a redimensionar.

outWidth

Largura do objeto raster de saída, em pixels.

outHeight

Altura do objeto raster de saída, em pixels.

processExpr

String JSON que controla a reamostragem de pixels e o tratamento de valores nodata.

storageOption

String JSON que define o armazenamento do objeto raster de saída.

Campos de processExpr

Cada par chave-valor na string JSON processExpr corresponde a um dos campos descritos abaixo.

Campo

Tipo

Padrão

Descrição

resample

text

Near

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

nodata

Boolean

false

Define se os valores nodata no objeto raster source são tratados como válidos. Se definido como true, pixels com valores nodata não passam por reamostragem. Se definido como false, esses pixels são reamostrados.

nodataValue

float8 \

float8[]

NULL

Valor nodata atribuído às bandas no objeto raster de saída. Especifique um único valor para aplicar a todas as bandas ou defina um valor por banda. A quantidade de valores deve corresponder ao número de bandas.

Nota

Defina

nodata

como

false

e omita

nodataValue

caso o objeto raster source não possua pixels com valores nodata. Caso contrário, podem ocorrer artefatos na imagem.

Campos de storageOption

Campo

Tipo

Padrão

Descrição

chunking

Boolean

Igual ao source

Indica se o objeto raster de saída deve ser armazenado em chunks.

chunkdim

String

Igual ao source

Dimensões dos chunks. Aplicável apenas quando chunking é true.

chunktable

String

'' (string vazia)

Nome da tabela de chunks. Se definido como NULL ou string vazia, a saída é armazenada em uma tabela de chunks temporária com nome aleatório, válida somente para a sessão atual. Para persistir a saída, especifique o nome de uma tabela de chunks permanente.

compression

String

Igual ao source

Formato de compressão. Valores válidos: None, JPEG, Zlib, PNG, LZO, LZ4.

quality

Integer

Igual ao source

Qualidade da imagem JPEG. Aplicável apenas quando compression é JPEG.

interleaving

String

Igual ao source

Tipo de intercalação. Valores válidos: bip (band interleaved by pixel, BIP), bil (band interleaved by line, BIL), bsq (band sequential, BSQ).

endian

String

Igual ao source

Ordem de bytes. Valores válidos: NDR (little-endian), XDR (big-endian).

Nota

Se

chunktable

for

NULL

ou uma string vazia, a saída será armazenada em uma tabela de chunks temporária, excluída automaticamente ao término da sessão atual. Especifique um nome de tabela de chunks para salvar a saída permanentemente.

Exemplos

CREATE TABLE IF NOT EXISTS datasource_table(id integer, rast raster);
INSERT INTO datasource_table VALUES(1, ST_ImportFrom('rbt','$(RAST_DATA_DIR)/512_512_1_bsq_8u_geo.tif', '{}'));

Método 1: Especificar uma tabela de chunks permanente

Utilize uma chunktable nomeada para persistir o objeto raster de saída.

CREATE TABLE rat_resize_result(id integer, rast raster);

-- No nodata field specified
INSERT INTO rat_resize_result(id, rast)
SELECT 10, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

-- Single nodata value applied to all bands; nodata pixels are not resampled
INSERT INTO rat_resize_result(id, rast)
SELECT 11, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":true,"nodatavalue":255}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

-- Multiple nodata values, one per band
INSERT INTO rat_resize_result(id, rast)
SELECT 12, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false,"nodatavalue":[255,255,255]}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

Método 2: Utilizar uma tabela de chunks temporária

Omita chunktable para armazenar a saída em uma tabela temporária com escopo de sessão. O resultado fica disponível para cálculos aninhados na sessão atual e é excluído quando a sessão termina.

CREATE TEMP TABLE rat_resize_result_temp(id integer, rast raster);

INSERT INTO rat_resize_result_temp(id, rast)
SELECT 1, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false,"nodataValue":[255,255,255]}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq"}')
FROM datasource_table
WHERE id = 1;