الاسم
ST_NearestValue — تُعيد أقرب قيمة غير NODATA لبكسل نطاق معيّن محدد بـ columnx وrowy أو بنقطة هندسية مُعبَّر عنها في نظام الإحداثيات المرجعي المكاني نفسه للرستر.
المختصر
double precision ST_NearestValue(raster rast, integer bandnum, geometry pt, boolean exclude_nodata_value=true);
double precision ST_NearestValue(raster rast, geometry pt, boolean exclude_nodata_value=true);
double precision ST_NearestValue(raster rast, integer bandnum, integer columnx, integer rowy, boolean exclude_nodata_value=true);
double precision ST_NearestValue(raster rast, integer columnx, integer rowy, boolean exclude_nodata_value=true);
الوصف
تُعيد أقرب قيمة غير NODATA لنطاق معيّن في بكسل معيّن (columnx، rowy) أو عند نقطة هندسية محددة. إذا كان البكسل (columnx، rowy) أو البكسل عند النقطة الهندسية المحددة NODATA، فستبحث الدالة عن أقرب بكسل إلى البكسل (columnx، rowy) أو إلى النقطة الهندسية تكون قيمته غير NODATA.
يبدأ ترقيم النطاقات من 1 ويُفترض أن bandnum يساوي 1 إذا لم يُحدَّد. إذا ضُبط exclude_nodata_value على false، فإن جميع البكسلات بما فيها بكسلات nodata تُعدّ متقاطعة وتُعيد قيمة. وإذا لم يُمرَّر exclude_nodata_value، فتُقرأ قيمته من البيانات الوصفية للرستر.
متاحة منذ: 2.1.0
|
|
|
ST_NearestValue بديل مباشر لـ ST_Value. |
أمثلة
-- pixel 2x2 has value
SELECT
ST_Value(rast, 2, 2) AS value,
ST_NearestValue(rast, 2, 2) AS nearestvalue
FROM (
SELECT
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, 0),
'8BUI'::text, 1, 0
),
1, 1, 0.
),
2, 3, 0.
),
3, 5, 0.
),
4, 2, 0.
),
5, 4, 0.
) AS rast
) AS foo
value | nearestvalue
-------+--------------
1 | 1
-- pixel 2x3 is NODATA
SELECT
ST_Value(rast, 2, 3) AS value,
ST_NearestValue(rast, 2, 3) AS nearestvalue
FROM (
SELECT
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, 0),
'8BUI'::text, 1, 0
),
1, 1, 0.
),
2, 3, 0.
),
3, 5, 0.
),
4, 2, 0.
),
5, 4, 0.
) AS rast
) AS foo
value | nearestvalue
-------+--------------
| 1