すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_PixelAsPoints

最終更新日:Mar 29, 2026

ラスタの各ピクセルについて、ピクセル値、行番号、列番号、バンドを含むポイントジオメトリを返します。デフォルトでは、ポイントの座標は各ピクセルの左上隅に対応します。

構文

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_objrasterクエリ対象のラスタです。
bandinteger0クエリ対象のバンドです。バンド ID は 0 から始まります。
pyramidinteger0クエリ対象のピラミッドレベルです。
exclude_nodata_valuebooleantrueNoData ピクセルを除外するかどうかを指定します。
ref_pointcstring'UPPERLEFT'返されるポイントジオメトリが表すピクセルの角です。有効な値は、UPPERLEFT(左上隅)および CENTER(中心)です。
rowsninteger出力。 ピクセルの行番号です。
columnsninteger出力。 ピクセルの列番号です。
bandsninteger出力。 ピクセルのバンド ID です。
valuedouble出力。 ピクセル値です。
geomgeometry出力。 ピクセルの空間範囲(ポイントジオメトリ)です。

説明

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 が個別のカラムに展開され、外部クエリでフィルターや選択が可能になります。