ST_DumpAsPolygons — Retourne un ensemble d'enregistrements de type geomval (geom, val), à partir d'une bande raster donnée. Si aucune bande bandnum n'est spécifiée, la bande 1 est utilisée.
setof geomval ST_DumpAsPolygons(
raster rast, integer band_num=1, boolean exclude_nodata_value=TRUE)
;
Il s'agit d'une fonction de retour d'ensemble (SRF). Elle retourne un ensemble d'enregistrements geomval, composés par une géométrie (geom) et une valeur de bande de pixels (val). Chaque polygone est l'union de tous les pixels de cette bande qui ont la même valeur de pixel, indiquée par val.
ST_DumpAsPolygon est utile pour polygoniser les données raster. C'est l'inverse d'un GROUP BY, en ce sens qu'elle crée de nouvelles lignes. Par exemple, cette fonction peut être utilisée pour décomposer un seul raster en plusieurs POLYGONS/MULTIPOLYGONS.
Changement 3.3.0, la validation et la correction sont désactivées pour améliorer les performances. Peut donc retourner des géométries non valides.
Disponibilité : Nécessite GDAL 1.7 ou plus.
Si une valeur nodata est définie pour une bande, les pixels ayant cette valeur ne seront pas retournés, sauf si exclude_nodata_value=false. |
Si vous ne voulez que le nombre de pixels ayant une valeur donnée dans un raster, il est plus rapide d'utiliser ST_ValueCount. |
Cette fonction est différente de ST_PixelAsPolygons, où une géométrie est retournée pour chaque pixel, quelle que soit la valeur du 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))
geomval, ST_AsRasterAgg, ST_Value, ST_Polygon, ST_ValueCount