ST_Neighborhood — Returnerar en 2D-array med dubbel precision av icke-NODATA-värden
runt ett visst bands pixel som anges av antingen en kolumnX och radY eller en geometrisk punkt uttryckt i samma spatiala referenskoordinatsystem som rastret.
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)
;
Returnerar en 2D-array med dubbel precision av icke-NODATA-värdena
runt ett visst bands pixel som anges av antingen en kolumnX och radY eller en geometrisk punkt uttryckt i samma spatiala referenskoordinatsystem som rastret. Parametrarna distanceX
och distanceY
definierar antalet pixlar runt den angivna pixeln i X- och Y-axlarna, t.ex. vill jag ha alla värden inom 3 pixlars avstånd längs X-axeln och 2 pixlars avstånd längs Y-axeln runt min intressanta pixel. Centrumvärdet för 2D-arrayen kommer att vara värdet på den pixel som anges av kolumnX och radY eller den geometriska punkten.
Bandnumren börjar på 1 och bandnum
antas vara 1 om det inte anges. Om exclude_nodata_value
är satt till false anses alla pixlar inklusive nodata-pixlar
skära varandra och returnerar värdet. Om värdet exclude_nodata_value
inte anges läses det från rastrets metadata.
![]() |
|
Antalet element längs varje axel i den returnerande 2D-arrayen är 2 * |
![]() |
|
Utdata från 2D-arrayen kan skickas till någon av de inbyggda funktionerna för rasterbearbetning, t.ex. ST_Min4ma, ST_Sum4ma, ST_Mean4ma. |
Tillgänglighet: 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}}