全部产品
Search
文档中心

ApsaraDB RDS:ST_Clip

更新时间:Jun 25, 2025

Topik ini menjelaskan fungsi ST_Clip, yang digunakan untuk memotong objek raster.

Sintaksis

bytea ST_Clip(raster raster_obj,integer pyramidLevel,  box extent, BoxType boxType);
bytea ST_Clip(raster raster_obj,integer pyramidLevel,  box extent, BoxType boxType, integer destSrid);
record ST_Clip(raster raster_obj,
                     geometry geom,
                     integer pyramidLevel default 0,
                     cstring bands default '',
                     float8[] nodata default NULL,
                     cstring clipOption default '',
                     cstring storageOption default '',
                     out box outwindow,
                     out bytea rasterblob)

Parameter

Parameter

Deskripsi

raster_obj

Objek raster.

pyramidLevel

Tingkat piramida.

extent

Area yang ingin Anda potong. Nilainya dalam format '((minX,minY),(maxX,maxY))'.

boxType

Jenis koordinat area yang ingin Anda potong. Nilai valid:

  • Raster: koordinat piksel

  • World: koordinat dunia

destSrid

Pengenal sistem referensi spasial (SRID) dari subset sel keluaran.

geom

Objek geometri yang ingin Anda potong.

bands

Nomor urut band yang akan dipotong, dalam format '0-2' atau '1,2,3'. Nomor urut dimulai dari 0. Nilai default: string kosong (''). Ini menunjukkan bahwa semua band akan dipotong.

nodata

Array nilai NoData dalam format float8[]. Jika jumlah nilai NoData kurang dari jumlah band yang akan dipotong, nilai NoData yang telah ditentukan untuk sebuah band digunakan untuk mengisi area setelah band tersebut dipotong. Jika sebuah band tidak memiliki nilai NoData yang telah ditentukan, nilai 0 digunakan untuk mengisi area setelah band tersebut dipotong.

clipOption

Opsi pemotongan.

storageOption

Opsi penyimpanan untuk keluaran.

outwindow

Ukuran objek raster yang dikembalikan.

rasterblob

Matriks piksel biner.

Tabel berikut menjelaskan bidang parameter clipOption.

Bidang

Tipe

Nilai default

Deskripsi

window_clip

bool

false

Menentukan apakah akan menggunakan kotak pembatas objek geometri untuk memotong objek raster. Nilai valid:

  • true: menggunakan persegi panjang pembatas minimum (MBR) dari objek geometri.

  • false: menggunakan objek geometri.

rast_coord

bool

false

Menentukan apakah objek geometri yang ingin Anda potong berada dalam koordinat raster. Jika objek geometri yang ingin Anda potong berada dalam koordinat raster, koordinat x dari geometri mewakili nomor kolom dan koordinat y mewakili nomor baris. Nomor kolom dan baris dimulai dari 0.

Tabel berikut menjelaskan bidang parameter storageOption.

Bidang

Tipe

Nilai default

Deskripsi

compression

string

lz4

Tipe algoritma kompresi. Nilai valid:

  • none

  • jpeg

  • zlib

  • png

  • lzo

  • lz4

quality

integer

75

Kualitas kompresi. Parameter ini hanya berlaku ketika nilai parameter kompresi diatur ke jpeg.

interleaving

string

Sama dengan raster asli

Tipe interleaving. Nilai valid:

  • bip: band interleaved by pixel (BIP)

  • bip: band interleaved by pixel (BIP)

  • bsq: band sequential (BSQ)

endian

string

Sama dengan raster asli

Format endian. Nilai valid:

  • NDR: format little endian

  • XDR: format big endian

Deskripsi

Cache pemotongan default adalah 100 MB, yang berarti hanya 100 MB data yang dapat dikembalikan. Untuk menyesuaikan batas ukuran keluaran, gunakan parameter ganos.raster.clip_max_buffer_size untuk mengatur ukuran cache.

Contoh

Select ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World') from clip_table;
Select ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World', 4326) from clip_table;

-- Gunakan objek geometri untuk memotong objek raster.
-- Gunakan pengaturan pemotongan default.
SELECT (ST_CLIP(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 dan kompres keluaran menjadi gambar PNG.
SELECT (ST_CLIP(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', ARRAY[254,254,254], '', '{"compression":"png","interleaving":"bip"}')).* from clip_table where id =1;

-- Gunakan jendela objek geometri untuk memotong objek raster.
SELECT (ST_CLIP(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;