ST_DumpAsPolygons — Retorna um conjunto de linhas geomval (geom,val), de uma dada banda raster. Se nenhum número de banda for especificado, o número de banda torna-se 1.
setof geomval ST_DumpAsPolygons(
raster rast, integer band_num=1, boolean exclude_nodata_value=TRUE)
;
Esta é uma função retorno (SRF). Ela retorna um conjunto de linhas geomval, formadas por uma geometria (geom) e uma banda pixel valor (val). Cada polígono é a união de todos os pixeis para aquela banda que tem o mesmo valor de pixel indicado pelo val.
ST_DumpAsPolygon é útil para poligonizar rasters. É o reverso de um GRUPO POR onde cria novas filas. Por exemplo, pode ser usada para expandir um único raster em POLÍGONOS/MULTIPOLÍGONOS.
Changed 3.3.0, validation and fixing is disabled to improve performance. May result invalid geometries.
Disponibilidade: Requer GDAL 1.7 ou superior.
If there is a no data value set for a band, pixels with that value will not be returned except in the case of exclude_nodata_value=false. |
Se você se importa somente com pixeis contados com um dado valor em um raster, é mais rápido usar: ST_ValueCount. |
Isto é diferente da ST_PixelAsPolygons onde uma geometria retorna para cada pixel independente do valor do pixel. |
-- 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))