ST_Union — 래스터 타일 집합을 1개 이상의 밴드로 이루어진 단일 래스터로 통합합니다.
raster ST_Union(
setof raster rast)
;
raster ST_Union(
setof raster rast, unionarg[] unionargset)
;
raster ST_Union(
setof raster rast, integer nband)
;
raster ST_Union(
setof raster rast, text uniontype)
;
raster ST_Union(
setof raster rast, integer nband, text uniontype)
;
래스터 타일 집합을 최소한 밴드 1개로 이루어진 단일 래스터로 통합합니다. 출력 래스터의 범위는 전체 집합의 범위입니다. 교차 부분의 경우, uniontype
이 결과 값을 정의합니다. uniontype
의 값은 LAST(기본값), FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE 가운데 하나입니다.
In order for rasters to be unioned, they must all have the same alignment. Use ST_SameAlignment and ST_NotSameAlignmentReason for more details and help. One way to fix alignment issues is to use ST_Resample and use the same reference raster for alignment. |
2.0.0 버전부터 사용할 수 있습니다.
개선 사항: 2.1.0 버전부터 속도가 향상됐습니다(완전히 C언어 기반으로 변경했습니다).
2.1.0 버전부터 ST_Union(rast, unionarg) 변종을 사용할 수 있습니다.
개선 사항: 2.1.0 버전부터 ST_Union(rast) 변종 1 함수가 모든 입력 래스터의 모든 밴드를 통합합니다. PostGIS 이전 버전에서는 첫 번째 밴드로 가정했습니다.
개선 사항: 2.1.0 버전부터 ST_Union(rast, uniontype) 변종 4 함수가 모든 입력 래스터의 모든 밴드를 통합합니다.
-- this creates a single band from first band of raster tiles -- that form the original file system tile SELECT filename, ST_Union(rast,1) As file_rast FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;
-- this creates a multi band raster collecting all the tiles that intersect a line -- Note: In 2.0, this would have just returned a single band raster -- , new union works on all bands by default -- this is equivalent to unionarg: ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), ROW(3, 'LAST')]::unionarg[] SELECT ST_Union(rast) FROM aerials.boston WHERE ST_Intersects(rast, ST_GeomFromText('LINESTRING(230486 887771, 230500 88772)',26986) );
다음은 밴드들의 하위 집합만을 원하거나, 또는 밴드들의 순서를 변경하고자 하는 경우 더 긴 문법을 사용하는 예시입니다.
-- this creates a multi band raster collecting all the tiles that intersect a line SELECT ST_Union(rast,ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::unionarg[]) FROM aerials.boston WHERE ST_Intersects(rast, ST_GeomFromText('LINESTRING(230486 887771, 230500 88772)',26986) );