ST_Union — Returnerar sammanslagningen av en uppsättning rasterplattor till ett enda raster som består av 1 eller flera band.
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);
Returnerar sammanslagningen av en uppsättning rasterplattor till ett enda raster som består av minst ett band. Det resulterande rastrets utsträckning är hela uppsättningens utsträckning. Vid intersektion definieras det resulterande värdet av uniontype, som är något av följande: LAST (standard), FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE.
|
|
|
För att rasters ska kunna sammanfogas måste de alla ha samma inriktning. Använd ST_SameAlignment och ST_NotSameAlignmentReason för mer information och hjälp. Ett sätt att åtgärda problem med alignment är att använda ST_Resample och använda samma referensraster för alignment. |
Tillgänglighet: 2.0.0
Förbättrad: 2.1.0 Förbättrad hastighet (helt C-baserad).
Tillgänglighet: 2.1.0 Varianten ST_Union(rast, unionarg) introducerades.
Förbättrad: 2.1.0 ST_Union(rast) (variant 1) förenar alla band i alla ingående raster. Tidigare versioner av PostGIS antog det första bandet.
Förbättrad: 2.1.0 ST_Union(rast, uniontype) (variant 4) förenar alla band i alla ingående raster.
Återskapa en uppdelad rasterruta med ett band.
Detta skapar ett enda band från första bandet i rasterrutorna. De bildar den ursprungliga filsystemsrutan.
SELECT filename, ST_Union(rast, 1) As file_rast
FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;
Returnera ett raster med flera band som är unionen av rutor som skär geometrin.
Detta skapar ett raster med flera band som samlar alla rutor som skär en linje. Observera att detta i 2.0 endast skulle ha returnerat ett raster med ett band. Den nya unionen fungerar som standard på alla band. Detta motsvarar 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) );
Välj och ordna om band medan rutor som skär en geometri slås samman.
Här använder vi den längre syntaxen om vi bara vill ha en delmängd av banden eller om vi vill ändra ordningen på banden
Detta skapar ett raster med flera band som samlar alla rutor som skär en linje.
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) );