创建一个基于阿里云对象存储服务(OSS)的raster对象。

语法

raster ST_CreateRast(cstring url);
raster ST_CreateRast(cstring url, cstring storageOption);
raster ST_CreateRast(anyarray data , integer width, cstring storageOption, geometry extent);

参数

参数名称描述
urlOSS影像文件的路径。更多信息,请参见对象存储服务路径
storageOption基于JSON格式的字符串,描述raster对象金字塔的分块存储信息。
data一维数组表示的栅格对象。该数组长度为栅格的列数与行数的乘积。
width栅格列数。
extentgeometry类型表示的空间范围(可选)。

storageOption支持的参数如下:

参数名称描述类型格式默认值说明
chunkdim分块的维度信息string(w, h, b)从原始影像中读取分块大小
interleaving交错方式stringbsq必须是以下一种:
  • bip:像素交错
  • bil:行交错
  • bsq:波段交错
  • auto:根据原始影像自动选择
chunk_table写入chunk_table名称string在使用一维数组生成raster对象功能中必须指定。
说明 在通常情况下无需修改分块和交错信息,仅在特殊场景下需要修改,例如:
  • 需要多波段RGB组合浏览,但是默认值为bsq(波段交错) ,需要修改为bip(像素交错)。
  • 某些影像的分块大小为1行*n列,但是访问请求为256行*256列的规则块,需要修改为按照访问请求的大小。

描述

OSS文件路径格式如下: oss://access_id:secrect_key@Endpoint/path_to/file。 其中Endpoint可以被省略,系统会自动寻找相应的Endpoint。如果Endpoint被省略,路径必须以/开头。

Endpoint为OSS的地域节点。为保证数据导入的性能,请确保ADB PG与OSS所在地域相同,详情请参见OSS Endpoint

示例

-- 基于OSS存储,指定accessID,accessKEY,endpoint
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');

-- 基于MinIO,指定host和port
Select ST_CreateRast('OSS://<ak>:<ak_secret>@10.0.XX.XX:443/mybucket/data/image.tif');

-- 基于HDFS,指定user_name
Select ST_CreateRast('HDFS://<user_name>@10.0.XX.XX:8020/path/image.tif');

-- 指定分块与交错方式
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif', '{"chunkdim":"(256,256,3)","interleaving":"auto"}');

-- 指定具有Subset的NetCDF对应的影像
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
            
-- 从数组生成raster对象
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)));

-- 通过array_agg多条记录聚合生成raster对象
select ST_FixedRid(ST_CreateRast((select array_agg(value) from point_table), 300, '{"chunktable":"rbt"}'));