Membangun piramida untuk objek raster guna mempercepat rendering multi-resolusi dan kueri berdasarkan tingkat zoom.
Sintaksis
raster ST_BuildPyramid(raster source,
integer pyramidLevel default -1,
ResampleAlgorithm algorithm default 'Near',
cstring chunkTableName default '',
cstring storageOption default '{}',
cstring buildOption default '{}');Parameter
| Parameter | Deskripsi |
|---|---|
| source | Objek raster yang akan dibuatkan piramidanya. |
| pyramidLevel | Jumlah tingkat piramida yang akan dibuat. Atur ke -1 untuk membuat jumlah maksimum tingkat berdasarkan ukuran gambar. Nilai default: -1. |
| algorithm | Algoritma resampling. Nilai yang valid: Near, Average, Bilinear, Cubic. Nilai default: Near. |
| chunkTableName | Nama tabel chunk tempat menyimpan data piramida. Hanya berlaku ketika objek raster disimpan di bucket Object Storage Service (OSS). |
| storageOption | String JSON yang menentukan pengaturan penyimpanan chunk untuk piramida. Hanya berlaku ketika objek raster disimpan di bucket OSS. Untuk detailnya, lihat Opsi penyimpanan. |
| buildOption | String JSON yang menentukan pengaturan pembuatan piramida. Mendukung parameter parallel untuk mengontrol tingkat paralelisme. Untuk detailnya, lihat Opsi pembuatan. |
Opsi penyimpanan
Parameter storageOption menerima objek JSON dengan bidang-bidang berikut:
| Bidang | Tipe | Deskripsi |
|---|---|---|
| chunkdim | string | Dimensi chunk dalam format (w, h, b). Default mengikuti ukuran chunk dari data gambar asli. |
| interleaving | string | Metode interleaving band. Nilai yang valid: bip (band interleaved by pixel, BIP), bil (band interleaved by line, BIL), bsq (band sequential, BSQ), auto (ditentukan secara otomatis). Nilai default: bsq. |
| compression | string | Format kompresi. Nilai yang valid: none, jpeg, zlib, png, lzo, LZ4, zstd, snappy, jp2k. Nilai default: LZ4. |
| quality | integer | Kualitas kompresi. Hanya berlaku untuk kompresi JPEG dan JPEG 2000 (jp2k). Nilai yang valid: 1–99. Nilai default: 75. |
Opsi pembuatan
Parameter buildOption menerima objek JSON dengan bidang-bidang berikut:
| Bidang | Tipe | Deskripsi |
|---|---|---|
| parallel | integer | Tingkat paralelisme untuk pembuatan piramida. Nilai yang valid: 1–64. Jika tidak ditentukan, nilai parameter GUC ganos.parallel.degree yang digunakan. |
Pembuatan piramida secara paralel tidak mendukung transaksi. Jika proses pembuatan gagal atau Anda perlu melakukan rollback, panggil ST_deletePyramid untuk menghapus piramida yang belum lengkap.
Deskripsi
Fungsi ini mendukung komputasi yang dipercepat GPU. Secara default, pada lingkungan dengan GPU yang tersedia, Ganos secara otomatis mengaktifkan komputasi yang dipercepat GPU untuk fungsi ini.
Contoh
Membangun piramida dengan pengaturan default:
UPDATE raster_table SET raster_obj = ST_BuildPyramid(raster_obj) WHERE id = 1;Membangun piramida dan menyimpan data piramida di tabel chunk bernama:
UPDATE raster_table SET raster_obj = ST_BuildPyramid(raster_obj, 'chunk_table') WHERE id = 2;Membangun piramida dengan kompresi JPEG 2000, ukuran chunk tetap 256×256, 4 band per chunk, dan interleaving band otomatis:
UPDATE raster_table SET raster_obj = ST_BuildPyramid(
raster_obj,
-1,
'Near',
'chunk_table',
'{"compression":"jp2k", "quality": 75, "chunkdim":"(256,256,4)", "interleaving":"auto"}'
) WHERE id = 3;Membangun piramida yang sama menggunakan 4 thread paralel:
UPDATE raster_table SET raster_obj = ST_BuildPyramid(
raster_obj,
-1,
'Near',
'chunk_table',
'{"compression":"jp2k", "quality": 75, "chunkdim":"(256,256,4)", "interleaving":"auto"}',
'{"parallel":4}'
) WHERE id = 3;