All Products
Search
Document Center

ApsaraDB RDS:ST_MosaicFrom

Last Updated:Jun 25, 2025

Topik ini menjelaskan fungsi ST_MosaicFrom, yang melakukan operasi mozaik untuk menggabungkan objek raster yang ditentukan menjadi objek raster baru.

Sintaksis

raster ST_MosaicFrom(
  raster source[],
  cstring chunkTableName,
	cstring storageOption default '{}', 
  cstring mosaicOption default '{}'
);

Parameter

Parameter

Deskripsi

source

Objek raster yang ingin Anda gabungkan.

chunkTableName

Nama tabel chunk untuk menyimpan objek raster baru. Nama tersebut harus mematuhi konvensi penamaan tabel database.

storageOption

Opsi penyimpanan yang diwakili oleh string JSON dalam hasil yang dikembalikan.

mosaicOption

Opsi operasi mozaik yang diwakili oleh string JSON dalam hasil yang dikembalikan.

Nilai dari parameter storageOption adalah string berformat JSON yang menggambarkan penyimpanan chunk dari objek raster. Tabel berikut menjelaskan bidang yang didukung.

Bidang

Deskripsi

Tipe

Nilai default

Catatan

chunking

Menentukan apakah data objek raster baru disimpan sebagai chunk.

boolean

Sama dengan objek raster yang ingin Anda gabungkan

/

chunkdim

Ukuran setiap chunk.

string

Sama dengan objek raster yang ingin Anda gabungkan

Bidang ini hanya valid ketika bidang chunking disetel ke true. Nilainya harus dalam format (w, h, b).

interleaving

Tipe interleaving dari objek raster.

string

Sama dengan objek raster yang ingin Anda gabungkan

Nilai valid:

  • bip: pixel interleaving

  • bil: row interleaving

  • bsq: band interleaving

  • auto: metode interleaving yang ditentukan oleh fungsi ini

compression

Format kompresi data objek raster baru.

string

Sama dengan objek raster yang ingin Anda gabungkan

Nilai valid:

  • none

  • jpeg

  • zlib

  • png

  • lzo

  • lz4

  • zstd

  • snappy

  • jp2k

quality

Kualitas gambar objek raster baru setelah kompresi.

integer

Sama dengan objek raster yang ingin Anda gabungkan

Bidang ini berlaku hanya ketika Anda menyetel bidang compression ke jpeg atau jp2k.

Nilai dari parameter mosaicOption adalah string berformat JSON yang menggambarkan algoritma mozaik. Tabel berikut menjelaskan bidang yang didukung.

Bidang

Deskripsi

Tipe

Nilai default

Catatan

srid

Pengenal referensi spasial (SRID) dari objek raster baru.

integer

SRID dari objek raster di pojok kiri atas.

Anda harus menentukan kedua bidang srid dan cell_size.

cell_size

Ukuran piksel objek raster baru.

float8[]

Ukuran piksel objek raster di pojok kiri atas.

  • Nilai bidang ini adalah array dua bilangan floating-point. Format: [cell_size_x,cell_size_y].

  • Anda harus menentukan kedua bidang srid dan cell_size.

resample

Metode yang digunakan untuk resampling piksel.

text

'Near'

Nilai valid:

  • 'Near'

  • 'Average'

  • 'Cubic'

  • 'Bilinear'

nodata

Menentukan apakah nilai nodata dari objek raster asli valid.

bool

false

  • Jika Anda menyetel bidang ini ke true, nilai nodata valid dan piksel dengan nilai nodata tidak di-resampling.

  • Jika Anda menyetel bidang ini ke false, nilai nodata tidak valid dan piksel dengan nilai nodata di-resampling.

nodataValue

Nilai nodata baru yang ditentukan berdasarkan band objek raster baru.

float8

float8[]

NULL

Anda dapat menyetel bidang nodataValue ke nilai numerik atau array. Jika Anda menyetel bidang nodataValue ke nilai numerik, semua band objek raster baru menggunakan nilai nodata yang sama. Jika Anda menyetel bidang nodataValue ke array, jumlah elemen dalam array harus sama dengan jumlah band raster.

color_balance

Menentukan apakah akan melakukan penyeimbangan warna.

bool

false

Bidang ini menentukan apakah akan melakukan penyeimbangan warna.

step

Menentukan ukuran langkah yang digunakan selama proses penyeimbangan warna.

integer

0.1

Bidang ini valid ketika bidang color_balance disetel ke true. Ukuran langkah yang lebih besar dapat mempercepat proses penyeimbangan warna, tetapi hasilnya mungkin tidak optimal.

iteration

Menentukan jumlah iterasi penyeimbangan warna.

integer

50000

Bidang ini valid ketika bidang color_balance disetel ke true. Semakin banyak iterasi, semakin lama waktu yang dibutuhkan untuk proses penyeimbangan warna.

parallel

Tingkat paralelisme (DOP).

integer

1

Tingkat paralelisme yang diizinkan. Nilai valid: 1 hingga 64.

Deskripsi

Fungsi ini menggabungkan beberapa objek raster menjadi satu objek raster baru.

Semua objek raster yang ingin digabungkan harus memenuhi persyaratan berikut:

  • Objek raster memiliki jumlah band yang sama.

  • Objek raster direferensikan secara geografis, atau tidak ada satupun yang direferensikan secara geografis. Jika semua objek raster direferensikan secara geografis, koordinat dunia digunakan untuk operasi mozaik dan SRID atau parameter affine dapat berbeda.

  • Objek raster dapat memiliki tipe piksel yang berbeda.

Fungsi ST_MosaicFrom menyediakan kemampuan untuk menyeimbangkan warna menggunakan teknologi koreksi gamma. Berikut adalah proses penyeimbangan warna:

  1. Bidang warna global dibuat. Semua objek raster yang akan digabungkan dalam operasi mozaik di-resampling. Setelah resampling, fitting polinomial digunakan untuk menghasilkan matriks piksel global. Matriks piksel global digunakan sebagai referensi untuk menyeimbangkan warna setiap objek raster.

  2. Bidang warna lokal yang sesuai dengan setiap objek raster dihitung menggunakan interpolasi bilinear. Bidang warna lokal digunakan untuk menyelaraskan warna objek raster individu dengan matriks piksel global.

  3. Dua nilai piksel berbeda yang sesuai dengan setiap posisi piksel dalam objek raster dihitung. Satu nilai piksel dihitung berdasarkan bidang warna lokal, dan yang lainnya dihitung berdasarkan bidang warna global. Kemudian, warna piksel disesuaikan dengan menghitung parameter koreksi gamma untuk mencapai penyeimbangan warna.

Contoh:

Insert Into raster_obj Values(1, ST_MosaicFrom(Array(select raster_obj from raster_table where id < 10), 'chunk_table_mosaic', '', ''))
Update raster_table Set raster_obj = ST_MosaicFrom(Array(select raster_obj from raster_table where id < 10), 'chunk_table_mosaic','{"srid":4326,"cell_size":[0.00002,0.00002]}') where id = 11;

--nodata
Insert Into rat_mosaicfrom Values(110, ST_MosaicFrom(Array(select rast from rat_mosaicfrom where id < 5), 'rbt_mosaic','{"chunking":true, "chunkdim":"(256,256,3)","compression":"jpeg","quality":75, "interleaving":"bsq","celltype":"8bui"}','{"resample":"Average","srid":4326,"cell_size":[0.00002,0.00002],"nodata":true, "nodataValue":[255,255,255]}'));

-- Parallel
Insert Into raster_obj Values(1, ST_MosaicFrom(Array(select raster_obj from raster_table where id < 10), 'chunk_table_mosaic', '', '{"srid":4326,"cell_size":[0.00002,0.00002],"parallel":4}'))

-- Penyeimbangan warna
Insert Into raster_obj Values(1, ST_MosaicFrom(Array(select raster_obj from raster_table where id < 10), 'chunk_table_mosaic', '', '{"srid":4326,"cell_size":[0.00002,0.00002], "color_balance":true, "parallel":4}'))