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=,)
;
既存のラスタの、一つ以上のバンドを新しいラスタとして返します。既存ラスタから新しいラスタを構築したり、ラスタの選択したバンドのみを出力する際に使えます。バンドが指定されない場合には、1番バンドのみと仮定します。バンド削除等の様々な関数を補助する関数として使われています。
![]() | |
|
Availability: 2.0.0
-- 二つの新しいラスタを生成します -- 1 - ダミーラスタの1番バンド -- 2 - ダミーラスタの3番バンドを生成して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
-- 配列へのキャストを使って2番と3番バンドを返します SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands FROM dummy_rast WHERE rid=2; num_bands ---------- 2 -- バンドの指定に配列を使って2番と3番バンドを返します SELECT ST_NumBands(ST_Band(rast, ARRAY[2,3])) As num_bands FROM dummy_rast WHERE rid=2;
![]() 元画像 (rastカラム) | ![]() dupe_band | ![]() sing_band |
-- 元画像の2番バンド、1番バンド、1番バンドでバンドを成すラスタと -- 3番バンドだけのラスタの生成 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;