全部产品
Search
文档中心

PolarDB:ST_ClipToRast

更新时间:Jul 02, 2025

Fungsi ini memotong objek raster menggunakan objek geometri yang ditentukan dan mengembalikan hasil pemotongan sebagai objek raster baru.

Sintaksis

raster ST_ClipToRast(raster raster_obj,
                     geometry geom,
                     integer pyramidLevel default 0,
                     cstring bands default '',
                     float8[] nodata default NULL,
                     cstring clipOption default '',
                     cstring storageOption default '')

Parameter

Parameter

Deskripsi

raster_obj

Objek raster yang akan dipotong.

pyramidLevel

Tingkat piramida.

geom

Objek geometri yang digunakan untuk pemotongan.

bands

Bands yang akan dipotong, dalam format '0-2' atau '1,2,3'. Dimulai dari 0. Nilai default: ''. Nilai default menunjukkan bahwa semua band dipotong.

nodata

Nilai nodata dalam format float8[]. Jika jumlah nilai kurang dari jumlah band, nilai nodata yang ditentukan untuk band diisi. Jika tidak ada nilai nodata yang ditentukan untuk band, nilai 0 diisi.

clipOption

Opsi pemotongan yang direpresentasikan oleh string JSON.

storageOption

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

Tabel berikut menjelaskan parameter dari clipOption.

Parameter

Tipe

Nilai default

Deskripsi

window_clip

bool

false

Menentukan apakah akan menggunakan kotak pembatas geometri untuk pemotongan. Nilai valid:

  • true: menggunakan minimum bounding rectangle (MBR) geometri untuk pemotongan.

  • false: menggunakan objek geometri untuk pemotongan.

rast_coord

bool

false

Menentukan apakah geometri yang dilewatkan menggunakan koordinat piksel. Jika koordinat piksel digunakan, koordinat x mewakili nomor kolom piksel dan koordinat y mewakili nomor baris piksel.

Tabel berikut menjelaskan parameter dari storageOption.

Parameter

Tipe

Nilai default

Deskripsi

chunking

boolean

Sama dengan raster asli

Menentukan apakah akan menyimpan data sebagai chunk.

chunkdim

string

Sama dengan raster asli

Informasi dimensi tentang chunk. Parameter ini hanya berlaku ketika parameter chunking disetel ke true.

chunktable

string

''

Nama tabel chunk. Jika nilai '' dilewatkan, tabel chunk sementara dengan nama acak dibuat untuk menyimpan data. Tabel sementara ini hanya valid dalam sesi saat ini. Jika Anda perlu menyimpan objek pemotongan yang dapat diakses, Anda harus menentukan nama tabel chunk.

compression

string

lz4

Jenis algoritma kompresi. Nilai valid:

  • none

  • jpeg

  • zlib

  • png

  • lzo

  • lz4

quality

integer

75

Kualitas kompresi. Parameter ini berlaku hanya untuk algoritma kompresi jpeg.

interleaving

string

Sama dengan raster asli

Metode interleaving. Nilai valid:

  • bip: band interleaved by pixel (BIP)

  • bil: band interleaved by line (BIL)

  • bsq: band sequential (BSQ)

endian

string

Sama dengan raster asli

Endian. Nilai valid:

  • NDR: little endian

  • XDR: big endian

Deskripsi

  • Jika NULL atau '' dilewatkan untuk parameter chunktable, tabel chunk sementara dengan nama acak akan dibuat untuk menyimpan data. Tabel sementara ini hanya valid dalam sesi saat ini. Untuk menyimpan objek pemotongan yang dapat diakses, Anda harus menentukan nama tabel chunk.

  • Ukuran cache default untuk pemotongan adalah 100 MB, yang menunjukkan bahwa hingga 100 MB data hasil pemotongan dapat dikembalikan. Untuk menyesuaikan ukuran hasil yang dikembalikan, Anda dapat menentukan ukuran cache menggunakan parameter ganos.raster.clip_max_buffer_size.

Contoh

-- Membuat tabel permanen.
CREATE TABLE rast_clip_result(id integer, rast raster);

-- Membuat tabel sementara.
CREATE TEMP TABLE rast_clip_result_temp(id integer, rast raster);

-- Gunakan pengaturan pemotongan default dan simpan hasilnya di tabel sementara.
INSERT INTO rast_clip_result_temp(id, rast) 
select 1, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0) 
from clip_table 
where id =1;

-- Gunakan warna putih sebagai warna latar belakang untuk padding dan simpan hasilnya di tabel permanen.
INSERT INTO rast_clip_result(id, rast) 
select 2, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', ARRAY[254,254,254], '', '{"chunktable":"clip_rbt"}') 
from clip_table 
where id =1;

-- Gunakan jendela geometri untuk pemotongan.
INSERT INTO rast_clip_result_temp(id, rast) 
SELECT 3, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', NULL, '{"window_clip":true}', '') 
from clip_table 
where id =1;