ラスタの各ピクセルについて、ピクセル値、行番号、列番号、バンドを含むポイントジオメトリを返します。デフォルトでは、ポイントの座標は各ピクセルの左上隅に対応します。
構文
setof record ST_PixelAsPoints(raster raster_obj,
integer band default 0,
integer pyramid default 0,
boolean exclude_nodata_value default true,
cstring ref_point default 'UPPERLEFT',
out integer rowsn,
out integer columnsn,
out integer bandsn,
out double value,
out geometry geom);パラメーター
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
raster_obj | raster | — | クエリ対象のラスタです。 |
band | integer | 0 | クエリ対象のバンドです。バンド ID は 0 から始まります。 |
pyramid | integer | 0 | クエリ対象のピラミッドレベルです。 |
exclude_nodata_value | boolean | true | NoData ピクセルを除外するかどうかを指定します。 |
ref_point | cstring | 'UPPERLEFT' | 返されるポイントジオメトリが表すピクセルの角です。有効な値は、UPPERLEFT(左上隅)および CENTER(中心)です。 |
rowsn | integer | — | 出力。 ピクセルの行番号です。 |
columnsn | integer | — | 出力。 ピクセルの列番号です。 |
bandsn | integer | — | 出力。 ピクセルのバンド ID です。 |
value | double | — | 出力。 ピクセル値です。 |
geom | geometry | — | 出力。 ピクセルの空間範囲(ポイントジオメトリ)です。 |
説明
ST_PixelAsPoints は、ラスタ内の各ピクセルを、rowsn(行)、columnsn(列)、bandsn(バンド ID)、value(ピクセル値)、geom(ポイントジオメトリ)を含むレコードに変換します。ref_point パラメーターにより、ポイントジオメトリが表すピクセルの角(UPPERLEFT または CENTER)を制御できます。
例
以下の例では、1 のバンドを持つラスタ(id = 10)からすべてのピクセルを取得し、ピクセル値が 38.0 より大きいもののみをフィルターしています。
WITH tmp AS (
SELECT (ST_PixelAsPoints(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;POINT(-90 0)(ST_PixelAsPoints(...)).* のパターンにより、返される setof record が個別のカラムに展開され、外部クエリでフィルターや選択が可能になります。