將影像進行線性展開,作為一個新的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一致。 | 當前支援的類型如下:
|
quality | 壓縮品質。 | integer | 和原始raster一致。 | 取值範圍為:1~99。 當compression參數為JPEG時該參數才有效。 |
interleaving | 交錯方式。 | string | 和原始raster一致。 | 必須是以下一種:
|
endian | 位元組序。 | string | 和原始raster一致。 | 必須是以下一種:
|
celltype | 像素類型。 | string | 和原始raster一致。 | 必須為以下之一:
|
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;