全部產品
Search
文件中心

PolarDB:ST_LinearStretch

更新時間:Sep 02, 2026

將影像進行線性展開,作為一個新的raster返回。

文法

  • 形式一:

    raster ST_LinearStretch(raster raster_obj ,
                            integer pyramidLevel default 0,    
                            cstring bands default '', 
                            integer minRatio default 0,
                            integer maxRatio default 100, 
                            cstring storageOption  default '',
                            cstring parallelOption default '{}')
  • 形式二:

    raster ST_LinearStretch(raster raster_obj ,
                            float8[] minValues,
                            float8[] maxValues,
                            integer pyramidLevel default 0,    
                            cstring bands default '',  
                            cstring storageOption  default '',
                            cstring parallelOption default '{}')

參數

參數名稱

描述

raster_obj

raster對象。

pyramidLevel

金字塔層級,從0開始,預設值為0。

bands

需要裁剪的波段,以'0-2'或者'1,2,3'形式表示,以0開始。 預設為'', 裁剪所有的波段。

storageOption

返回結果的儲存選項,以JSON字串表示。更多資訊,請參見storageOption。

parallelOption

並行操作選項,以JSON字串表示。更多資訊,請參見parallelOption。

minRatio

按比例展開時的最小展開比例,取值0~100。

maxRatio

按比例展開時的最大展開比例,取值0~100。該值必須大於minRatio的值。

minValues

極值展開時的最小值數組,個數必須和需要展開波段數一致。

maxValues

極值展開時的最大值數組,個數必須和需要展開波段數一致。

storageOption參數說明:

參數名稱

描述

類型

預設值

說明

chunking

是否使用分Block Storage。

boolean

和原始raster一致。

無

chunkdim

分塊的維度資訊。

string

和原始raster一致。

當chunking=true時該參數才有效。

chunktable

分塊表名稱。

string

''

如果傳入''或NULL,則會產生一個隨機表名的臨時塊表用於存放資料。 該暫存資料表只在當前會話中有效。如果需要保持一個可訪問的裁剪對象,則需要指定塊表名稱。

compression

壓縮演算法類型。

string

和原始raster一致。

當前支援的類型如下:

  • NONE

  • JPEG

  • ZLIB

  • PNG

  • LZO

  • LZ4

quality

壓縮品質。

integer

和原始raster一致。

取值範圍為:1~99。

當compression參數為JPEG時該參數才有效。

interleaving

交錯方式。

string

和原始raster一致。

必須是以下一種:

  • bip:Band interleaved by pixel

  • bil:Band interleaved by line

  • bsq:Band Sequential

endian

位元組序。

string

和原始raster一致。

必須是以下一種:

  • NDR:Little endian

  • XDR:Big endian

celltype

像素類型。

string

和原始raster一致。

必須為以下之一:

  • 1bb:1 bit

  • 2bui:2 bit unsigned integer

  • 4bui:4 bit unsigned integer

  • 8bsi:8 bit signed integer

  • 8bui:8 bit unsigned integer

  • 16bsi:16 bit signed integer

  • 16bui:16 bit unsigned integer

  • 32bsi:32 bit signed integer

  • 32bui:32 bit unsigned integer

  • 64bsi:64 bit signed integer

  • 64bui:64 bit unsigned integer

  • 32bf:32 bit float

  • 64bf:64 bit float

parallelOptions是基於JSON格式的字串,用於描述操作選項。支援的參數如下:

參數名稱

描述

類型

預設值

說明

parallel

操作並行度。

integer

ganos.parallel.degree

並行度範圍為1~64。

描述

將影像進行線性展開後作為一個新的raster進行返回。

  • 形式一:需要預先使用ST_BuildPercentiles或ST_ComputeStatisticsFunction Compute百分比資訊,根據像素值的百分比展開到像素值範圍。

    例如:長條圖範圍範圍為33~206,將最小和最大裁剪百分比定義為2。如果最小端的2%表示33~45之間的值,最大端的2%表示198~206之間的值,33~45之間的值將變為0,而198~206之間的值將變為255,長條圖中其他的所有值在0~255之間重新分配。

  • 形式二:將會根據使用者指定最小和最大值展開到像素類型的最小和最大值範圍。

    例如,在8位元據集中,最小值和最大值可為35和206。線性展開用於在256個值(0 到 255)之間分布值。由於像素值分布在整個長條圖範圍內,從而提高了影像的亮度和對比,這使得影像中的要素更加易於區分。

樣本

情境一:對影像進行Linear 2%展開。

INSERT INTO raster_table
SELECT 100, ST_LinearStretch(rast,
                             1,
                             '0-2',
                             2,  -- min ratio
                             98, -- max ratio
                             '{"chunktable":"chunk_table", "chunking":true}',
                             '{"parallel":4}')
FROM raster_table
WHERE id=1;

情境二:將影像展開到100~200範圍。

INSERT INTO raster_table
SELECT 200, ST_LinearStretch(rast,
                             ARRAY[100,100, 100]::float8[],  -- min values
                             ARRAY[200,200, 200]::float8[],  -- max values
                             0,
                             '0-2',
                             '{"chunktable":"chunk_table", "chunking":true}',
                             '{"parallel":4}')
FROM raster_table
WHERE id=1;