创建影像金字塔。
语法
raster ST_BuildPyramid(raster source,
integer pyramidLevel default -1,
ResampleAlgorithm algorithm default 'Near',
cstring chunkTableName default '',
cstring storageOption default '{}',
cstring buildOption default '{}');
参数
参数名称 | 描述 |
source | 需要创建金字塔的raster对象。 |
chunkTableName | 金字塔所存储的分块表名称。只对基于对象存储(OSS)的栅格对象有效。 |
pyramidLevel | 金字塔创建的层级, -1表示创建到最高层级。 |
algorithm | 创建金字塔的重采样算法,取值如下:
|
storageOption | JSON字符串,存储选项。描述raster对象金字塔的分块存储信息。该选项只针对基于对象存储OSS的栅格对象有效。 |
buildOption | JSON字符串,构建选项。当前支持参数parallel,可以设置操作并行度,数据类型为Integer,取值范围为1~64。不指定parallel时,使用GUC参数ganos.parallel.degree的值。 说明 如果启用并行创建金字塔,则不支持事务。如果创建失败或需要对事务回滚,使用ST_deletePyramid删除已经创建的金字塔。 |
storageOption参数说明如下。
参数名称 | 类型 | 说明 |
chunkdim | string | 分块的维度信息,格式为 |
interleaving | string | 交错方式,取值如下:
|
compression | string | 压缩算法类型,取值如下:
|
quality | integer | 压缩质量。只针对JPEG和JP2K压缩算法生效。 取值范围:1~99,默认值为75。 |
描述
创建金字塔支持GPU加速,如果运行环境带有GPU设备,则Ganos会自动开启GPU加速功能。
示例
Update raster_table set raster_obj = ST_BuildPyramid(raster_obj) where id = 1;
Update raster_table set raster_obj = ST_BuildPyramid(raster_obj, 'chunk_table') where id = 2;
--使用jpeg2000压缩
--确保指定所有波段在一个分块内
Update raster_table set raster_obj = ST_BuildPyramid(
raster_obj,
-1,
'Near',
'chunk_table',
'{"compression":"jp2k", "quality": 75, "chunkdim":"(256,256,4)","interleaving":"auto"}')
where id = 3;
-- 使用并行方式创建
Update raster_table set raster_obj = ST_BuildPyramid(
raster_obj,
-1,
'Near',
'chunk_table',
'{"compression":"jp2k", "quality": 75, "chunkdim":"(256,256,4)","interleaving":"auto"}',
'{"parallel":4}')
where id = 3;