全部产品
Search
文档中心

PolarDB:ST_LinearStretch

更新时间:Jul 02, 2025

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

ParameterDeskripsi
raster_objRaster yang ingin Anda kueri.
pyramidLevelTingkat piramida yang ingin diregangkan. Nilai valid mulai dari 0. Nilai default: 0.
bandsID 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.
storageOptionString JSON yang terdiri dari opsi penyimpanan. Untuk informasi lebih lanjut, lihat tabel "storageOption" pada topik ini.
parallelOptionString JSON yang terdiri dari opsi operasi paralel. Untuk informasi lebih lanjut, lihat tabel " parallelOption" pada topik ini.
minRatioPersentil minimum berdasarkan mana raster diregangkan. Nilai valid: 0 hingga 100.
maxRatioPersentil maksimum berdasarkan mana raster diregangkan. Nilai valid: 0 hingga 100. Nilai parameter ini harus lebih besar dari nilai parameter minRatio.
minValuesArray yang terdiri dari nilai-nilai minimum. Jumlah nilai minimum harus sama dengan jumlah band yang ingin diregangkan.
maxValuesArray yang terdiri dari nilai-nilai maksimum. Jumlah nilai maksimum harus sama dengan jumlah band yang ingin diregangkan.

Tabel berikut menjelaskan parameter dalam storageOption.

ParameterDeskripsiTipeNilai defaultCatatan
chunkingMenentukan apakah data raster baru disimpan sebagai chunk.booleanSama dengan nilai untuk raster asli.Tidak ada.
chunkdimDimensi berdasarkan mana sistem membagi data raster baru menjadi chunk.stringSama dengan nilai untuk raster asli.Parameter ini hanya valid ketika Anda menetapkan parameter chunking ke true.
chunktableNama 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.
compressionFormat di mana sistem menekan data raster baru.stringSama dengan nilai untuk raster asli.Nilai valid:
  • NONE
  • JPEG
  • ZLIB
  • PNG
  • LZO
  • LZ4
qualityKualitas gambar raster baru setelah kompresi.integerSama dengan nilai untuk raster asli.Nilai valid: 1 hingga 99.

Parameter ini hanya berlaku jika Anda mengatur parameter compression ke JPEG.

interleavingMetode yang digunakan untuk menyisipkan data raster baru.stringSama dengan nilai untuk raster asli.Nilai valid:
  • bip: band interleaved by pixel (BIP)
  • bil: band interleaved by line (BIL)
  • bsq: band sequential (BSQ)
endianFormat endian raster baru.stringSama dengan nilai untuk raster asli.Nilai valid:
  • NDR: little endian
  • XDR: big endian
celltypeTipe piksel raster baru.stringSama dengan nilai untuk raster asli.Nilai valid:
  • 1bb: 1-bit Boolean value
  • 2bui: 2-bit unsigned integer
  • 4bui: 4-bit unsigned integer
  • 8bsi: 8-bit signed integer
  • 8bui: 8-bit unsigned integer
  • 16bsi: 16-bit signed integer
  • 16bui: 16-bit unsigned integer
  • 32bsi: 32-bit signed integer
  • 32bui: 32-bit unsigned integer
  • 64bsi: 64-bit signed integer
  • 64bui: 64-bit unsigned integer
  • 32bf: 32-bit floating number
  • 64bf: 64-bit floating number

Tabel berikut menjelaskan parameter dalam parallelOptions.

ParameterDeskripsiTipeNilai defaultCatatan
parallelDerajat paralelisme yang diizinkan.integerganos.parallel.degreeNilai valid: 1 hingga 64.

Deskripsi

Fungsi ini meregangkan raster secara linear dan mengembalikan raster baru.
  • 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

Contoh 1: Regangkan raster secara linear dengan persentase minimum dan maksimum ditetapkan ke 2%.
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;
Contoh 2: Regangkan raster ke rentang 100 hingga 200 di semua band yang ditentukan.
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;