Todos os produtos
Search
Central de documentação

PolarDB:ST_ClipToRast

Última atualização: Aug 24, 2026

Recorta um objeto raster conforme a forma de uma geometria e retorna o resultado como um novo objeto raster.

Sintaxe

raster ST_ClipToRast(raster raster_obj,
                     geometry geom,
                     integer pyramidLevel default 0,
                     cstring bands default '',
                     float8[] nodata default NULL,
                     cstring clipOption default '',
                     cstring storageOption default '')

Parâmetros

Parâmetro

Descrição

raster_obj

Objeto raster a ser recortado.

geom

Objeto de geometria usado para definir a área de recorte.

pyramidLevel

Nível da pirâmide. Valor padrão: 0.

bands

Bandas a recortar. Aceita formato de intervalo ('0-2') ou lista ('1,2,3'). O índice das bandas começa em 0. Valor padrão: '' (todas as bandas).

nodata

Valores NoData fornecidos como array float8[]. Se a quantidade de valores for menor que o número de bandas recortadas, o sistema aplica o valor NoData predefinido para cada banda restante. Caso não haja valor NoData predefinido, usa-se 0. Valor padrão: NULL.

clipOption

Opções de recorte em formato JSON. Consulte Campos de clipOption. Valor padrão: ''.

storageOption

Opções de armazenamento para o raster retornado, em formato JSON. Consulte Campos de storageOption. Valor padrão: ''.

Campos de clipOption

Campo

Tipo

Padrão

Descrição

window_clip

bool

false

Define se o recorte usa a bounding box da geometria em vez de sua forma exata. Configure como true para recortar pelo retângulo delimitador mínimo (MBR) ou como false para recortar diretamente pela geometria.

rast_coord

bool

false

Indica se a geometria usa coordenadas de pixel. Quando definido como true, a coordenada x corresponde ao número da coluna e a coordenada y ao número da linha do pixel.

Campos de storageOption

Campo

Tipo

Padrão

Descrição

chunking

boolean

Igual ao raster original

Determina se os dados do novo raster são armazenados em chunks.

chunkdim

string

Igual ao raster original

Dimensões dos chunks para o novo raster. Este parâmetro só tem efeito quando chunking é true.

chunktable

string

''

Nome da tabela de chunks para o novo raster. Se definido como '', cria-se uma tabela temporária com nome aleatório, válida apenas para a sessão atual. Especifique um nome para criar uma tabela permanente.

compression

string

lz4

Algoritmo de compressão. Valores válidos: none, jpeg, zlib, png, lzo, lz4.

quality

integer

75

Qualidade da compressão. Aplica-se somente quando compression é jpeg.

interleaving

string

Igual ao raster original

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 raster original

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

Observações de uso

  • Se chunktable for definido como NULL ou '', o sistema cria uma tabela de chunks temporária com nome aleatório, válida exclusivamente para a sessão atual. Para criar uma tabela permanente, especifique um nome.

  • O tamanho padrão do cache para operações de recorte é de 100 MB. Para ajustar esse limite, execute:

    SET ganos.raster.clip_max_buffer_size = <cache size in bytes>;

Exemplos

-- Create a permanent result table.
CREATE TABLE rast_clip_result(id integer, rast raster);

-- Create a temporary result table.
CREATE TEMP TABLE rast_clip_result_temp(id integer, rast raster);

-- Clip using default settings and store the result in the temporary table.
INSERT INTO rast_clip_result_temp(id, rast)
SELECT 1, ST_ClipToRast(rast, ST_GeomFromText('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0)
FROM clip_table
WHERE id = 1;

-- Clip with a white background (NoData = 254) and store the result in the permanent table.
INSERT INTO rast_clip_result(id, rast)
SELECT 2, ST_ClipToRast(rast, ST_GeomFromText('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', ARRAY[254,254,254], '', '{"chunktable":"clip_rbt"}')
FROM clip_table
WHERE id = 1;

-- Clip using the bounding box (MBR) of the geometry.
INSERT INTO rast_clip_result_temp(id, rast)
SELECT 3, ST_ClipToRast(rast, ST_GeomFromText('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', NULL, '{"window_clip":true}', '')
FROM clip_table
WHERE id = 1;