Topik ini menjelaskan fungsi ST_CreateRast. Fungsi ini membuat objek raster menggunakan data yang disimpan di bucket Alibaba Cloud Object Storage Service (OSS), bucket Multi-Cloud Object Storage (MinIO) yang dikelola sendiri, atau file Hadoop Distributed File System (HDFS). Sebagai alternatif, fungsi ini menghasilkan objek raster berdasarkan larik satu dimensi tertentu.
Sintaks
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 | Jalur objek OSS berdasarkan mana Anda ingin membuat objek raster. Untuk informasi lebih lanjut, lihat Jalur penyimpanan objek. |
storageOption | String JSON yang menggambarkan chunk untuk menyimpan piramida objek raster. |
createOption | String JSON yang digunakan untuk menentukan informasi penyimpanan tentang opsi impor. |
data | Data raster yang direpresentasikan oleh larik satu dimensi. Jumlah elemen dalam larik satu dimensi adalah hasil kali jumlah kolom dan jumlah baris dari data raster. |
width | Jumlah kolom dari data raster. |
extent | Ruang 3D yang direpresentasikan menggunakan geometri. Parameter ini opsional. |
Tabel berikut menggambarkan bidang dari parameter storageOption.
Bidang | Deskripsi | Tipe | Format | Nilai default | Deskripsi |
chunkdim | Ukuran setiap chunk yang digunakan untuk menyimpan data objek raster. | string | (w, h, b) | Sama dengan ukuran setiap chunk pada objek asli | Tidak ada |
interleaving | Tipe interleaving dari objek raster baru. | string | Tidak ada | bsq | Nilai valid:
|
chunk_table | Nama tabel chunk yang ingin Anda tentukan. | string | Tidak ada | Tidak ada | Jika Anda ingin memanggil fungsi ini untuk menghasilkan objek raster dengan menggunakan objek raster yang direpresentasikan oleh larik satu dimensi tertentu, Anda harus menentukan parameter ini. |
Anda perlu mengubah nilai default dari bidang chunkdim dan interleaving hanya dalam beberapa kasus:
Pengguna ingin melihat objek raster berdasarkan kombinasi multiband merah, hijau, dan biru (RGB), tetapi nilai bidang interleaving adalah bsq. Dalam hal ini, Anda harus mengubah nilai bidang interleaving menjadi bip.
Chunk dari beberapa gambar yang digunakan untuk merender objek raster berisi 1 baris dan n kolom dalam ukuran. Namun, pengguna meminta chunk yang berisi 256 baris dan 256 kolom dalam ukuran. Dalam hal ini, Anda harus mengubah nilai bidang chunkdim ke ukuran chunk yang diminta.
Tabel berikut menggambarkan bidang dari parameter createOption.
Bidang | Deskripsi | Tipe | Nilai default | Deskripsi |
compute_stats | Menentukan apakah akan secara otomatis menghitung statistik band selama proses impor. | boolean | false | Tidak ada |
approx | Menentukan apakah akan menggunakan metode sampling. | boolean | false | Jika bidang ini disetel ke true, nilai statistik dihitung dalam metode sampling. Hasilnya mungkin tidak akurat. |
factor | Faktor sampling. | integer | 4 | Faktor sampling sebesar n menunjukkan bahwa setiap unit sampling terdiri dari n piksel selama proses sampling. Pengaturan ini hanya valid ketika bidang approx disetel ke true. |
exclusive_nodata | Menentukan apakah akan mengecualikan nilai nodata. | boolean | true | Nilai nodata dikecualikan dari perhitungan. |
Deskripsi
Anda dapat memperoleh tipe data yang didukung dengan menggunakan fungsi ST_RasterDrivers.
Contoh:
-- Tentukan ID AccessKey, Rahasia AccessKey, dan Titik akhir dalam URL objek OSS untuk membuat objek raster.
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');
-- Tentukan host dan port dalam URL objek MinIO.
Select ST_CreateRast('MIO://<ak>:<ak_secret>@10.0.0.1:443/mybucket/data/image.tif');
-- Tentukan parameter user_name dalam URL file HDFS.
Select ST_CreateRast('HDFS://<user_name>@10.0.0.1:8020/path/image.tif');
-- Tentukan parameter chunkdim dan interleaving dari objek raster.
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif', '{"chunkdim":"(256,256,3)","interleaving":"auto"}');
-- Hitung statistik band secara otomatis setelah impor.
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif', '{"chunkdim":"(256,256,3)","interleaving":"auto"}','{"compute_stats":true}');
-- Tentukan gambar NetCDF yang berisi subset.
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
-- Tentukan gambar HDF5 yang berisi subset.
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/hcc');
-- Hasilkan objek raster dari array.
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)));
-- Gunakan array_agg untuk mengumpulkan beberapa rekaman untuk menghasilkan objek raster.
select ST_FixedRid(ST_CreateRast((select array_agg(value) from point_table), 300, '{"chunktable":"rbt"}'));