名前

ST_Band — 既存のラスタの1つ以上のバンドを新しいラスタとして返します。既存のラスタから新しいラスタを構築する際に使います。

概要

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

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

raster ST_Band(raster rast, integer nband);

説明

既存のラスタの1つ以上のバンドを新しいラスタとして返します。既存ラスタから新しいラスタを構築したり、ラスタの選択したバンドのみを出力する際に使います。バンドが指定されない場合には、1番バンドのみと仮定します。バンド削除等の様々な関数を補助する関数として使われています。

初出: 2.0.0

-- 2つの新しいラスタを生成します
-- 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')) 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番バンドを2回繰り返したラスタと
-- 3番バンドだけのラスタの生成
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;							
					

関連情報

ST_AddBand, ST_NumBands, ST_Reclass