제목

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=,);

Description

Returns one or more bands of an existing raster as a new raster. Useful for building new rasters from existing rasters or export of only selected bands of a raster or rearranging the order of bands in a raster. If no band is specified or any of specified bands does not exist in the raster, then all bands are returned. Used as a helper function in various functions such as for deleting a band.

[주의]

이 함수의 텍스트 변종으로 nbands 의 경우, 기본 구분자가 ,'1,2,3' 과 같은 서식으로 지정할 수 있다는 뜻입니다. 다른 구분자를 쓰고 싶은 경우 ST_Band(rast, '1@2@3', '@') 와 같은 서식을 이용하면 됩니다. 복수의 밴드를 지정하는 경우, 사용자가 이 함수의 ST_Band(rast, '{1,2,3}'::int[]); 와 같은 배열 서식을 이용하도록 강력히 권고합니다. PostGIS 향후 버전에서 밴드들의 text 목록 서식이 제거될 수도 있기 때문입니다.

2.0.0 버전부터 사용할 수 있습니다.

예시

This example creates two rasters: one containing band 1 of dummy_rast, and one containing band 2 reclassified as 2BUI.

Code
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

Return bands 2 and 3 using array cast syntax.

Code
SELECT ST_NumBands(ST_Band(rast, '{2,3}'::int[])) As num_bands
FROM dummy_rast WHERE rid=2;
래스터 출력
2

Return bands 2 and 3 using array syntax.

Code
SELECT ST_NumBands(ST_Band(rast, ARRAY[2, 3])) As num_bands
    FROM dummy_rast
WHERE rid=2;
                    
래스터 출력
2

This example uses three distinct shapes as the red, green, and blue bands of a synthetic raster. It compares the original RGB raster with band 2 followed by band 1 twice, and with band 3 alone.

Code
WITH canvas AS (
    SELECT ST_AddBand(
        ST_AddBand(
            ST_AddBand(
                ST_MakeEmptyRaster(128, 128, 0, 128, 1, -1, 0, 0, 0),
                '8BUI'::text, 0::double precision, 0::double precision
            ),
            '8BUI'::text, 0::double precision, 0::double precision
        ),
        '8BUI'::text, 0::double precision, 0::double precision
    ) AS rast
), bands AS (
    SELECT ST_SetValue(
        ST_SetValue(
            ST_SetValue(rast, 1, ST_Buffer('POINT(32 96)'::geometry, 22), 220),
            2, ST_Buffer('LINESTRING(18 20,110 110)'::geometry, 6,
                         'endcap=flat join=bevel'), 210
        ),
        3, ST_Buffer('LINESTRING(10 48,118 48)'::geometry, 7,
                     'endcap=flat'), 180
    ) AS rast
    FROM canvas
)
SELECT ST_AsPNG(rast) AS "original RGB",
    ST_AsPNG(ST_Band(rast, ARRAY[2, 1, 1])) AS "bands 2,1,1",
    ST_AsPNG(ST_Band(rast, 3)) AS "band 3"
FROM bands;
                    
래스터 출력
original RGB                | bands 2,1,1                | band 3
-----------------------------+----------------------------+----------------------------
 PNG image, 128 x 128 pixels | PNG image, 128 x 128 pixels | PNG image, 128 x 128 pixels
Figure
Geometry figure for visual-rt-st-band-04

Band selection from a multi-band raster.

원본(rast 열)

dupe_band

sing_band