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

ApsaraDB RDS:ST_Resize

最終更新日:Jan 15, 2024

このトピックでは、ST_Resize関数について説明します。 この関数は、ラスターオブジェクトのピクセル範囲のサイズを変更しますが、地理空間データ範囲は変更されません。

構文

raster ST_Resize(raster rast、
         整数outWidth,
          整数outHeight,
      cstring processexprデフォルト '',         
            cstring storageOptionデフォルト '') 

パラメーター

パラメーター 説明
ラスト ピクセル範囲のサイズを変更する元のラスターオブジェクト。
outWidth 新しいラスターオブジェクトの幅 (ピクセル単位) 。
outHeight 新しいラスターオブジェクトの高さ (ピクセル単位) 。
processExpr ピクセルをリサンプリングし、nodata値を処理する方法を指定するJSON文字列。
storageOption 新しいラスターオブジェクトを格納する方法を指定するJSON文字列。

processExprパラメーターで指定されたJSON文字列の各子JSONオブジェクトは、フィールドを表します。 次の表に、これらのフィールドを示します。

フィールド 説明 データ型 デフォルト値 設定ノート
resample ピクセルを再サンプリングするために使用される方法。 text 近く 有効な値: Near | Average | Cubic | Bilinear。
ノデータ 元のラスタオブジェクトのnodata値が有効かどうかを指定します。 Boolean false
  • このフィールドをtrueに設定すると、nodata値は有効になり、nodata値を持つピクセルは再サンプリングされません。
  • このフィールドをfalseに設定すると、nodata値は無効になり、nodata値を持つピクセルは再サンプリングされます。
nodataValue 新しいラスタオブジェクトのバンドに基づいて指定された新しいnodata値。

float8

float8[]

NULL nodataValueフィールドで1つ以上のnodata値を指定できます。
  • 1つのnodata値を指定した場合、このnodata値は新しいラスタオブジェクトのすべてのバンドに使用されます。
  • 複数のnodata値を指定する場合、指定されるnodata値の数は、新しいラスターオブジェクトのバンドの数と同じでなければなりません。
説明 nodataフィールドとnodataValueフィールドを指定するときは注意してください。 元のラスターオブジェクトにnodata値を持つピクセルがない場合は、nodataフィールドをfalseに設定し、nodataValueフィールドを指定しないことを推奨します。 さもなければ、画像アーチファクトが発生し得る。

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

フィールド 説明 データ型 デフォルト値 設定ノート
チャンキング 新しいラスターオブジェクトをチャンクとして保存するかどうかを指定します。 Boolean 元のラスターオブジェクトと同じ N/A
chunkdim 新しいラスタオブジェクトをチャンクとして格納するために使用されるディメンション。 String 元のラスターオブジェクトと同じ このフィールドは、チャンキングフィールドがtrueに設定されている場合にのみ有効です。
chunktable チャンクテーブルの名前です。 String null 文字列 (") デフォルトでは、データを格納するためにランダムな名前の一時チャンクテーブルが生成されます。 この一時チャンクテーブルは、現在のセッションでのみ有効です。 新しいラスターオブジェクトを永続的に保存するには、chunktableフィールドに永続チャンクテーブルを作成するように指定する必要があります。
compression 画像圧縮に使用される形式。 String 元のラスターオブジェクトと同じ None、JPEG、Zlib、PNG、LZO、LZ4の6つの圧縮形式がサポートされています。
品質 新しいラスターオブジェクトの画質。 Integer 元のラスターオブジェクトと同じ このフィールドはJPEG形式でのみ有効です。
interleaving 新しいラスタオブジェクトのインターリーブタイプ。 String 元のラスターオブジェクトと同じ 有効な値:
  • bip : ピクセルでインターリーブされたバンド (BIP)
  • bil : ラインでインターリーブされたバンド (BIL)
  • bsq : バンドシーケンシャル (BSQ)
エンディアン 新しいラスタオブジェクトのエンディアン形式。 String 元のラスターオブジェクトと同じ 有効な値:
  • NDR: リトルエンディアン形式を指定します。
  • XDR: ビッグエンディアン形式を指定します。
説明 chunktableフィールドをNULLまたはnull文字列 ('') に設定すると、現在のセッションでランダムな名前の一時チャンクテーブルが生成され、新しいラスターオブジェクトが格納されます。 一時チャンクテーブルは現在のセッションでのみ有効であり、現在のセッションが終了した直後に削除されます。 新しいラスターオブジェクトを永続的に保存するには、chunktableフィールドに永続チャンクテーブルを作成するように指定する必要があります。

CREATE TABLEが存在しない場合はdatasource_table(id integer, rast raster);
INSERT INTO datasource_table値 (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","interleing":":" bsq "," chunktable ":"
datasource_tableから
id =1;

-- nodataValueフィールドで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","interleating":"bsq","chunktable"
datasource_tableから
id =1;

-- nodataValueフィールドに複数の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","," "result_rbt"}')
datasource_tableから
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 "}')
datasource_tableから
id =1;