ラスターバンド内の各ピクセルを囲むポリゴンジオメトリを、ピクセル値およびその行と列の座標とともに返します。
同じ値を持つピクセルを 1 つのジオメトリにまとめる ST_DumpAsPolygons とは異なり、ST_PixelAsPolygons はピクセルごとに 1 つのポリゴンを返します。
構文
setof record ST_PixelAsPolygons(raster raster_obj,
integer band default 0,
integer pyramid default 0,
boolean exclude_nodata_value default true,
out integer rowsn,
out integer columnsn,
out integer bandsn,
out double value,
out geometry geom);パラメーター
| パラメーター | 説明 |
|---|---|
raster_obj | クエリ対象のラスター。 |
band | クエリ対象のバンド ID。バンド ID は 0 から始まります。デフォルト: 0。 |
pyramid | クエリ対象のピラミッドレベル ID。デフォルト: 0。 |
exclude_nodata_value | 結果セットから NODATA 値のピクセルを除外するかどうかを指定します。デフォルト: true。 |
出力列
関数から返される各行には、次の列が含まれます:
| 列 | 型 | 説明 |
|---|---|---|
rowsn | integer | ピクセルの行番号。 |
columnsn | integer | ピクセルの列番号。 |
bandsn | integer | ピクセルが属するバンド ID。 |
value | double | ピクセル値。 |
geom | geometry | ピクセルの空間範囲 (ポリゴン)。 |
例
次の例では、rast_table からバンド 1 のピクセルをクエリし、ピクセル値が 38.0 を超える行に結果を絞り込みます。
WITH tmp AS (
SELECT (ST_PixelAsPolygons(rast, 1)).*
FROM rast_table
WHERE id = 10
)
SELECT rowsn, columnsn, bandsn, value, ST_AsEWKT(geom)
FROM tmp
WHERE value > 38.0;出力例:
rowsn | columnsn | bandsn | value | st_asewkt
-------+----------+--------+-------+------------------------------------------------------------
100 | 100 | 1 | 43 | SRID=4326;POLYGON((-180 90,-180 89.1,-179.1 89.1,-179.1 90,-180 90))関連項目
ST_DumpAsPolygons— 同じ値を持つピクセルをグループ化し、ポリゴンジオメトリに結合しますST_PixelAsPolygon— 指定した行と列にある単一ピクセルのポリゴンジオメトリを返しますST_PixelAsPoint— 単一ピクセルのポイントジオメトリを返しますST_PixelAsPoints— バンド内のすべてのピクセルのポイントジオメトリを返しますST_PixelAsCentroid— 単一ピクセルのポリゴンの重心を返しますST_PixelAsCentroids— バンド内のすべてのピクセルの重心ジオメトリを返します