Melakukan interpolasi spasial berdasarkan kumpulan titik 3D dan mengembalikan hasilnya sebagai objek raster baru. Titik 3D dinyatakan dalam format (x,y,z).
Sintaksis
raster ST_InterpolateRaster(
geometry input_points,
integer width,
integer height,
cstring interpolateOptions,
cstring storageOptions);Parameter
| Parameter | Description |
|---|---|
input_points | Sekumpulan titik interpolasi. |
width | Jumlah kolom dari data raster. |
height | Jumlah baris dari data raster. |
interpolateOptions | String JSON yang menjelaskan pengaturan algoritma interpolasi spasial. |
storageOption | String JSON yang menjelaskan chunk untuk menyimpan objek raster. |
Tabel berikut menjelaskan bidang-bidang parameter interpolateOptions.
| Field | Description | Type | Default value | Configuration |
|---|---|---|---|---|
method | Metode interpolasi. | string | IDW | Hanya interpolasi Inverse Distance Weighting (IDW) yang didukung. |
radius | Radius pencarian. | double | 0.0 | Jika nilainya 0, radius pencarian dihitung berdasarkan jumlah titik input dan luas area. |
power | Bobot interpolasi. | double | 2.0 | Tidak ada. |
max_points | Jumlah maksimum titik. | integer | 10 | Harus lebih besar dari nilai bidang min_points. |
min_points | Jumlah minimum titik. | integer | 2 | Tidak ada. |
nodata | Nilai nodata. | double | 0.0 | Tidak ada. |
parallel | Tingkat paralelisme (DOP). | integer | 1 | Tidak ada. |
Tabel berikut menjelaskan bidang-bidang parameter storageOption.
| Field | Description | Type | Format | Default value | Notes |
|---|---|---|---|---|---|
chunkdim | Ukuran setiap chunk. | string | (w, h, b) | Sama dengan ukuran chunk pada objek asli. | Tidak ada. |
chunktable | Nama tabel chunk. | string | Tidak ada. | Tidak ada. | Jika bidang ini tidak ditentukan, tabel sementara akan dibuat. |
celltype | Tipe piksel objek raster. | string | Tidak ada. | 16BUI | Nilai yang valid: 8BSI, 8BUI, 16BSI, 16BUI, 32BSI, 32BUI, 32BF, 64BF. |
Contoh
Contoh berikut menggunakan ST_Collect untuk menggabungkan titik-titik 3D dari point_table dan melakukan interpolasi menjadi raster berukuran 256×256 menggunakan metode IDW dengan radius pencarian 3,0.
SELECT ST_InterpolateRaster(
st_collect(ST_MakePoint(st_x(geom),st_y(geom),value)),
256,
256,
'{"method":"IDW","radius":"3.0","max_points":"4","min_points":"1"}',
'{"chunktable":"rbt","celltype":"8bui"}')
FROM point_table;
st_interpolateraster
---------------------
{"attributes":{"id":"f54cff0a-cca4-4e51-ac11-7aa5a3c9d9b6","name":"","type":"normal","version":1.1,"storage":{"mode":"internal","location":"rbt","md5":"","endian":"ndr","compress":"lz4","compressQuality":75,"fileSystem":"null","chunking":{"enable":true,"chunkHeight":256,"chunkWidth":256,"chunkBand":1,"rowChunksDimension":1,"columnChunksDimension":1,"bandChunksDimension":1},"cellType":"8bui","interleaving":"bsq"},"description":"","width":256,"height":256,"bands":1,"pyramid":{"resample":"near","level":0,"table":""},"overview":{"table":"","column":"","pyramidLevel":1},"referenceOriginPoint":{"type":"Raster","ulp":{"row":0,"column":0,"band":0},"rrp":{"row":0,"column":0,"band":0},"wrp":{"x":0,"y":0,"z":0}}},"spatialReference":{"valid":true,"srid":0,"refLocation":"center","affline":{"upperleftx":0.0,"upperlefty":2.0,"scalex":0.0078125,"scaley":-0.0078125,"skewx":0.0,"skewy":0.0},"gcps":{"count":0}}}Contoh berikut mengatur parallel ke 4 untuk mengaktifkan interpolasi paralel dengan tingkat paralelisme (DOP) sebesar 4.
SELECT ST_InterpolateRaster(
st_collect(ST_MakePoint(st_x(geom),st_y(geom),value)),
256,
256,
'{"radius":"2.0","max_points":"4","min_points":"1","parallel":"4"}',
'{"chunktable":"rbt","celltype":"8bui"}')
FROM point_table;
st_interpolateraster
---------------------
{"attributes":{"id":"b769c306-4416-4e31-9e60-d2b847642190","name":"","type":"normal","version":1.1,"storage":{"mode":"internal","location":"rbt","md5":"","endian":"ndr","compress":"lz4","compressQuality":75,"fileSystem":"null","chunking":{"enable":true,"chunkHeight":256,"chunkWidth":256,"chunkBand":1,"rowChunksDimension":1,"columnChunksDimension":1,"bandChunksDimension":1},"cellType":"8bui","interleaving":"bsq"},"description":"","width":256,"height":256,"bands":1,"pyramid":{"resample":"near","level":0,"table":""},"overview":{"table":"","column":"","pyramidLevel":1},"referenceOriginPoint":{"type":"Raster","ulp":{"row":0,"column":0,"band":0},"rrp":{"row":0,"column":0,"band":0},"wrp":{"x":0,"y":0,"z":0}}},"spatialReference":{"valid":true,"srid":0,"refLocation":"center","affline":{"upperleftx":0.0,"upperlefty":2.0,"scalex":0.0078125,"scaley":-0.0078125,"skewx":0.0,"skewy":0.0},"gcps":{"count":0}}}