全部产品
Search
文档中心

ApsaraDB RDS:ST_CreateRast

更新时间:Jul 06, 2025

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:

  • bip: band interleaved by pixel (BIP)

  • bil: band interleaved by line (BIL)

  • bsq: band sequential (BSQ)

  • auto: metode interleaving yang ditentukan oleh fungsi ini

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.

Catatan

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