ST_Union — Retorna a união de um conjunto de tiles raster em um único raster composto de 1 ou mais bandas.
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)
;
Retorna a união de um conjunto de tiles raster em um único raster composto de pelo menos uma banda. A extensão resultante do raster é a extensão do conjunto todo. No caso da interseção, o valor resultante é definido pelo uniontype
que é um dos seguintes: LAST (default), 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. |
Disponibilidade: 2.0.0
Melhorias: 2.1.0 Velocidade aprimorada (fully C-Based)
Disponibilidade: 2.1.0 variante ST_Union(rast, unionarg) foi introduzida.
Melhorias: 2.1.0 uniões ST_Union(rast) (variante 1) todas as bandas de todos os rasters de entrada. As versões anteriores do PostGIS assumiam a primeira banda.
Melhorias: 2.1.0 ST_Union(rast, uniontype) (variante 4) uniões de todas as bandas de todos os rasters de entrada.
-- 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) );
Aqui, usamos a sintaxe mais longa se só queremos uma subset de bandas ou queremos alterar a ordem das bandas
-- 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) );