名稱

ST_InterpolateRaster — 基於輸入的 3D 點集合插值產生格網表面,使用 X 和 Y 值定位格網上的點,並使用點的 Z 值作為表面高程。

概要

raster ST_InterpolateRaster(geometry input_points, text algorithm_options, raster template, integer template_band_num=1);

描述

基於輸入的 3D 點集合插值產生格網表面,使用 X 和 Y 值定位格網上的點,並使用點的 Z 值作為表面高程。有五種插值演算法可供選擇:反距離權重、反距離權重最近鄰、移動平均、最近鄰和線性插值。有關演算法及其參數的更多詳細資訊,請參閱 gdal_grid 文件。 有關插值如何計算的更多資訊,請參閱GDAL 格網教程

輸入參數為

input_points

驅動插值的點。任何帶有 Z 值的幾何形狀都是可接受的,將使用輸入中的所有點。

algorithm_options

定義演算法和演算法選項的字串,格式與 gdal_grid 使用的格式相同。 例如,對於平滑度為 2 的反距離插值,您將使用 "invdist:smoothing=2.0"

template

用於驅動輸出柵格幾何形狀的柵格範本。 寬度、高度、像素大小、空間範圍和像素類型將從此範本中讀取。

template_band_num

預設情況下,範本柵格中的第一個波段用於驅動輸出柵格,但可以使用此參數進行調整。

可用性: 3.2.0

範例

SELECT ST_InterpolateRaster(
    'MULTIPOINT(10.5 9.5 1000, 11.5 8.5 1000, 10.5 8.5 500, 11.5 9.5 500)'::geometry,
    'invdist:smoothing:2.0',
    ST_AddBand(ST_MakeEmptyRaster(200, 400, 10, 10, 0.01, -0.005, 0, 0), '16BSI')
)

另請參閱

ST_Contour