すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_LinearStretch

最終更新日:Jul 02, 2024

この関数は、ラスターを線形に引き伸ばして新しいラスターを返すために使用されます。

構文

  • 構文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。 例: '0-2 'および '1,2,3' 有効なバンドIDは0から始まります。 デフォルト値:'' デフォルト値は、ラスターのすべてのバンドを指定します。

storageOption

ストレージオプションで構成されるJSON文字列。 詳細については、このトピックの「storageOption」の表を参照してください。

parallelOption

並列操作オプションで構成されるJSON文字列。 詳細については、このトピックの「parallelOption」の表を参照してください。

minRatio

ラスターのストレッチに基づく最小パーセンタイル。 有効値: 0~100。

maxRatio

ラスターのストレッチに基づく最大パーセンタイル。 有効値: 0~100。 このパラメーターの値は、minRatioパラメーターの値より大きくなければなりません。

minValues

最小値で構成される配列。 最小値の数は、ストレッチするバンドの数と同じである必要があります。

maxValues

最大値で構成される配列。 最大値の数は、ストレッチするバンドの数と同じである必要があります。

次の表に、storageOptionパラメーターのパラメーターを示します。

パラメーター

説明

データ型

デフォルト値

補足

chunking

新しいラスターのデータをチャンクとして保存するかどうかを指定します。

Boolean

元のラスターの値と同じです。

なし。

chunkdim

システムが新しいラスターのデータをチャンクする元のディメンション。

String

元のラスターの値と同じです。

このパラメーターは、chunkingパラメーターをtrueに設定した場合にのみ有効です。

chunktable

新しいラスターのデータを格納するチャンクテーブルの名前。

String

''

"またはNULL値を指定した場合、ランダムな名前の一時チャンクテーブルが生成され、データが格納されます。 一時チャンクテーブルは、現在のセッションでのみ有効です。 新しいラスターの永続的なチャンクテーブルを作成するには、チャンクテーブルの名前を指定する必要があります。

compression

システムが新しいラスターのデータを圧縮する形式。

String

元のラスターの値と同じです。

有効な値:

  • NONE

  • JPEG

  • ZLIB

  • PNG

  • LZO

  • LZ4

quality

圧縮後の新しいラスターの画質。

integer

元のラスターの値と同じです。

有効な値: 1 ~ 99。

このパラメーターは、compressionパラメーターをJPEGに設定した場合にのみ有効です。

interleaving

新しいラスタのデータをインターリーブするために使用されるメソッド。

String

元のラスターの値と同じです。

有効な値:

  • bip : ピクセルでインターリーブされたバンド (BIP)

  • bil : ラインでインターリーブされたバンド (BIL)

  • bsq : バンドシーケンシャル (BSQ)

endian

新しいラスターのエンディアン形式です。

String

元のラスターの値と同じです。

有効な値:

  • NDR: 少しエンディアン

  • XDR: ビッグエンディアン

celltype

新しいラスターのピクセルタイプ。

String

元のラスターの値と同じです。

有効な値:

  • 1bb: 1ビットのブール値

  • 2bui: 2ビット符号なし整数

  • 4bui: 4ビット符号なし整数

  • 8bsi: 8ビット符号付き整数

  • 8bui: 8ビット符号なし整数

  • 16bsi: 16ビット符号付き整数

  • 16bui: 16ビット符号なし整数

  • 32bsi: 32ビット符号付き整数

  • 32bui: 32ビット符号なし整数

  • 64bsi: 64ビット符号付き整数

  • 64bui: 64ビット符号なし整数

  • 32bf: 32ビット浮動数

  • 64bf: 64ビット浮動数

次の表に、parallelOptionsパラメーターのパラメーターを示します。

パラメーター

説明

データ型

デフォルト値

補足

arallel

許可されている並列処理の程度。

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,  -- 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;