この関数は、ラスターを線形に引き伸ばして新しいラスターを返すために使用されます。
構文
構文1
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 '{}')
構文2
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 | クエリするラスター。The raster that you want to query. |
pyramidLevel | ストレッチしたいピラミッドレベル。 有効な値は0から始まります。 デフォルト値:0 |
bands | ストレッチするバンドのID。 例: |
storageOption | ストレージオプションで構成されるJSON文字列。 詳細については、このトピックの「storageOption」の表を参照してください。 |
parallelOption | 並列操作オプションで構成されるJSON文字列。 詳細については、このトピックの「parallelOption」の表を参照してください。 |
minRatio | ラスターのストレッチに基づく最小パーセンタイル。 有効値: 0~100。 |
maxRatio | ラスターのストレッチに基づく最大パーセンタイル。 有効値: 0~100。 このパラメーターの値は、minRatioパラメーターの値より大きくなければなりません。 |
minValues | 最小値で構成される配列。 最小値の数は、ストレッチするバンドの数と同じである必要があります。 |
maxValues | 最大値で構成される配列。 最大値の数は、ストレッチするバンドの数と同じである必要があります。 |
次の表に、storageOptionパラメーターのパラメーターを示します。
パラメーター | 説明 | データ型 | デフォルト値 | 補足 |
chunking | 新しいラスターのデータをチャンクとして保存するかどうかを指定します。 | Boolean | 元のラスターの値と同じです。 | なし。 |
chunkdim | システムが新しいラスターのデータをチャンクする元のディメンション。 | String | 元のラスターの値と同じです。 | このパラメーターは、 |
chunktable | 新しいラスターのデータを格納するチャンクテーブルの名前。 | String |
|
|
compression | システムが新しいラスターのデータを圧縮する形式。 | String | 元のラスターの値と同じです。 | 有効な値:
|
quality | 圧縮後の新しいラスターの画質。 | integer | 元のラスターの値と同じです。 | 有効な値: 1 ~ 99。 このパラメーターは、compressionパラメーターをJPEGに設定した場合にのみ有効です。 |
interleaving | 新しいラスタのデータをインターリーブするために使用されるメソッド。 | String | 元のラスターの値と同じです。 | 有効な値:
|
endian | 新しいラスターのエンディアン形式です。 | String | 元のラスターの値と同じです。 | 有効な値:
|
celltype | 新しいラスターのピクセルタイプ。 | String | 元のラスターの値と同じです。 | 有効な値:
|
次の表に、parallelOptionsパラメーターのパラメーターを示します。
パラメーター | 説明 | データ型 | デフォルト値 | 補足 |
arallel | 許可されている並列処理の程度。 | integer | 有効な値: 1 ~ 64。 |
説明
この関数は、ラスターを線形に伸ばし、新しいラスターを返します。
方法1: ST_BuildPercentiles関数またはST_ComputeStatistics関数を使用して、パーセンタイルを計算します。 次に、パーセンタイルに基づいて元のラスターをストレッチします。
例えば、ヒストグラムの画素値は33〜206の範囲内であり、最小パーセンタイル及び最大パーセンタイルは2% に設定される。 これは、最小百分位数未満の画素値の2% が33〜45の範囲内にあり、最大百分位数を超える画素値の2% が198〜206の範囲内にあることを意味する。 この場合、33〜45の範囲内の画素値は0に変換され、198〜206の範囲内の画素値は255に変換され、ヒストグラム内の他の全ての画素値は0〜255の範囲内に再分配される。
方法2: minValuesパラメーターで指定された最小範囲とmaxValuesパラメーターで指定された最大範囲に基づいて、元のラスターをストレッチします。
例えば、8ビットのデータセットにおいて、最小値は35であり、最大値は206である。 この関数は、元のラスターのピクセル値をヒストグラム全体で0〜255の範囲内で分散させます。 このようにして、画像の明るさとコントラストが向上し、画像内の要素を区別しやすくなります。
例
例1: 最小パーセンテージと最大パーセンテージが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;
例2: 指定したすべてのバンドで200する100範囲にラスターをストレッチします。
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;