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

PolarDB:ST_Reclassify

最終更新日:Jul 01, 2024

ST_Reclassify関数はラスタオブジェクトを返します。 返されたオブジェクトは、元の画像と同じ空間参照と解像度を持ちます。 バンドの数はreclassexprパラメータによって指定されます。

構文

raster ST_Reclassify(raster raster_obj,
        cstring reclassexpr default NULL
         cstring storageOption default '')

パラメーター

パラメーター

説明

raster_obj

再分類するラスタオブジェクト。

reclassexpr

JSON文字列は、分類の数値間隔を示すために使用されます。

storageOption

返された結果でJSON文字列で表されるストレージオプション。

reclassexprパラメーターは、JSON文字列配列を示します。 各子JSONオブジェクトは、バンド操作パラメーターを示します。 下表に、各パラメーターを説明します。

パラメーター

説明

データ型

デフォルト値

ノート

band

バンドシーケンス番号。

integer

なし

バンドのシーケンス番号は 0 から始まります。

remap

分類に使用されるパラメーター。

object

-

-

nodata

nodataを使用するかどうかを指定します。

Boolean

false

  • このパラメーターをtrueに設定すると、ピクセル値はnodataになり、分類結果もnodataになります。

  • このパラメーターをfalseに設定すると、nodata以外の値は一般的な数値として計算されます。

nodataValue

nodata値。

float8

0

新しいnodata値。The new nodata value.

remapパラメータは、元のピクセル値を新しいピクセル値にマッピングする方法を指定します。

  • キーは元のピクセル値の範囲を示し、コンマ (,) で区切られた1つ以上の数値で構成されます。 開始と終了でオープンまたはクローズの範囲を指定できます。

    • 左括弧「 (」はより大きいことを示します。)

    • 右括弧「) 」は、未満を示します。

    • 右括弧「] 」は、以下を示す。

    • 左括弧「 [」は、以上を示す。

    デフォルト値は (] です。

  • この値は、元のピクセル値から新しいピクセル値へのマッピングの結果を示し、コンマ (,) で区切られた1つ以上の数値で構成されます。

  • 3つのマッピング方法があります。

    • 範囲から範囲へのマッピング: 元のピクセル範囲と新しいピクセル範囲の数値は同じです。 例: 「300,400,500」: 「80,90、100」および「 [300,400,500] 」: 「80,90、100」。

    • 範囲から値へのマッピング: 元のピクセル範囲には、新しいピクセル範囲より1つ多くの数値があります。 例: "(300,400,500]":"80,90" 。

    • 値から値へのマッピング: 元のピクセル範囲と新しいピクセル範囲の両方に1つの数値のみがあります。 例: "10":"1" 。

  • ピクセル値がマッピング範囲に属さない場合、そのピクセル値はnodata値と見なされる。

  • 複数の範囲に同じピクセル値を含めることはできません。

    • 例 1

      次の例は、バンド0を再分類する方法を示しています。

      0<old_value<=100の場合の

      
          new_value = 20
      else if100<old_value<=200
          new_value = 50
      else
          new_value = 0 
      [ 
         { 
            "バンド":0、
            "remap":{ 
                  "(0,100,200]":"20,50"
            }
         }
      ]
    • 例 2

      複数のセグメント値がサポートされています。 範囲を超えるピクセル値はnodata値に設定されます。

      [ 
         { 
            "バンド":0、
            "remap":{ 
                  "(0,100,200]":"20,50" 、
                  "(300,400,500]":"80,90、100"
            }
         }
      ]
    • 例 3

      次の例は、バンド0を再分類する方法を示しています。

      0<old_value<=100の場合の

      
          new_value = 20
      else if100<old_value<=200
          new_value = 50
      else
          new_value = 999 

      次の例は、バンド1を再分類する方法を示しています。

      <old_value<=600 400の場合は

      
          new_value = 20 +(old_value-400)/200 * (90-20)
      else if600<old_value<=800
          new_value = 90 +(old_value-600)/200 * (130-90)
      else
          new_value = 0 
      [ 
         { 
            "band":0,
            "remap":{
               "(0,100,200]":"20,50"
            },
            "nodata":true,
            "nodataValue":999
         },
         { 
            "band":1,
            "remap":{
              "(400,600,800]":"20,90,130"
            },
            "nodata":false,
            "nodataValue":0
         }
      ]

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

パラメーター

説明

データ型

デフォルト値

ノート

chunking

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

Boolean

元のラスターと同じ

-

chunkdim

チャンクに関するディメンション情報。

String

元のラスターと同じ

このパラメーターは、チャンキングパラメーターがtrueに設定されている場合にのみ有効です。

chunktable

チャンクテーブルの名前です。

String

''

「」値が渡されると、ランダムな名前を持つ一時チャンクテーブルが生成され、データが格納されます。 この一時テーブルは、現在のセッションでのみ有効です。 アクセス可能なクリッピングオブジェクトを保持する必要がある場合は、チャンクテーブルの名前を指定する必要があります。

compression

圧縮アルゴリズムのタイプです。

String

元のラスターと同じ

none、jpeg、zlib、png、lzo、lz4のみがサポートされます。

quality

圧縮品質です。

integer

元のラスターと同じ

このパラメーターは、jpeg圧縮アルゴリズムに対してのみ有効です。

interleaving

インターリーブ方法。

String

元のラスターと同じ

値は、次のいずれかの型である必要があります。

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

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

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

endian

エンディアン。

String

元のラスターと同じ

値は、次のいずれかの型である必要があります。

  • NDR: 少しエンディアン

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

celltype

ピクセルタイプ。

String

元のラスターと同じ

-

-- Create a permanent table.
CREATE TABLE rast_reclassify_result(id integer, rast raster);
-- Create a temporary table.
CREATE TEMP TABLE rast_reclassify_result_temp(id integer, rast raster);

-- Store the result in a temporary table.
INSERT INTO rast_reclassify_result_temp(id, rast) 
select 1, ST_Reclassify(rast, '[{"band":0,"remap":{"(0,100,200]":"20,50"}}]') 
from reclass_table 

から