Fungsi ini digunakan untuk meregangkan raster secara linear dan mengembalikan raster baru.
Sintaksis
- Sintaksis 1
raster ST_LinearStretch(raster raster_obj , integer pyramidLevel default 0, cstring bands default '', integer minRatio default 0, integer maxRatio default 100, cstring storageOption default '', cstring parallelOption default '{}') - Sintaksis 2
raster ST_LinearStretch(raster raster_obj , float8[] minValues, float8[] maxValues, integer pyramidLevel default 0, cstring bands default '', cstring storageOption default '', cstring parallelOption default '{}')
Parameter
| Parameter | Deskripsi |
| raster_obj | Raster yang ingin Anda kueri. |
| pyramidLevel | Tingkat piramida yang ingin diregangkan. Nilai valid mulai dari 0. Nilai default: 0. |
| bands | ID band-band yang ingin diregangkan. Contoh: '0-2' dan '1,2,3'. ID band valid mulai dari 0. Nilai default: ''. Nilai default menentukan semua band dari raster. |
| storageOption | String JSON yang terdiri dari opsi penyimpanan. Untuk informasi lebih lanjut, lihat tabel "storageOption" pada topik ini. |
| parallelOption | String JSON yang terdiri dari opsi operasi paralel. Untuk informasi lebih lanjut, lihat tabel " parallelOption" pada topik ini. |
| minRatio | Persentil minimum berdasarkan mana raster diregangkan. Nilai valid: 0 hingga 100. |
| maxRatio | Persentil maksimum berdasarkan mana raster diregangkan. Nilai valid: 0 hingga 100. Nilai parameter ini harus lebih besar dari nilai parameter minRatio. |
| minValues | Array yang terdiri dari nilai-nilai minimum. Jumlah nilai minimum harus sama dengan jumlah band yang ingin diregangkan. |
| maxValues | Array yang terdiri dari nilai-nilai maksimum. Jumlah nilai maksimum harus sama dengan jumlah band yang ingin diregangkan. |
Tabel berikut menjelaskan parameter dalam storageOption.
| Parameter | Deskripsi | Tipe | Nilai default | Catatan |
| chunking | Menentukan apakah data raster baru disimpan sebagai chunk. | boolean | Sama dengan nilai untuk raster asli. | Tidak ada. |
| chunkdim | Dimensi berdasarkan mana sistem membagi data raster baru menjadi chunk. | string | Sama dengan nilai untuk raster asli. | Parameter ini hanya valid ketika Anda menetapkan parameter chunking ke true. |
| chunktable | Nama tabel chunk yang menyimpan data raster baru. | string | '' | Jika Anda menentukan '' atau nilai NULL, tabel chunk sementara dengan nama acak akan dibuat untuk menyimpan data. Tabel chunk sementara hanya valid dalam sesi saat ini. Untuk membuat tabel chunk permanen untuk raster baru, Anda harus menentukan nama untuk tabel chunk. |
| compression | Format di mana sistem menekan data raster baru. | string | Sama dengan nilai untuk raster asli. | Nilai valid:
|
| quality | Kualitas gambar raster baru setelah kompresi. | integer | Sama dengan nilai untuk raster asli. | Nilai valid: 1 hingga 99. Parameter ini hanya berlaku jika Anda mengatur parameter compression ke JPEG. |
| interleaving | Metode yang digunakan untuk menyisipkan data raster baru. | string | Sama dengan nilai untuk raster asli. | Nilai valid:
|
| endian | Format endian raster baru. | string | Sama dengan nilai untuk raster asli. | Nilai valid:
|
| celltype | Tipe piksel raster baru. | string | Sama dengan nilai untuk raster asli. | Nilai valid:
|
Tabel berikut menjelaskan parameter dalam parallelOptions.
| Parameter | Deskripsi | Tipe | Nilai default | Catatan |
| parallel | Derajat paralelisme yang diizinkan. | integer | ganos.parallel.degree | Nilai valid: 1 hingga 64. |
Deskripsi
- Metode 1: Gunakan fungsi ST_BuildPercentiles atau fungsi ST_ComputeStatistics untuk menghitung persentil. Kemudian, regangkan raster asli berdasarkan persentil.
Sebagai contoh, nilai piksel dalam histogram berada dalam rentang 33 hingga 206, dengan persentil minimum dan maksimum ditetapkan ke 2%. Ini berarti 2% dari nilai piksel di bawah persentil minimum berada dalam rentang 33 hingga 45, dan 2% dari nilai piksel di atas persentil maksimum berada dalam rentang 198 hingga 206. Dalam hal ini, nilai piksel dalam rentang 33 hingga 45 dikonversi menjadi 0, nilai piksel dalam rentang 198 hingga 206 dikonversi menjadi 255, dan semua nilai piksel lainnya dalam histogram didistribusikan ulang dalam rentang 0 hingga 255.
- Metode 2: Regangkan raster asli berdasarkan rentang minimum yang ditentukan oleh parameter minValues dan rentang maksimum yang ditentukan oleh parameter maxValues.
Sebagai contoh, dalam dataset 8-bit, nilai minimum dapat berupa 35, dan nilai maksimum dapat berupa 206. Fungsi ini mendistribusikan nilai piksel raster asli dalam rentang 0 hingga 255 di seluruh histogram. Dengan cara ini, kecerahan dan kontras gambar ditingkatkan, sehingga elemen-elemen dalam gambar lebih mudah dibedakan.
Contoh
INSERT INTO raster_table
SELECT 100, ST_LinearStretch(rast,
1,
'0-2',
2, -- rasio minimum
98, -- rasio maksimum
'{"chunktable":"chunk_table", "chunking":true}',
'{"parallel":4}')
FROM raster_table
WHERE id=1;INSERT INTO raster_table
SELECT 200, ST_LinearStretch(rast,
ARRAY[100,100, 100]::float8[], -- nilai minimum
ARRAY[200,200, 200]::float8[], -- nilai maksimum
0,
'0-2',
'{"chunktable":"chunk_table", "chunking":true}',
'{"parallel":4}')
FROM raster_table
WHERE id=1;