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 |
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. |
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:
|
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 |
compression | string | lz4 | Jenis algoritma kompresi. Nilai valid:
|
quality | integer | 75 | Kualitas kompresi. Parameter ini berlaku hanya untuk algoritma kompresi jpeg. |
interleaving | string | Sama dengan raster asli | Metode interleaving. Nilai valid:
|
endian | string | Sama dengan raster asli | Endian. Nilai valid:
|
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;