Membuat objek raster dari file yang disimpan di bucket OSS, bucket MinIO, atau file HDFS, serta dari array satu dimensi.
Sintaksis
raster ST_CreateRast(cstring url);
raster ST_CreateRast(cstring url, cstring storageOption);
raster ST_CreateRast(anyarray data, integer width, cstring storageOption, geometry extent);Parameter
| Parameter | Deskripsi |
|---|---|
url | Path file sumber. Untuk format path yang didukung, lihat Object storage paths. |
storageOption | String JSON yang menentukan opsi penyimpanan chunk untuk piramida raster. |
data | Array satu dimensi yang merepresentasikan raster. Panjang array harus sama dengan jumlah kolom dikalikan jumlah baris. |
width | Jumlah kolom dalam raster. |
extent | (Opsional) Ruang tiga dimensi yang direpresentasikan menggunakan geometri. |
Bidang storageOption
| Bidang | Tipe | Format | Bawaan | Deskripsi |
|---|---|---|---|---|
chunkdim | String | (w,h,b) | Sama dengan ukuran chunk pada file sumber | Ukuran setiap chunk yang digunakan untuk menyimpan data raster. |
interleaving | String | — | bsq | Metode interleaving. Nilai yang valid: bip (band interleaved by pixel), bil (band interleaved by line), bsq (band sequential), auto (ditentukan secara otomatis). |
chunk_table | String | — | None | Nama tabel chunk. Wajib ditentukan saat membuat objek raster dari array satu dimensi. |
Catatan penggunaan
Timpa nilai bawaan untuk chunkdim dan interleaving hanya dalam kasus berikut:
Tampilan multiband RGB: Jika
interleavingbernilaibsqtetapi raster akan dirender menggunakan kombinasi multiband RGB, aturinterleavingmenjadibip.Ketidaksesuaian ukuran chunk: Jika gambar sumber memiliki chunk berukuran 1 baris × n kolom tetapi Anda memerlukan chunk berukuran 256 × 256, atur
chunkdimke ukuran chunk yang diinginkan.
Untuk mendapatkan daftar format data yang didukung, panggil fungsi ST_RasterDrivers.
Contoh
Semua contoh berikut menggunakan ST_CreateRast untuk membuat objek raster dari backend penyimpanan yang berbeda.
-- Membuat objek raster dari file OSS menggunakan kredensial AccessKey dan titik akhir internal.
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');
-- Membuat objek raster dari bucket MinIO menggunakan host dan port dalam URL.
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@10.0.XX.XX:443/mybucket/data/image.tif');
-- Membuat objek raster dari file HDFS menggunakan username dalam URL.
SELECT ST_CreateRast('HDFS://<user_name>@10.0.XX.XX:8020/path/image.tif');
-- Membuat objek raster dengan dimensi chunk dan interleaving kustom.
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif', '{"chunkdim":"(256,256,3)","interleaving":"auto"}');
-- Membuat objek raster dari file NetCDF dan memilih subset hcc.
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
-- Membuat objek raster dari array satu dimensi dengan extent geometri.
SELECT ST_FixedRid(ST_CreateRast(ARRAY[10, 11, 8, 12], 2, '{"chunktable":"rbt"}', ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326)));
-- Membuat objek raster dengan mengagregasi nilai dari tabel menggunakan array_agg.
SELECT ST_FixedRid(ST_CreateRast((SELECT array_agg(value) FROM point_table), 300, '{"chunktable":"rbt"}'));