Merectifikasi objek raster menggunakan Rational Polynomial Coefficients (RPC) dan mengembalikan raster yang telah direktifikasi.
Sintaksis
raster ST_RPCRectify(raster rast,
raster dem DEFAULT NULL,
cstring rectifyOption DEFAULT '{}',
cstring storageOption DEFAULT '{}',
cstring parallelOption DEFAULT '{}')
Parameter
| Parameter | Type | Default | Description |
|---|
rast | raster | — | Objek raster yang akan diluruskan harus berisi informasi RPC. |
dem | raster | NULL | Digital elevation model (DEM) yang digunakan sebagai referensi selama proses rectifikasi. |
rectifyOption | cstring (JSON) | '{}' | Opsi rectifikasi. |
storageOption | cstring (JSON) | '{}' | Opsi penyimpanan untuk raster output. |
parallelOption | cstring (JSON) | '{}' | Opsi pemrosesan paralel. |
Catatan Objek raster input harus berisi informasi RPC.
Parameter rectifyOption
| Parameter | Type | Default | Description |
|---|
resample | string | Near | Metode resampling. Nilai yang valid: Near, Average, Cubic, Bilinear. |
outSrid | integer | Sama dengan sumber | Spatial reference ID (SRID) dari raster output. |
nodataValue | float8 atau float8[] | NULL | Nilai nodata untuk raster output. Tentukan satu nilai untuk menerapkannya ke semua band, atau array (misalnya, [0, 0, 0]) dengan satu elemen per band. Jika tidak ditentukan, nilai default-nya adalah nilai nodata dari raster sumber, atau 0 jika raster sumber tidak memiliki nilai tersebut. |
RPC_DEM_MISSING_VALUE | float8 | 0 | Nilai ketinggian yang digunakan ketika parameter dem memiliki nilai nodata atau piksel berada di luar jangkauan DEM yang valid. |
Parameter storageOption
| Parameter | Type | Default | Description |
|---|
chunking | boolean | Sama dengan sumber | Menentukan apakah raster output disimpan dalam bentuk chunk. |
chunkdim | string | Sama dengan sumber | Dimensi chunk. Hanya berlaku jika chunking bernilai true. |
chunktable | string | '' | Nama tabel chunk. Atur ke '' untuk membuat tabel chunk temporary dengan nama acak dalam sesi saat ini. Tabel temporary akan dihapus saat sesi berakhir. Tentukan nama untuk menyimpan raster output melebihi durasi sesi. Jika metode paralel tidak mendukung tabel chunk anonim, buat tabel chunk terlebih dahulu. |
compression | string | Sama dengan sumber | Format kompresi. Nilai yang valid: NONE, JPEG, ZLIB, PNG, LZO, LZ4, JP2K. |
quality | integer | Sama dengan sumber | Kualitas kompresi. Hanya berlaku untuk kompresi JPEG. |
interleaving | string | Sama dengan sumber | Metode interleaving band. Nilai yang valid: bip (band interleaved by pixel, BIP), bil (band interleaved by line, BIL), bsq (band sequential, BSQ). |
endian | string | Sama dengan sumber | Urutan byte dari raster output. Nilai yang valid: NDR (little endian), XDR (big endian). |
Contoh
CREATE TABLE IF NOT EXISTS raster_table(id integer, rast raster);
-- Muat raster RPC.
INSERT INTO raster_table VALUES(1, ST_ImportFrom('t_chunk', '<RAST_DATA_DIR>/rpc.tif', '{}'));
-- Muat raster DEM.
INSERT INTO raster_table VALUES(2, ST_ImportFrom('t_chunk', '<RAST_DATA_DIR>/rpc_dem.tif', '{}'));
CREATE TABLE raster_result(id integer, rast raster);
-- Rectifikasi tanpa DEM, menggunakan resampling nearest neighbor (NNS).
INSERT INTO raster_result(id, rast)
SELECT 10, ST_RPCRectify(
rast,
NULL,
'{"resample": "Near"}',
'{"chunking": true, "chunkdim": "(256,256,1)", "interleaving": "bsq", "chunktable": "t_chunk"}'
)
FROM raster_table
WHERE id = 1;
-- Rectifikasi dengan DEM dan output dalam EPSG:32635, menggunakan 8 Parallel Worker.
INSERT INTO raster_result(id, rast)
SELECT 11, ST_RPCRectify(
rast,
(SELECT rast FROM raster_table WHERE id = 2),
'{"resample": "Near", "outSrid": 32635}',
'{"chunking": true, "chunkdim": "(256,256,1)", "interleaving": "bsq", "chunktable": "t_chunk"}',
'{"parallel": 8}'
)
FROM raster_table
WHERE id = 1;