GISarabia.org
PostGIS › الدليل الرسمي › 11. مرجع الرستر › 11.6. دوال الوصول إلى بكسلات الرستر وضبطها
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_NearestValue

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

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
                

انظر أيضًا

ST_Neighborhood، ST_Value