All Products
Search
Document Center

ApsaraDB RDS:ST_Transform

Last Updated:Mar 30, 2026

ST_Transform mereproyeksikan objek raster dari satu sistem referensi spasial (SRS) ke sistem lain dengan mentransformasikan koordinat dasarnya dan melakukan resampling nilai piksel.

Sintaksis

raster ST_Transform(raster rast,
           integer outSrid,
           cstring processExpr default '',
           cstring storageOption default '')

Parameter

ParameterDeskripsi
rastObjek raster sumber yang akan direproyeksikan.
outSridSRID dari sistem referensi spasial target. Harus merupakan SRID yang valid dari tabel spatial_ref_sys.
processExprString JSON yang mengontrol resampling piksel dan penanganan nilai nodata.
storageOptionString JSON yang mengontrol cara penyimpanan raster hasil.

Bidang processExpr

BidangTipeBawaanDeskripsi
resampleTextNearAlgoritma resampling. Nilai yang valid: Near, Average, Cubic, Bilinear.
nodataBooleanfalseMenentukan apakah nilai nodata pada raster sumber diperlakukan sebagai valid. Jika true, piksel dengan nilai nodata tidak di-resample. Jika false, piksel dengan nilai nodata di-resample.
nodataValuefloat8 atau float8[]NULLNilai nodata yang akan ditetapkan untuk band raster hasil. Tentukan satu nilai untuk menerapkannya ke semua band, atau array berisi satu nilai per band.
Peringatan

Tetapkan nodata dan nodataValue dengan hati-hati. Jika raster sumber tidak memiliki piksel dengan nilai nodata, atur nodata menjadi false dan abaikan nodataValue. Jika tidak, artefak gambar dapat terjadi.

Bidang storageOption

BidangTipeBawaanDeskripsi
chunkingBooleanSama seperti sumberMenentukan apakah raster hasil disimpan dalam bentuk chunk.
chunkdimStringSama seperti sumberDimensi chunk. Hanya berlaku jika chunking bernilai true.
chunktableString'' (string kosong)Nama tabel chunk untuk penyimpanan permanen. Jika kosong atau NULL, tabel chunk temporary dengan nama acak dibuat dan dihapus saat sesi berakhir. Untuk menyimpan raster hasil secara permanen, tentukan nama tabel.
compressionStringSama seperti sumberFormat kompresi. Nilai yang valid: None, JPEG, Zlib, PNG, LZO, LZ4.
qualityIntegerSama seperti sumberKualitas gambar. Hanya berlaku untuk format JPEG.
interleavingStringSama seperti sumberTipe interleaving. Nilai yang valid: bip (band interleaved by pixel, BIP), bil (band interleaved by line, BIL), bsq (band sequential, BSQ).
endianStringSama seperti sumberUrutan byte. NDR untuk little endian; XDR untuk big endian.

Contoh

Contoh berikut menggunakan file GeoTIFF yang dimuat ke dalam tabel sumber.

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', '{}')
);

Simpan hasil ke tabel chunk permanen

Tentukan nama chunktable untuk menyimpan raster yang telah direproyeksikan agar tetap tersedia di antara sesi.

Tanpa nodata:

CREATE TABLE rat_transform_result (id integer, rast raster);

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","interleaving":"bsq","chunktable":"result_rbt"}'
  )
FROM datasource_table
WHERE id = 1;

Dengan satu nilai nodata (piksel dengan nilai nodata di-resample):

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":"result_rbt"}'
  )
FROM datasource_table
WHERE id = 1;

Dengan nilai nodata per band:

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"}'
  )
FROM datasource_table
WHERE id = 1;

Simpan hasil ke tabel chunk temporary

Abaikan chunktable untuk menulis hasil ke tabel temporary yang hanya berlaku dalam sesi tersebut. Tabel ini akan dihapus saat sesi berakhir, sehingga pola ini hanya digunakan untuk komputasi antara.

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

INSERT INTO rat_transform_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","interleaving":"bsq"}'
  )
FROM datasource_table
WHERE id = 1;