GISarabia.org
PostGIS › الدليل الرسمي › 11. مرجع الرستر › 11.5. دوال الوصول إلى نطاقات الرستر
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_BandIsNoData

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

الاسم

ST_BandIsNoData — تُعيد true إذا كان النطاق ممتلئًا بقيم nodata فقط.

المختصر

boolean ST_BandIsNoData(raster rast, integer band, boolean forceChecking=true);

boolean ST_BandIsNoData(raster rast, boolean forceChecking=true);

الوصف

تُعيد true إذا كان النطاق ممتلئًا بقيم nodata فقط. يُفترض النطاق 1 إذا لم يُحدَّد. إذا كان الوسيط الأخير TRUE، يُفحص النطاق بأكمله بكسلًا بكسلًا. وإلا فإن الدالة تُعيد ببساطة قيمة العلامة isnodata للنطاق. القيمة الافتراضية لهذا المعامل هي FALSE إذا لم يُحدَّد.

متاحة منذ: 2.0.0

[ملاحظة]

إذا كانت العلامة غير محدَّثة (أي أن النتيجة تختلف بين استخدام TRUE وسيطًا أخيرًا وعدم استخدامه)، فعليك تحديث الرستر لضبط هذه العلامة على true، باستخدام ST_SetBandIsNodata()، أو ST_SetBandNodataValue() مع TRUE وسيطًا أخيرًا. انظر ST_SetBandIsNoData.

أمثلة

-- Create dummy table with one raster column
create table dummy_rast (rid integer, rast raster);

-- Add raster with two bands, one pixel/band. In the first band, nodatavalue = pixel value = 3.
-- In the second band, nodatavalue = 13, pixel value = 4
insert into dummy_rast values(1,
(
'01' -- little endian (uint8 ndr)
||
'0000' -- version (uint16 0)
||
'0200' -- nBands (uint16 0)
||
'17263529ED684A3F' -- scaleX (float64 0.000805965234044584)
||
'F9253529ED684ABF' -- scaleY (float64 -0.00080596523404458)
||
'1C9F33CE69E352C0' -- ipX (float64 -75.5533328537098)
||
'718F0E9A27A44840' -- ipY (float64 49.2824585505576)
||
'ED50EB853EC32B3F' -- skewX (float64 0.000211812383858707)
||
'7550EB853EC32B3F' -- skewY (float64 0.000211812383858704)
||
'E6100000' -- SRID (int32 4326)
||
'0100' -- width (uint16 1)
||
'0100' -- height (uint16 1)
||
'6' -- hasnodatavalue and isnodata value set to true.
||
'2' -- first band type (4BUI)
||
'03' -- novalue==3
||
'03' -- pixel(0,0)==3 (same that nodata)
||
'0' -- hasnodatavalue set to false
||
'5' -- second band type (16BSI)
||
'0D00' -- novalue==13
||
'0400' -- pixel(0,0)==4
)::raster
);

select st_bandisnodata(rast, 1) from dummy_rast where rid = 1; -- Expected true
select st_bandisnodata(rast, 2) from dummy_rast where rid = 1; -- Expected false