名稱

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 的功能相反,會建立新的列。例如,它可以用來將單個影像擴展為多個 POLYGONS/MULTIPOLYGONS。

3.3.0 版本變更,已停用驗證和修復以提高效能。可能會導致無效的幾何圖形。

可用性:需要 GDAL 1.7 或更高版本。

[Note]

如果為某個波段設定了無資料值,則除了 exclude_nodata_value=false 的情況外,不會傳回具有該值的像素。

[Note]

如果您只關心影像中具有給定值的像素計數,則使用 ST_ValueCount 會更快。

[Note]

這與 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))