ST_PointValues は、ラスターオブジェクト内の指定位置におけるすべてのバンドの画素値を返します。位置の指定には、ピクセルの列/行座標または地理座標(x/y 座標)のいずれかを使用します。
構文
オーバーロード 1:列および行座標による指定
setof record ST_PointValues(raster raster_obj,
integer column_sn,
integer row_sn,
boolean exclude_nodata default true,
out integer band,
out float8 value);オーバーロード 2:地理座標(x/y 座標)による指定
setof record ST_PointValues(raster raster_obj,
float8 x,
float8 y,
boolean exclude_nodata default true,
out integer band,
out float8 value);パラメーター
| パラメーター | 説明 |
|---|---|
raster_obj | クリップ対象のラスターオブジェクトです。 |
column_sn | ピクセルの列番号です。ラスターオブジェクトの左上隅から数えます。 |
row_sn | ピクセルの行番号です。ラスターオブジェクトの左上隅から数えます。 |
x | ピクセルの x 座標です。 |
y | ピクセルの y 座標です。 |
exclude_nodata | NoData ピクセルを結果から除外するかどうかを指定します。true(デフォルト)に設定すると、NoData 値を持つピクセルは返されません。 |
band | 出力:返されたピクセルのバンド番号です。 |
value | 出力:該当バンドのピクセル値です。 |
説明
ST_PointValues は、指定位置のピクセルについて、各バンドごとに (band, value) のレコードペアからなるセットを返します。ピクセルのグリッド位置が既知の場合は列/行オーバーロードを、地理座標が既知の場合は x/y オーバーロードを使用してください。
exclude_nodata を true に設定した場合、ピクセル値がラスターの NoData 値と等しいバンドは結果セットから除外されます。
setof record型の戻り値から個別のカラムにアクセスするには、以下の例に示すように、.*拡張パターンを用いたサブクエリを使用します。
使用例
例 1:地理座標におけるすべてのバンド値の取得(NoData を含む)
select * from
( select (st_pointValues(rast, 125.84382034243441 , 47.67709555783107, false)).*
from t_pixel where id = 3) a
ORDER by band;実行結果:
band | value
------+-------
0 | 66
1 | 87
2 | 28例 2:x/y 座標におけるすべてのバンド値の取得(NoData を除外)
select * from
( select (st_pointValues(rast, 125 , 47)).*
from t_pixel where id = 3) a
ORDER by band;実行結果:
band | value
------+-------
0 | 39
1 | 66
2 | 11