Mengembalikan koordinat geografis dan nilai piksel dari semua sel dalam objek raster yang berpotongan dengan objek geometri. Band diberi nomor mulai dari 0, dan secara default, semua band dikembalikan. Kedua objek tersebut harus memiliki Spatial Reference System Identifier (SRID) yang sama.
Sintaksis
set of record ST_Values(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '', /* Semua band */
cstring clipOption default '',
out point cords,
out integer band,
out float8 value)Fungsi ini mengembalikan set of record. Setiap baris berisi tiga bidang output: cords (koordinat geografis), band (nomor urut band), dan value (nilai piksel). Untuk memperluas semua bidang output dalam kueri, gunakan sintaksis .*:
SELECT (ST_Values(rast, geom)).*
FROM your_table;Untuk mengakses bidang tertentu, gunakan notasi titik:
SELECT (ST_Values(rast, geom)).cords,
(ST_Values(rast, geom)).value
FROM your_table;Parameter
Parameter input
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
raster_obj | raster | — | Objek raster yang akan dikueri. |
geom | geometry | — | Objek geometri yang digunakan untuk clipping. Harus memiliki SRID yang sama dengan raster_obj. |
pyramidLevel | integer | 0 | Tingkat piramida objek raster yang akan digunakan. |
bands | cstring | '' | Nomor urut band yang akan dikembalikan, dalam format '0-2' atau '1,2,3'. Nomor band dimulai dari 0. String kosong default '' mengembalikan semua band. |
clipOption | cstring | '' | Opsi clipping dalam bentuk string berformat JSON. Lihat parameter clipOption. |
Bidang output
| Bidang | Tipe | Deskripsi |
|---|---|---|
cords | point | Koordinat geografis piksel. |
band | integer | Nomor urut band piksel. |
value | float8 | Nilai piksel. |
Parameter clipOption
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
window_clip | Boolean | false | Mengontrol apakah clipping dilakukan berdasarkan kotak pembatas (bounding box) geometri atau bentuk geometri yang sebenarnya. Atur ke true untuk melakukan clipping berdasarkan Minimum Bounding Rectangle (MBR) objek geometri. Atur ke false untuk melakukan clipping berdasarkan bentuk geometri yang sebenarnya. |
Kapan menggunakan `window_clip`:
Gunakan
window_clip: trueketika Anda ingin mengambil semua sel dalam envelope persegi panjang suatu geometri — misalnya, saat melakukan clipping dengan titik dan Anda ingin menangkap grid piksel di sekitarnya, bukan hanya sel yang berpotongan secara eksak.Gunakan
window_clip: false(default) ketika Anda memerlukan potongan yang tepat sesuai bentuk geometri sebenarnya, seperti saat melakukan clipping sepanjang batas linestring atau poligon.
Catatan penggunaan
Objek geometri dan objek raster harus memiliki SRID yang valid, dan SRID-nya harus sama.
Secara default, setiap pemanggilan mengembalikan data hingga 100 MB. Untuk menyesuaikan batas ini, atur parameter
ganos.raster.clip_max_buffer_size.
Contoh
Semua contoh memanggil ST_Values dengan sintaksis .* untuk memperluas output menjadi kolom-kolom terpisah.
Clipping dengan geometri titik
Mengatur window_clip ke true mengambil grid piksel dalam MBR titik tersebut, bukan hanya satu sel yang berpotongan secara eksak.
SELECT (ST_Values(rast, ST_geomfromtext('POINT(128.135 29.774)', 4326)::geometry, 0,'{"window_clip":"true"}')).*
FROM rat_clip WHERE id=1;
coord | band | value
--------------+------+-------
(127.8,29.7) | 0 | 11
(127.8,29.7) | 1 | 10
(127.8,29.7) | 2 | 50
(3 rows)Clipping dengan geometri linestring
Contoh ini melakukan clipping raster menggunakan bentuk eksak linestring, mengembalikan hingga 10 baris dari semua band.
SELECT (ST_Values(rast, ST_geomfromtext('LINESTRING(0 0, 45 45, 90 0, 135 45)', 4326)::geometry, 0)).*
FROM rat_clip WHERE id=1 LIMIT 10;
coord | band | value
-------------+------+-------
(44.1,45) | 0 | 115
(44.1,45) | 1 | 112
(44.1,45) | 2 | 69
(45,45) | 0 | 122
(45,45) | 1 | 117
(45,45) | 2 | 75
(134.1,45) | 0 | 37
(134.1,45) | 1 | 64
(134.1,45) | 2 | 13
(43.2,44.1) | 0 | 66
(10 rows)Langkah selanjutnya
ST_Value — Mengembalikan nilai satu sel pada titik atau koordinat piksel tertentu.
ST_ClipByMask — Melakukan clipping objek raster menggunakan mask geometri dan mengembalikan raster hasil clipping.
ST_Clip — Melakukan clipping objek raster berdasarkan objek geometri dan mengembalikan raster hasil clipping.
ST_Intersects — Menguji apakah objek raster dan objek geometri saling berpotongan.