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

ApsaraDB RDS:ST_Transform

最終更新日:Jan 15, 2024

このトピックでは、ST_Transform関数について説明します。 この関数は、ラスターオブジェクトの基本座標を既知の空間参照系から別のものに変換します。

構文

raster ST_Transform(raster rast、
         整数outSrid,
     cstring processexprデフォルト '',
      cstring storageOptionデフォルト '') 

パラメーター

パラメーター説明
ラスト座標を変換する元のラスターオブジェクト。
outSrid新しいラスタオブジェクトの空間参照システム。 このパラメーターの値は、spatial_ref_sysテーブルから照会できる有効なSIRDである必要があります。
processExprピクセルをリサンプリングし、nodata値を処理する方法を指定するJSON文字列。
storageOption新しいラスターオブジェクトを格納する方法を指定するJSON文字列。

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

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

float8

float8[]

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

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

フィールド説明データ型デフォルト値設定ノート
チャンキング新しいラスターオブジェクトをチャンクとして保存するかどうかを指定します。Boolean元のラスターオブジェクトと同じN/A
chunkdim新しいラスタオブジェクトをチャンクとして格納するために使用されるディメンション。String元のラスターオブジェクトと同じこのフィールドは、チャンキングフィールドがtrueに設定されている場合にのみ有効です。
chunktableチャンクテーブルの名前です。Stringnull 文字列 (")デフォルトでは、データを格納するためにランダムな名前の一時チャンクテーブルが生成されます。 この一時チャンクテーブルは、現在のセッションでのみ有効です。 新しいラスターオブジェクトを永続的に保存するには、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_transform_result(id integer, rast raster);

-- nodataフィールドを指定しない場合:
INSERT INTO rat_transform_result(id, rast)
select 10, ST_Transform(rast,32652, '{"resample":"Near","nodata":false}','{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleating":"bsq","chunktable":"result_rbt"}')
datasource_tableから
id =1;

-- nodataValueフィールドで1つのnodata値を指定し、nodata値を持つピクセルがリサンプリングされる場合:
INSERT INTO rat_transform_result(id, rast)
select 11, ST_Transform(rast,32652, '{"resample":"Near","nodata":true,"nodatavalue":255}','{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"" bsq "," chunktable"
datasource_tableから
id =1;

-- nodataValueフィールドに複数のnodata値を指定した場合:
INSERT INTO rat_transform_result(id, rast)
select 12, ST_Transform(rast,32652, '{"resample":"Near","nodata":false,"nodatavalue":[255,255,255]}','{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleaving":"bsq","," chunktable "" result_rbt "}')
datasource_tableから
id =1;

----------------------------------------------------
-- メソッド2: chunktableフィールドを指定しないでください。 新しいラスターオブジェクトは、ランダムな名前で一時チャンクテーブルに保存され、現在のセッションでネストされた計算にのみ使用できます。
----------------------------------------------------
CREATE TEMP TABLE rat_transform_result_temp(id integer, rast raster);

INSERT INTO rast_clip_result_temp(id, rast)
select 1, ST_Transform(rast,32652,'{"resample":"Near","nodata":false, "nodataValue":[255,255,255]}','{"chunking":true,"chunkdim":"(256,256,1)","compression":"none","interleating":"bsq"}')
datasource_tableから
id =1;