ST_Neighborhood — 对象的二维双精度数组。
NODATA
由ColumnX和Rowy指定的给定波段像素周围的值,或在与栅格相同的空间参考坐标系中表示的几何点。
double precision[][]
ST_Neighborhood
(
raster
rast
, integer
bandnum
, integer
columnX
, integer
rowY
, integer
distanceX
, integer
distanceY
, boolean
exclude_nodata_value=true
)
;
double precision[][]
ST_Neighborhood
(
raster
rast
, integer
columnX
, integer
rowY
, integer
distanceX
, integer
distanceY
, boolean
exclude_nodata_value=true
)
;
double precision[][]
ST_Neighborhood
(
raster
rast
, integer
bandnum
, geometry
pt
, integer
distanceX
, integer
distanceY
, boolean
exclude_nodata_value=true
)
;
double precision[][]
ST_Neighborhood
(
raster
rast
, geometry
pt
, integer
distanceX
, integer
distanceY
, boolean
exclude_nodata_value=true
)
;
对象的二维双精度数组。
NODATA
由ColumnX和Rowy指定的给定波段像素周围的值,或在与栅格相同的空间参考坐标系中表示的几何点。这个
distanceX
和
distanceY
参数定义X和Y轴上指定像素周围的像素数,例如,我希望X轴上的所有值都在3像素距离内,Y轴上的值在感兴趣的像素周围2像素距离内。二维数组的中心值将是由ColumnX和Rowy或几何点指定的像素处的值。
频段编号从1开始,并且
bandnum
如果未指定,则假定为1。如果
exclude_nodata_value
设置为False,则所有像素都包括
nodata
像素被视为相交并返回值。如果
exclude_nodata_value
不传入,然后从栅格元数据中读取它。
![]() |
|
沿返回的2-D数组的每个轴的元素数为2*(
|
![]() |
|
可以将2-D数组输出传递给任何栅格处理内置函数,例如ST_Min4ma、ST_Sum4ma、ST_Mean4ma。 |
可用性:2.1.0
-- pixel 2x2 has value
SELECT
ST_Neighborhood(rast, 2, 2, 1, 1)
FROM (
SELECT
ST_SetValues(
ST_AddBand(
ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, 0),
'8BUI'::text, 1, 0
),
1, 1, 1, ARRAY[
[0, 1, 1, 1, 1],
[1, 1, 1, 0, 1],
[1, 0, 1, 1, 1],
[1, 1, 1, 1, 0],
[1, 1, 0, 1, 1]
]::double precision[],
1
) AS rast
) AS foo
st_neighborhood
---------------------------------
{{NULL,1,1},{1,1,1},{1,NULL,1}}
-- pixel 2x3 is NODATA
SELECT
ST_Neighborhood(rast, 2, 3, 1, 1)
FROM (
SELECT
ST_SetValues(
ST_AddBand(
ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, 0),
'8BUI'::text, 1, 0
),
1, 1, 1, ARRAY[
[0, 1, 1, 1, 1],
[1, 1, 1, 0, 1],
[1, 0, 1, 1, 1],
[1, 1, 1, 1, 0],
[1, 1, 0, 1, 1]
]::double precision[],
1
) AS rast
) AS foo
st_neighborhood
------------------------------
{{1,1,1},{1,NULL,1},{1,1,1}}
-- pixel 3x3 has value
-- exclude_nodata_value = FALSE
SELECT
ST_Neighborhood(rast, 3, 3, 1, 1, false)
FROM ST_SetValues(
ST_AddBand(
ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, 0),
'8BUI'::text, 1, 0
),
1, 1, 1, ARRAY[
[0, 1, 1, 1, 1],
[1, 1, 1, 0, 1],
[1, 0, 1, 1, 1],
[1, 1, 1, 1, 0],
[1, 1, 0, 1, 1]
]::double precision[],
1
) AS rast
st_neighborhood
---------------------------
{{1,1,0},{0,1,1},{1,1,1}}
ST_NearestValue , ST_Min4ma , ST_Max4ma , ST_Sum4ma , ST_Mean4ma , ST_Range4ma , ST_Distinct4ma , ST_StdDev4ma