Name

ST_BandIsNoData — Gibt TRUE aus, wenn das Band ausschließlich aus NODATA Werten besteht.

Synopsis

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

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

Beschreibung

Gibt TRUE aus, wenn das Band ausschließlich aus NODATA Werten besteht. Wenn kein Band angegeben ist, wird Band 1 angenommen. Wenn der letzte Übergabewert TRUE ist, dann wird das gesamte Band, Pixel für Pixel, überprüft. Sonst gibt die Funktion nur den Wert der Flag "isnodata" für das Band aus. Wenn dieser Parameter nicht gesetzt wurde, wird der Standardwert "FALSE" angenommen.

Verfügbarkeit: 2.0.0

[Note]

Wenn die Flag geändert wurde (d.h.: das Ergebnis unterscheidet sich wenn man TRUE als letzten Parameter angibt, von jenem bei dem dieser Parameter nicht verwendet wird), sollten Sie den Raster aktualisieren um diese Flag auf TRUE zu setzen, indem Sie ST_SetBandIsNodata() anwenden, oder ST_SetBandNodataValue() mit TRUE als letzten Übergabewert ausführen. Siehe ST_SetBandIsNoData.

Beispiele

-- 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