ST_InvDistWeight4ma — 픽셀의 이웃으로부터 픽셀 값을 보간하는 래스터 공간 처리 함수입니다.
double precision ST_InvDistWeight4ma(double precision[][][] value, integer[][] pos, text[] VARIADIC userargs);
거리 역산 가중법(Inverse Distance Weighted method)을 이용해서 픽셀에 대한 보간값을 계산합니다.
userargs 를 통해 넘길 수 있는 선택적인 파라미터가 2개 있습니다. 첫 번째 파라미터는 거리 역산 가중법 방정식에 쓰이는 0과 1 사이의 역률(力率)입니다(다음 방정식의 k 변수). 따로 설정하지 않을 경우, 기본값은 1입니다. 두 번째 파라미터는 관심 픽셀의 값이 이웃에서 나온 보간값에 포함될 경우에만 적용되는 가중치 백분율입니다. 관심 픽셀이 값을 가지고 있고 따로 설정하지 않을 경우, 해당 값을 반환합니다.
The basic inverse-distance weighted estimate is:
Here zᵢ is a neighboring pixel value, dᵢ is its distance from the pixel being estimated, and k is a real-valued power factor between 0 and 1.
|
|
|
이 함수는 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