Name

ST_InvDistWeight4ma — 从像素的邻域内插像素值的栅格处理函数。

Synopsis

double precision ST_InvDistWeight4ma(double precision[][][] value, integer[][] pos, text[] VARIADIC userargs);

描述

使用反距离加权方法计算像素的插值。

有两个可选参数可以通过 userargs 传递。 第一个参数是反距离加权方程中使用的介于 0 和 1 之间的功率因数(下面方程中的变量 k)。 如果未指定,则默认值为 1。第二个参数是仅当感兴趣像素的值包含在邻域的插值中时应用的权重百分比。 如果未指定并且感兴趣的像素具有值,则返回该值。

基本反距离权重方程为:

k = 功率因数,0 到 1 之间的实数

[Note]

该函数是一个专门的回调函数,用作 ST_MapAlgebra (callback function version)(回调函数版本)的回调参数。

可用性:2.1.0

示例

WITH foo AS (
    SELECT ST_SetValues(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '32BF', NULL::double precision, -9999),
        1, 1, 1, ARRAY[
            [10, 10, 10],
            [10, NULL, 20],
            [20, 20, 20]
        ]::double precision[][]
    ) AS rast
)
SELECT ST_Value(
    ST_MapAlgebra(
        rast,
        1,
        'ST_InvDistWeight4ma(double precision[][][],integer[][],text[])'::regprocedure,
        '32BF',
        'FIRST',
        NULL,
        1,
        1
    ),
    2, 2
) AS interpolated_value
FROM foo;
15