この関数は、ラスターを線形に引き伸ばして新しいラスターを返すために使用されます。
構文
- 構文1
ラスターST_LinearStretch(raster raster_obj、 integer pyramidLevel default 0, cstring bands default '', integer minRatioデフォルト0、 integer maxRatioのデフォルト100、 cstring storageOption default ''、 cstring parallelOptionのデフォルト '{}')
- 構文2
ラスターST_LinearStretch(raster raster_obj、 float8[] minValues, float8[] maxValues, integer pyramidLevel default 0, cstring bands default '', cstring storageOption default ''、 cstring parallelOptionのデフォルト '{}')
パラメーター
パラメーター | 説明 |
raster_obj | クエリするラスター。The raster that you want to query. |
pyramidLevel | ストレッチしたいピラミッドレベル。 有効な値は0から始まります。 デフォルト値:0 |
バンド | ストレッチするバンドのID。 例: '0-2 ' および '1,2,3' 有効なバンドIDは0 から始まります。 デフォルト値:'' デフォルト値は、ラスターのすべてのバンドを指定します。 |
storageOption | ストレージオプションで構成されるJSON文字列。 詳細については、このトピックの「storageOption」の表を参照してください。 |
parallelOption | 並列操作オプションで構成されるJSON文字列。 詳細については、このトピックの「parallelOption」の表を参照してください。 |
minRatio | ラスターのストレッチに基づく最小パーセンタイル。 有効値: 0~100。 |
maxRatio | ラスターのストレッチに基づく最大パーセンタイル。 有効値: 0~100。 このパラメーターの値は、minRatioパラメーターの値より大きくなければなりません。 |
minValues | 最小値で構成される配列。 最小値の数は、ストレッチするバンドの数と同じである必要があります。 |
maxValues | 最大値で構成される配列。 最大値の数は、ストレッチするバンドの数と同じである必要があります。 |
次の表に、storageOptionパラメーターのパラメーターを示します。
パラメーター | 説明 | データ型 | デフォルト値 | 補足 |
チャンキング | 新しいラスターのデータをチャンクとして保存するかどうかを指定します。 | Boolean | 元のラスターの値と同じです。 | なし。 |
chunkdim | システムが新しいラスターのデータをチャンクする元のディメンション。 | String | 元のラスターの値と同じです。 | このパラメーターは、chunking パラメーターをtrueに設定した場合にのみ有効です。 |
chunktable | 新しいラスターのデータを格納するチャンクテーブルの名前。 | String | '' | " またはNULL値を指定した場合、ランダムな名前の一時チャンクテーブルが生成され、データが格納されます。 一時チャンクテーブルは、現在のセッションでのみ有効です。 新しいラスターの永続的なチャンクテーブルを作成するには、チャンクテーブルの名前を指定する必要があります。 |
compression | システムが新しいラスターのデータを圧縮する形式。 | String | 元のラスターの値と同じです。 | 有効な値:
|
品質 | 圧縮後の新しいラスターの画質。 | integer | 元のラスターの値と同じです。 | 有効な値: 1 ~ 99。 このパラメーターは、compressionパラメーターをJPEGに設定した場合にのみ有効です。 |
interleaving | 新しいラスタのデータをインターリーブするために使用されるメソッド。 | String | 元のラスターの値と同じです。 | 有効な値:
|
エンディアン | 新しいラスターのエンディアン形式です。 | String | 元のラスターの値と同じです。 | 有効な値:
|
セルタイプ | 新しいラスターのピクセルタイプ。 | String | 元のラスターの値と同じです。 | 有効な値:
|
次の表に、parallelOptionsパラメーターのパラメーターを示します。
パラメーター | 説明 | データ型 | デフォルト値 | 補足 |
パラレル | 許可されている並列処理の程度。 | integer | ganos.parallel.degree | 有効な値: 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、-- 最小の比率
98、-最大比率
'{"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値
ARRAY[200,200、200]::float8[] 、-- max値
0,
'0-2 '、
'{"chunktable":"chunk_table" 、"chunking":true}' 、
'{"parallel":4}')
FROM raster_table
WHERE id=1;