ST_DumpAsPolygons — 从给定的栅格波段返回一组geomval (geom,val) 行。如果未指定波段编号,则波段编号默认为 1。
setof geomval ST_DumpAsPolygons(
raster rast, integer band_num=1, boolean exclude_nodata_value=TRUE)
;
这是一个集合返回函数 (SRF)。它返回一组 geomval 行,由几何图形 (geom) 和像素波段值 (val) 组成。每个多边形是该波段中所有具有相同像素值(由 val 表示)的像素的并集。
ST_DumpAsPolygon 对于多边形化栅格非常有用。它与 GROUP BY 相反,因为它创建新的行。例如,它可以用于将单个栅格扩展为多个多边形/多重多边形。
3.3.0 版本更改,禁用验证和修复以提高性能。可能会导致无效的几何图形。
可用性:需要 GDAL 1.7 或更高版本。
如果为波段设置了无数据值,则除非 exclude_nodata_value=false,否则将不会返回具有该值的像素。 |
如果您只关心栅格中具有给定值的像素计数,则使用 ST_ValueCount 会更快。 |
这与 ST_PixelAsPolygons 不同,后者会为每个像素返回一个几何图形,而不管像素值如何。 |
-- 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))