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

PolarDB:ST_Reclassify

最終更新日:Jun 21, 2024

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

構文

ラスターST_Reclassify (ラスターraster_obj、
        cstring reclassexprデフォルトNULL
         cstring storageOptionデフォルト '') 

パラメーター

パラメーター説明
raster_obj再分類するラスタオブジェクト。
reclassexprJSON文字列は、分類の数値間隔を示すために使用されます。
storageOption返された結果でJSON文字列で表されるストレージオプション。

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

パラメーター説明データ型デフォルト値ノート
バンドバンドシーケンス番号。integerなしバンドのシーケンス番号は 0 から始まります。
remap分類に使用されるパラメーター。object--
ノデータnodataを使用するかどうかを指定します。Booleanfalse
  • このパラメーターをtrueに設定すると、ピクセル値はnodataになり、分類結果もnodataになります。
  • このパラメーターをfalseに設定すると、nodata以外の値は一般的な数値として計算されます。
nodataValuenodata値。float80新しい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 
      [ 
         { 
            "バンド":0、
            "remap":{
               "(0,100,200]":"20,50"
            },
            "nodata":true、
            "nodataValue":999
         },
         { 
            "バンド":1、
            "remap":{
              "(400,600,800]":"20,90、130"
            },
            "nodata":false、
            "nodataValue":0
         }
      ]

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

パラメーター説明データ型デフォルト値ノート
チャンキングデータをチャンクとして保存するかどうかを指定します。Boolean元のラスターと同じ-
chunkdimチャンクに関するディメンション情報。String元のラスターと同じこのパラメーターは、チャンキングパラメーターがtrueに設定されている場合にのみ有効です。
chunktableチャンクテーブルの名前です。String''「」値が渡されると、ランダムな名前を持つ一時チャンクテーブルが生成され、データが格納されます。 この一時テーブルは、現在のセッションでのみ有効です。 アクセス可能なクリッピングオブジェクトを保持する必要がある場合は、チャンクテーブルの名前を指定する必要があります。
compression圧縮アルゴリズムのタイプです。String元のラスターと同じnone、jpeg、zlib、png、lzo、lz4のみがサポートされます。
品質圧縮品質です。integer元のラスターと同じこのパラメーターは、jpeg圧縮アルゴリズムに対してのみ有効です。
interleavingインターリーブ方法。String元のラスターと同じ値は、次のいずれかの型である必要があります。
  • bip : ピクセルでインターリーブされたバンド (BIP)
  • bil : ラインでインターリーブされたバンド (BIL)
  • bsq : バンドシーケンシャル (BSQ)
エンディアンエンディアン。String元のラスターと同じ値は、次のいずれかの型である必要があります。
  • NDR: 少しエンディアン
  • XDR: ビッグエンディアン
セルタイプピクセルタイプ。String元のラスターと同じ-

-- 永続テーブルを作成します。
CREATE TABLE rast_reclassify_result(id integer, rast raster);
-- 一時テーブルを作成します。
CREATE TEMP TABLE rast_reclassify_result_temp(id integer, rast raster);

-結果を一時テーブルに保存します。
INSERT INTO rast_reclassify_result_temp(id, rast)
select 1, ST_Recclassify (rast, '[{"band":0,"remap":{"(0,100,200]":"20,50"}}]')
reclass_table
から