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

ApsaraDB RDS:ST_Resize

最終更新日:Mar 28, 2026

地理空間的範囲を変更せずに、ラスターオブジェクトのピクセル範囲のサイズを変更します。

構文

raster ST_Resize(raster rast,
           integer outWidth,
           integer outHeight,
           cstring processExpr default '',
           cstring storageOption default '')

パラメーター

パラメーター説明
rastサイズ変更するラスターオブジェクト。
outWidth出力ラスターオブジェクトの幅 (ピクセル単位)。
outHeight出力ラスターオブジェクトの高さ (ピクセル単位)。
processExprピクセルのリサンプリングと nodata 値の処理を制御する JSON 文字列。
storageOption出力ラスターオブジェクトの保存方法を制御する JSON 文字列。

processExpr フィールド

processExpr JSON 文字列の各キーと値のペアは、以下で説明するフィールドにマップされます。

フィールドデフォルト説明
resampletextNearリサンプリングメソッド。有効な値:NearAverageCubicBilinear
nodataBooleanfalseソースラスターオブジェクトの nodata 値を有効な値として扱うかどうかを指定します。true に設定した場合、nodata 値を持つピクセルはリサンプリングされません。false に設定した場合、nodata 値を持つピクセルはリサンプリングされます。
nodataValuefloat8 | float8[]NULL出力ラスターオブジェクトのバンドに割り当てる nodata 値。すべてのバンドに適用するには 1 つの値を指定し、バンドごとに適用するにはバンドごとに 1 つの値を指定します。値の数はバンドの数と一致する必要があります。
説明 ソースラスターオブジェクトに nodata 値を持つピクセルがない場合は、nodatafalse に設定し、nodataValue を省略してください。そうしないと、画像アーティファクトが発生する可能性があります。

storageOption フィールド

フィールドデフォルト説明
chunkingBooleanソースと同じ出力ラスターオブジェクトをチャンクとして保存するかどうかを指定します。
chunkdimStringソースと同じチャンクディメンション。chunkingtrue の場合にのみ有効です。
chunktableString'' (空の文字列)チャンクテーブルの名前。NULL または空の文字列に設定した場合、出力はランダムな名前を持つ一時チャンクテーブルに保存され、現在のセッションでのみ有効です。出力を永続化するには、永続的なチャンクテーブル名を指定します。
compressionStringソースと同じ圧縮形式。有効な値:NoneJPEGZlibPNGLZOLZ4
qualityIntegerソースと同じJPEG 画像の品質。compressionJPEG の場合にのみ有効です。
interleavingStringソースと同じインターリーブタイプ。有効な値:bip (ピクセル単位のバンドインターリーブ、BIP)、bil (ライン単位のバンドインターリーブ、BIL)、bsq (バンドシーケンシャル、BSQ)。
endianStringソースと同じバイトオーダー。有効な値:NDR (リトルエンディアン)、XDR (ビッグエンディアン)。
説明 chunktableNULL または空の文字列の場合、出力は現在のセッションが終了すると削除される一時チャンクテーブルに保存されます。出力を永続的に保存するには、チャンクテーブル名を指定してください。

CREATE TABLE IF NOT EXISTS datasource_table(id integer, rast raster);
INSERT INTO datasource_table VALUES(1, ST_ImportFrom('rbt','$(RAST_DATA_DIR)/512_512_1_bsq_8u_geo.tif', '{}'));

方法 1:永続的なチャンクテーブルの指定

名前付きの chunktable を使用して、出力ラスターオブジェクトを永続化します。

CREATE TABLE rat_resize_result(id integer, rast raster);

-- nodata フィールドが指定されていません
INSERT INTO rat_resize_result(id, rast)
SELECT 10, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

-- すべてのバンドに単一の nodata 値を適用し、nodata ピクセルはリサンプリングされません
INSERT INTO rat_resize_result(id, rast)
SELECT 11, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":true,"nodatavalue":255}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

-- バンドごとに複数の nodata 値
INSERT INTO rat_resize_result(id, rast)
SELECT 12, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false,"nodatavalue":[255,255,255]}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","chunktable":"result_rbt"}')
FROM datasource_table
WHERE id = 1;

方法 2:一時チャンクテーブルの使用

chunktable を省略すると、出力はセッションスコープの一時テーブルに保存されます。結果は現在のセッションでネストされた計算に利用でき、セッションが終了すると削除されます。

CREATE TEMP TABLE rat_resize_result_temp(id integer, rast raster);

INSERT INTO rat_resize_result_temp(id, rast)
SELECT 1, ST_Resize(rast, 1024, 1024,
  '{"resample":"Near","nodata":false,"nodataValue":[255,255,255]}',
  '{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq"}')
FROM datasource_table
WHERE id = 1;