创建一个基于阿里云对象存储服务(OSS)、MinIO和HDFS的raster对象,或者从用户指定一维数组表示的栅格对象生成raster对象。
语法
raster ST_CreateRast(cstring url);
raster ST_CreateRast(cstring url, cstring storageOption);
raster ST_CreateRast(anyarray data , integer width, cstring storageOption, geometry extent);
参数
参数名称 | 描述 |
url | OSS影像文件的路径。更多信息,请参见对象存储服务路径。 |
storageOption | 基于JSON格式的字符串,描述raster对象金字塔的分块存储信息。 |
createOption | 基于JSON格式的字符串,描述导入选项存储信息。 |
data | 一维数组表示的栅格对象。该数组长度为栅格的列数与行数的乘积。 |
width | 栅格列数。 |
extent | geometry类型表示的空间范围(可选)。 |
storageOption支持的参数如下:
参数名称 | 描述 | 类型 | 格式 | 默认值 | 说明 |
chunkdim | 分块的维度信息 | string | (w, h, b) | 从原始影像中读取分块大小 | 无 |
interleaving | 交错方式 | string | 无 | bsq | 必须是以下一种:
|
chunk_table | 写入chunk_table名称 | string | 无 | 无 | 在使用一维数组生成raster对象功能中必须指定。 |
在通常情况下无需修改分块和交错信息,仅在特殊场景下需要修改,例如:
需要多波段RGB组合浏览,但是默认值为bsq(波段交错) ,需要修改为bip(像素交错)。
某些影像的分块大小为1行*n列,但是访问请求为256行*256列的规则块,需要修改为按照访问请求的大小。
createOption支持的参数如下:
参数名称 | 描述 | 类型 | 默认值 | 说明 |
compute_stats | 导入时是否自动计算波段统计信息。 | boolean | false | 无 |
approx | 是否使用采样方式计算。 | boolean | false | 当设置为true时,采用采样方式计算统计值,结果可能会不精确。 |
factor | 采样因子。 | integer | 4 | 采样因子,表示如果采样时,n个象元作为一个采样单元,仅在approx设置为true时有效。 |
exclusive_nodata | 是否排除nodata。 | boolean | true | nodata数据不进行统计。 |
描述
支持的数据类型请通过ST_RasterDrivers函数获取。
示例
-- 基于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('MIO://<ak>:<ak_secret>@10.0.0.1:443/mybucket/data/image.tif');
-- 基于HDFS,指定user_name
Select ST_CreateRast('HDFS://<user_name>@10.0.0.1: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"}');
-- 入库自动计算波段统计信息
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}');
-- 指定具有Subset的NetCDF对应的影像
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
-- 指定具有Subset的HDF5对应的影像
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/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"}'));