ST_DumpAsPolygons — 指定されたラスタバンドからgeomval(geom,val)行の集合を返します。バンドを指定しない場合のデフォルトは1番です。
setof geomval ST_DumpAsPolygons(
raster rast, integer band_num=1)
;
集合を返す関数(SRF=set-returning function)です。geomval行の集合を返します。geomvalはジオメトリ(geom)とピクセルバンド値(val)からなります。それぞれポリゴンは、指定したバンドの、valで示される値と同じピクセル値を持っている全てのピクセルの結合です。
ST_DumpAsPolygonはラスタのポリゴン化に使います。新しい行を生成するのでGROUP BYの逆です。たとえば、単一ラスタを複数のPOLYGON/MULTIPOLYGONに展開できます。
初出: GDAL 1.7以上が必要です。
バンドにNODATA値が設定されている場合には、NODATA値を持つピクセルは返りません。 |
ラスタ内の与えた値を持つピクセル数にのみ注意する場合には、ST_ValueCountを使う方が速いです。 |
SELECT val, ST_AsText(geom) As geomwkt FROM ( SELECT (ST_DumpAsPolygons(rast)).* FROM dummy_rast 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))