All Products
Search
Document Center

ApsaraDB RDS:ST_Resize

Last Updated:Mar 28, 2026

Mengubah ukuran rentang piksel objek raster tanpa mengubah cakupan geospasialnya.

Sintaksis

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

Parameter

ParameterDeskripsi
rastObjek raster yang akan diubah ukurannya.
outWidthLebar objek raster output, dalam piksel.
outHeightTinggi objek raster output, dalam piksel.
processExprString JSON yang mengontrol pengambilan sampel ulang piksel dan penanganan nilai nodata.
storageOptionString JSON yang mengontrol cara penyimpanan objek raster output.

Bidang processExpr

Setiap pasangan kunci-nilai dalam string JSON processExpr dipetakan ke bidang yang dijelaskan di bawah ini.

BidangTipeBawaanDeskripsi
resampletextNearMetode pengambilan sampel ulang. Nilai yang valid: Near, Average, Cubic, Bilinear.
nodataBooleanfalseMenentukan apakah nilai nodata dalam objek raster sumber diperlakukan sebagai valid. Jika diatur ke true, piksel dengan nilai nodata tidak diambil sampelnya ulang. Jika diatur ke false, piksel dengan nilai nodata diambil sampelnya ulang.
nodataValuefloat8 | float8[]NULLNilai nodata yang ditetapkan untuk band-band dalam objek raster output. Tentukan satu nilai untuk menerapkannya ke semua band, atau tentukan satu nilai per band. Jumlah nilai harus sesuai dengan jumlah band.
Catatan Atur nodata ke false dan abaikan nodataValue jika objek raster sumber tidak memiliki piksel dengan nilai nodata. Jika tidak, artefak gambar mungkin terjadi.

Bidang storageOption

BidangTipeBawaanDeskripsi
chunkingBooleanSama seperti sumberMenentukan apakah objek raster output disimpan sebagai chunk.
chunkdimStringSama seperti sumberDimensi chunk. Hanya berlaku ketika chunking bernilai true.
chunktableString'' (string kosong)Nama tabel chunk. Jika diatur ke NULL atau string kosong, output disimpan dalam tabel chunk temporary dengan nama acak yang hanya berlaku selama session saat ini. Untuk menyimpan output secara permanen, tentukan nama tabel chunk permanen.
compressionStringSama seperti sumberFormat kompresi. Nilai yang valid: None, JPEG, Zlib, PNG, LZO, LZ4.
qualityIntegerSama seperti sumberKualitas gambar JPEG. Hanya berlaku ketika compression bernilai 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. Nilai yang valid: NDR (little-endian), XDR (big-endian).
Catatan Jika chunktable bernilai NULL atau string kosong, output disimpan dalam tabel chunk temporary yang dihapus saat sesi berakhir. Tentukan nama tabel chunk untuk menyimpan output secara permanen.

Contoh

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

Metode 1: Menentukan tabel chunk permanen

Gunakan chunktable bernama untuk menyimpan objek raster output secara permanen.

CREATE TABLE rat_resize_result(id integer, rast raster);

-- Bidang nodata tidak ditentukan
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;

-- Satu nilai nodata diterapkan ke semua band; piksel nodata tidak diambil sampelnya ulang
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;

-- Beberapa nilai nodata, satu per band
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;

Metode 2: Menggunakan tabel chunk temporary

Abaikan chunktable untuk menyimpan output dalam tabel temporary yang cakupannya terbatas pada sesi saat ini. Hasil tersedia untuk komputasi bersarang dalam sesi tersebut dan dihapus saat sesi berakhir.

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;