Name

ST_DumpAsPolygons — Gibt geomval (geom,val) Zeilen eines Rasterbandes zurück. Wenn kein Band angegeben ist, wird die Bandnummer standardmäßig auf 1 gesetzt.

Synopsis

setof geomval ST_DumpAsPolygons(raster rast, integer band_num=1, boolean exclude_nodata_value=TRUE);

Beschreibung

Dies ist eine Funktion mit Ergebnismenge (SRF von set-returning function). Sie gibt eine Menge an geomval Zeilen für das Band zurück, die aus einer Geometrie (geom) und einem Pixelwert (val) gebildet werden. Ein Polygon entspricht der Vereinigung der Pixel in dem Band, die denselben Pixelwert "val" aufweisen.

ST_DumpAsPolygon ist nützlich um Raster in Polygone zu vektorisieren. Im Gegensatz zu GROUP BY werden hier neue Zeilen erzeugt. Die Funktion kann zum Beispiel verwendet werden, um einen einzelnen Raster in mehrere Polygone/Mehrfach-Polygone zu expandieren.

Geändert 3.3.0, Validierung und Fixierung ist deaktiviert, um die Leistung zu verbessern. Kann zu ungültigen Geometrien führen.

Verfügbarkeit: Benötigt GDAL 1.7+

[Note]

Wenn das Band einen NODATA-Wert aufweist, dann werden die Pixel mit diesem Wert nicht zurückgegeben, außer wenn exclude_nodata_value=false.

[Note]

Wenn Sie nur die Anzahl der Pixel des Raster benötigen, die einen bestimmten Zellwert haben, dann ist ST_ValueCount schneller.

[Note]

Dies unterscheidet sich von ST_PixelAsPolygons, wo eine Geometrie für jedes Pixel zurückgegeben wird, unabhängig vom Pixelwert.

Beispiele

-- this syntax requires PostgreSQL 9.3+
SELECT val, ST_AsText(geom) As geomwkt
FROM (
SELECT dp.*
FROM dummy_rast, LATERAL ST_DumpAsPolygons(rast) AS dp
WHERE rid = 2
) As foo
WHERE val BETWEEN 249 and 251
ORDER BY val;

 val |                                                       geomwkt
-----+--------------------------------------------------------------------------
 249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 5793243.85,
        3427928 5793243.95,3427927.95 5793243.95))
 250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 5793243.85,
        3427927.8 5793243.9,3427927.75 5793243.9))
 250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 5793243.75,
        3427927.85 5793243.8, 3427927.8 5793243.8))
 251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 5793243.8,
        3427927.8 5793243.85,3427927.75 5793243.85))