ST_Mean4ma — 计算邻域内像素平均值的栅格处理函数。
float8 ST_Mean4ma(float8[][] matrix, text nodatamode, text[] VARIADIC args);
double precision ST_Mean4ma(double precision[][][] value, integer[][] pos, text[] VARIADIC userargs);
计算像素邻域内的平均像素值。
对于变体 2,可以通过将该值传递给 userargs 来指定 NODATA 像素的替换值。
| ![[Note]](../images/note.png)  | |
| 变体 1 是一个专门的回调函数,用作 ST_MapAlgebraFctNgb 的回调参数。 | 
| ![[Note]](../images/note.png)  | |
| 变体 2 是一个专门的回调函数,用作 ST_MapAlgebra(回调函数版本) 的回调参数。 | 
| ![[Warning]](../images/warning.png)  | |
| 由于 ST_MapAlgebraFctNgb 从 2.1.0 版本开始已被弃用,因此不建议使用变体 1。 | 
可用性:2.0.0
增强:2.1.0 添加了变体 2
SELECT
    rid,
    st_value(
        st_mapalgebrafctngb(rast, 1, '32BF', 1, 1, 'st_mean4ma(float[][],text,text[])'::regprocedure, 'ignore', NULL), 2, 2
    )
FROM dummy_rast
WHERE rid = 2;
 rid |     st_value
-----+------------------
   2 | 253.222229003906
(1 row)
                
      SELECT
    rid,
    st_value(
              ST_MapAlgebra(rast, 1, 'st_mean4ma(double precision[][][], integer[][], text[])'::regprocedure,'32BF', 'FIRST', NULL, 1, 1)
       ,  2, 2)
  FROM dummy_rast
   WHERE rid = 2;
 rid |     st_value
-----+------------------
   2 | 253.222229003906
(1 row)