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: |
|
|
nodata |
Boolean |
false |
Define se os valores nodata no objeto raster source são tratados como válidos. Se definido como |
|
|
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. |
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 |
|
chunktable |
String |
|
Nome da tabela de chunks. Se definido como |
|
compression |
String |
Igual ao source |
Formato de compressão. Valores válidos: |
|
quality |
Integer |
Igual ao source |
Qualidade da imagem JPEG. Aplicável apenas quando |
|
interleaving |
String |
Igual ao source |
Tipo de intercalação. Valores válidos: |
|
endian |
String |
Igual ao source |
Ordem de bytes. Valores válidos: |
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;