ラスターバンド内のすべてのピクセルを、各ピクセルの行番号、列番号、バンド ID、および画素値とともにポリゴンジオメトリとして返します。
構文
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);返される各レコードは、以下の形式です:rowsn(整数)、columnsn(整数)、bandsn(整数)、value(倍精度浮動小数点数)、geom(ジオメトリ)。
exclude_nodata_valueがtrue(デフォルト)の場合、NoData 値を持つピクセルは結果から除外されます。falseを指定すると、値に関係なくすべてのピクセルが含まれます。
パラメーター
| パラメーター | 説明 |
|---|---|
raster_obj | クエリ対象のラスターです。 |
band | クエリ対象のバンド ID です。有効なバンド ID は 0 から始まります。デフォルト値: 0。 |
pyramid | クエリ対象のピラミッドレベル ID です。デフォルト値: 0。 |
exclude_nodata_value | NoData ピクセルを結果から除外するかどうかを指定します。デフォルト値: true。 |
rowsn | 出力パラメーターです。ピクセルの行番号です。 |
columnsn | 出力パラメーターです。ピクセルの列番号です。 |
bandsn | 出力パラメーターです。ピクセルのバンド ID です。 |
value | 出力パラメーターです。ピクセルの画素値です。 |
geom | 出力パラメーターです。ピクセルの空間範囲を表すポリゴンジオメトリです。 |
使用例
以下の例では、1 バンドのラスター(id = 10)からピクセルを取得し、画素値が 38.0 より大きいピクセルのみをフィルターで抽出しています。(ST_PixelAsPolygons(...)).* の構文により、返されたレコードが個別のカラムに展開されます。
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;出力:
100 | 100 | 0 | 43 | SRID=4326;POLYGON((-180 90,-180 89.1,-179.1 89.1,-179.1 90,-180 90))