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 |
|
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 | 元のラスターと同じ | 値は、次のいずれかの型である必要があります。
|
endian | エンディアン。 | String | 元のラスターと同じ | 値は、次のいずれかの型である必要があります。
|
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 から