Name

ST_Union — Gibt die Vereinigung mehrerer Rasterkacheln in einem einzelnen Raster mit mehreren Bändern zurück.

Synopsis

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

Beschreibung

Gibt die Vereinigung von Rasterkacheln in einem einzelnen Raster zurück, der mindestens aus einem Band besteht. Die räumliche Ausdehnung des Zielraster entspricht der Gesamtausdehnung. Im Fall von Überschneidungen wird der resultierende Wert durch uniontype festgelegt, welcher folgende Werte annehmen kann: LAST (Standardwert), FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGE.

[Note]

Damit Raster vereinigt werden können, müssen sie alle gleich ausgerichtet sein. Siehe ST_SameAlignment und ST_NotSameAlignmentReason für weitere Details und Hilfe. Eine Möglichkeit, um Probleme mit der Ausrichtung zu beheben ist ST_Resample und die Verwendung eines gemeinsamen Referenzraster zur Anpassung.

Verfügbarkeit: 2.0.0

Erweiterung: 2.1.0 Geschwindigkeit verbessert (zur Gänze C-basiert)

Verfügbarkeit: 2.1.0 ST_Union(rast, unionarg) Variante wurde eingeführt.

Erweiterung: 2.1.0 ST_Union(rast) (Variante 1) vereinigt alle Bänder aller Ausgangsraster. Vorherige Versionen von PostGIS setzten das erste Band voraus.

Erweiterung: 2.1.0 ST_Union(rast, uniontype) (Variante 4) vereinigt alle Bänder aller Ausgangsraster.

Beispiele: Wiederherstellung eines einzelnen Bandes einer Rasterkachel

-- erzeugt ein einzelnes Band aus den ersten Bänder der Rasterkacheln,
-- welche die ursprüngliche Kachel im Dateisystem aufbauen
SELECT filename, ST_Union(rast,1) As file_rast
FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;
                                        

Beispiele: Vereinigt Kacheln, die eine Geometrie schneiden, zu einem Raster mit mehreren Bändern

-- erzeugt einen Raster mit mehreren Bändern, indem alle Kacheln die eine Linie schneiden gesammelt werden
-- Anmerkung: bei 2.0 würde nur ein einzelnes Rasterband zurückgegeben
-- , das neue UNION bearbeitet standardmäßig alle Bänder
-- dies ist gleichbedeutend mit 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) );
                                        

Beispiele: Vereinigt Kacheln, die eine Geometrie schneiden, zu einem Raster mit mehreren Bändern

Um nur eine Teilmenge der Bänder zu erhalten, oder die Reihenfolge der Bänder zu ändern, können wir die längere Syntax verwenden

-- erzeugt einen Raster mit mehreren Bändern, indem alle Kacheln die eine Linie schneiden gesammelt werden
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) );
                                        

Siehe auch

unionarg, ST_Envelope, ST_ConvexHull, ST_Clip, ST_Union