Cria um objeto raster a partir de um arquivo no Alibaba Cloud Object Storage Service (OSS), em um bucket do MinIO (Multi-Cloud Object Storage) ou em um caminho do Hadoop Distributed File System (HDFS). Alternativamente, gera um objeto raster a partir de dados em um array unidimensional.
Sintaxe
-- Variant 1: Create from a storage path
raster ST_CreateRast(cstring url);
-- Variant 2: Create from a storage path with chunk and interleaving options
raster ST_CreateRast(cstring url, cstring storageOption);
-- Variant 3: Create from a storage path with chunk, interleaving, and import options
raster ST_CreateRast(cstring url, cstring storageOption, cstring createOption);
-- Variant 4: Generate from a one-dimensional array
raster ST_CreateRast(anyarray data, integer width, cstring storageOption, geometry extent);Parâmetros
Variantes 1, 2 e 3: Criar a partir de um caminho de armazenamento
| Parâmetro | Tipo | Descrição |
|---|---|---|
url | cstring | O caminho do arquivo de origem. Compatível com caminhos OSS, MinIO e HDFS. Para detalhes sobre o formato do caminho, consulte Caminhos de armazenamento de objeto. |
storageOption | cstring | (Variantes 2 e 3) Uma string JSON que controla como os chunks e o interleaving são armazenados na pirâmide raster. Consulte os campos de storageOption. |
createOption | cstring | (Somente Variante 3) Uma string JSON que controla o cálculo de estatísticas de bandas durante a importação. Consulte os campos de createOption. |
Variante 4: Gerar a partir de um array unidimensional
| Parâmetro | Tipo | Descrição |
|---|---|---|
data | anyarray | Dados raster como um array unidimensional. O número de elementos deve ser igual ao número de colunas multiplicado pelo número de linhas. |
width | integer | O número de colunas nos dados raster. |
storageOption | cstring | Uma string JSON que especifica as opções de armazenamento de chunks. O campo chunk_table é obrigatório para esta variante. Consulte os campos de storageOption. |
extent | geometry | (Opcional) A extensão espacial 3D do raster, representada como uma geometria. |
Campos de storageOption
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
chunkdim | string | Igual ao tamanho de chunk original | As dimensões de cada chunk no formato (width,height,bands), por exemplo, (256,256,3). |
interleaving | string | bsq | O tipo de interleaving do objeto raster. Valores válidos: bip (banda intercalada por pixel, BIP), bil (banda intercalada por linha, BIL), bsq (banda sequencial, BSQ), auto (determinado automaticamente). |
chunk_table | string | Nenhum | O nome da tabela de chunks. Obrigatório ao usar a Variante 4 para gerar um objeto raster a partir de um array. |
Altere chunkdim ou interleaving dos valores padrão somente quando necessário:
Para visualizar um raster como um composto multiband vermelho, verde e azul (RGB) quando o interleaving atual for
bsq, altere-o parabip.Se a imagem de origem tiver chunks de 1×n colunas, mas você precisar de chunks de 256×256, defina
chunkdimcomo(256,256,3).
Campos de createOption
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
compute_stats | boolean | false | Especifica se as estatísticas de bandas devem ser calculadas automaticamente durante a importação. |
approx | boolean | false | Especifica se um método de amostragem deve ser usado para calcular as estatísticas. Quando true, os resultados podem ser aproximados. |
factor | integer | 4 | O fator de amostragem. Um valor de n significa que cada unidade de amostragem cobre n pixels. Tem efeito somente quando approx é true. |
exclusive_nodata | boolean | true | Especifica se os valores nodata devem ser excluídos dos cálculos estatísticos. |
Descrição
Use a função ST_RasterDrivers para obter os tipos de dados compatíveis.
Formato de URL por tipo de armazenamento:
Cada tipo de armazenamento usa um esquema de URL diferente:
| Armazenamento | Formato de URL | Exemplo |
|---|---|---|
| OSS | OSS://<ak>:<ak_secret>@<endpoint>/<bucket>/<path> | OSS://mykey:mysecret@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif |
| MinIO | MIO://<ak>:<ak_secret>@<host>:<port>/<bucket>/<path> | MIO://mykey:mysecret@10.0.0.1:443/mybucket/data/image.tif |
| HDFS | HDFS://<user_name>@<host>:<port>/<path> | HDFS://myuser@10.0.0.1:8020/path/image.tif |
Para formatos com múltiplos datasets como NetCDF e HDF5, acrescente o nome do dataset ao caminho:
NetCDF:
image.nc:<dataset>HDF5:
image.hdf5://<group>/<dataset>
Exemplos
Criar um objeto raster a partir de um arquivo OSS:
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');Criar um objeto raster a partir de um arquivo MinIO:
SELECT ST_CreateRast('MIO://<ak>:<ak_secret>@10.0.0.1:443/mybucket/data/image.tif');Criar um objeto raster a partir de um arquivo HDFS:
SELECT ST_CreateRast('HDFS://<user_name>@10.0.0.1:8020/path/image.tif');Definir dimensões de chunk e interleaving:
SELECT ST_CreateRast(
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif',
'{"chunkdim":"(256,256,3)","interleaving":"auto"}'
);Calcular estatísticas de bandas durante a importação:
SELECT ST_CreateRast(
'OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif',
'{"chunkdim":"(256,256,3)","interleaving":"auto"}',
'{"compute_stats":true}'
);Criar um objeto raster a partir de um arquivo NetCDF com um dataset nomeado:
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');Criar um objeto raster a partir de um arquivo HDF5 com um dataset nomeado:
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/hcc');Gerar um objeto raster a partir de um array:
SELECT ST_FixedRid(
ST_CreateRast(
ARRAY[10, 11, 8, 12],
2,
'{"chunktable":"rbt"}',
ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326)
)
);Agregar vários registros em um objeto raster usando array_agg:
SELECT ST_FixedRid(
ST_CreateRast(
(SELECT array_agg(value) FROM point_table),
300,
'{"chunktable":"rbt"}'
)
);Consulte também
ST_RasterDrivers — lista os formatos raster compatíveis
Caminhos de armazenamento de objeto — referência de formato de URL para OSS, MinIO e HDFS