創建影像金字塔。

語法

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 創建金字塔的重采樣算法,取值如下:
  • Near:最鄰近
  • Average:平均值
  • Bilinear:二次線性
  • Cubic:三次卷積
storageOption JSON字符串,存儲選項。描述raster對象金字塔的分塊存儲信息。該選項只針對基于對象存儲OSS的柵格對象有效。
buildOption JSON字符串,構建選項。當前支持參數parallel,可以設置操作并行度,數據類型為Integer,取值范圍為1~64。不指定parallel時,使用GUC參數ganos.parallel.degree的值。
說明 如果啟用并行創建金字塔,則不支持事務。如果創建失敗或需要對事務回滾,使用ST_deletePyramid刪除已經創建的金字塔。

storageOption參數說明如下。

參數名稱 類型 說明
chunkdim string 分塊的維度信息,格式為(w, h, b),默認從原始影像中讀取分塊大小。
interleaving string 交錯方式,取值如下:
  • bip:像素交錯
  • bil:行交錯
  • bsq(默認值):波段交錯
  • auto:根據原始影像自動選擇
compression string 壓縮算法類型,取值如下:
  • none
  • jpeg
  • zlib
  • png
  • lzo
  • lz4(默認值)
  • zstd
  • snappy
  • jp2k
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;