GISarabia.org
PostGIS › الدليل الرسمي › 11. مرجع الرستر › 11.3. منشئات الرستر
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_Band

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

الاسم

ST_Band — تُعيد نطاقًا أو أكثر من رستر موجود في صورة رستر جديد. مفيدة لبناء رسترات جديدة من رسترات موجودة.

المختصر

raster ST_Band(raster rast, integer[] nbands = ARRAY[1]);

raster ST_Band(raster rast, integer nband);

raster ST_Band(raster rast, text nbands, character delimiter=,);

الوصف

تُعيد نطاقًا أو أكثر من رستر موجود في صورة رستر جديد. مفيدة لبناء رسترات جديدة من رسترات موجودة، أو لتصدير نطاقات مختارة فقط من رستر، أو لإعادة ترتيب النطاقات في رستر. إذا لم يُحدَّد نطاق أو كان أيٌّ من النطاقات المحددة غير موجود في الرستر، تُعاد جميع النطاقات. تُستخدم دالةً مساعدة في دوال مختلفة مثل حذف نطاق.

[تنبيه]

في صيغة الدالة التي تأخذ nbands كنص، يكون الفاصل الافتراضي هو ,، ما يعني أنه يمكنك طلب '1,2,3'، وإذا أردت استخدام فاصل مختلف فستكتب ST_Band(rast, '1@2@3', '@'). لطلب نطاقات متعددة، نوصي بشدة باستخدام صيغة المصفوفة من هذه الدالة، مثل ST_Band(rast, '{1,2,3}'::int[]);، لأن صيغة قائمة النطاقات من نوع text قد تُزال في إصدارات PostGIS المستقبلية.

متاحة منذ: 2.0.0

أمثلة

-- Make 2 new rasters: 1 containing band 1 of dummy, second containing band 2 of dummy and then reclassified as a 2BUI
SELECT ST_NumBands(rast1) As numb1, ST_BandPixelType(rast1) As pix1,
 ST_NumBands(rast2) As numb2,  ST_BandPixelType(rast2) As pix2
FROM (
    SELECT ST_Band(rast) As rast1, ST_Reclass(ST_Band(rast,3), '100-200):1, [200-254:2', '2BUI') As rast2
        FROM dummy_rast
        WHERE rid = 2) As foo;

 numb1 | pix1 | numb2 | pix2
-------+------+-------+------
     1 | 8BUI |     1 | 2BUI
                    
-- Return bands 2 and 3. Using array cast syntax
SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands
    FROM dummy_rast WHERE rid=2;

num_bands
----------
2

-- Return bands 2 and 3. Use array to define bands
SELECT ST_NumBands(ST_Band(rast, ARRAY[2,3])) As num_bands
    FROM dummy_rast
WHERE rid=2;
                    

الأصل (العمود rast)

dupe_band

sing_band

--Make a new raster with 2nd band of original and 1st band repeated twice,
and another with just the third band
SELECT rast, ST_Band(rast, ARRAY[2,1,1]) As dupe_band,
    ST_Band(rast, 3) As sing_band
FROM samples.than_chunked
WHERE rid=35;