ST_BandIsNoData — 指定したバンドがNODATA値だけで満たされている場合には、TRUEを返します。
boolean ST_BandIsNoData(
raster rast, integer band, boolean forceChecking=true)
;
boolean ST_BandIsNoData(
raster rast, boolean forceChecking=true)
;
指定したバンドがNODATA値だけで満たされている場合には、TRUEを返します。バンド番号を指定しない場合には、1番と仮定します。最後の引数がTRUEの場合には、全バンドについてピクセル毎に調べます。他の場合には、isnodataフラグの値を返すだけです。この引数を指定しない場合のデフォルト値はFALSEです。
Availability: 2.0.0
![]() | |
フラグが汚れている (最後の引数をTRUEにした場合としない場合とで結果が違う)場合には、ST_SetBandIsNodata関数、または最後の引数をTRUEにしたST_BandNodataValue関数を使って、フラグにTRUEを設定するためにラスタを更新するべきです。ST_SetBandIsNoDataを参照して下さい。 |
-- 一つのラスタカラムを持つダミーテーブルの生成 create table dummy_rast (rid integer, rast raster); -- 2バンドでバンドごとに1ピクセルを持つラスタを追加します。 -- 一つ目のバンドにはnodatavalueとピクセル値をともに3とし、 -- 二つ目のバンドにはnodatavalue=13とピクセル値=4とします。 insert into dummy_rast values(1, ( '01' -- little endian - リトルエンディアン (uint8 ndr) || '0000' -- version - 版 (uint16 0) || '0200' -- nBands - バンド数 (uint16 0) || '17263529ED684A3F' -- scaleX - X方向セルサイズ (float64 0.000805965234044584) || 'F9253529ED684ABF' -- scaleY - Y方向セルサイズ (float64 -0.00080596523404458) || '1C9F33CE69E352C0' -- ipX - 左上隅X値 (float64 -75.5533328537098) || '718F0E9A27A44840' -- ipY - 左上隅Y値 (float64 49.2824585505576) || 'ED50EB853EC32B3F' -- skewX - スキューX (float64 0.000211812383858707) || '7550EB853EC32B3F' -- skewY - スキューY (float64 0.000211812383858704) || 'E6100000' -- SRID (int32 4326) || '0100' -- width - 横セル数 (uint16 1) || '0100' -- height - 縦セル数 (uint16 1) || '6' -- hasnodatavalueとisnodataの値をtrueにする。 || '2' -- 1番バンドのタイプ (4BUI) || '03' -- NODATA値==3 || '03' -- 0列0行ピクセルの値==3 (NODATA値と同じ) || '0' -- hasnodatavalueをFALSEにする。 || '5' -- 2番バンドのタイプ (16BSI) || '0D00' -- NODATA値==13 || '0400' -- 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