ST_AsGDALRaster — 指定された GDAL ラスター書式でラスタータイルを返します。ラスター書式はコンパイルしたライブラリが対応するものです。ライブラリが対応する書式の一覧を得るにはST_GDALRasters() を使います。
bytea ST_AsGDALRaster(raster rast, text format, text[] options=NULL, integer srid=sameassource);
指定された書式でラスタータイルを返します。引数は次の通りです。
format 出力書式です。libgdal ライブラリでコンパイルしたドライバーに依存します。一般的には'JPEG', 'GTIff', 'PNG'が有効になっています。ライブラリが対応する形式の一覧を得るにはST_GDALDriversを使います。
options GDAL オプションの文字列配列です。妥当なオプションは書式に依存します。詳細についてはGDAL Raster format optionsをご覧下さい。
srid 出力ラスターに組み込む空間参照系識別子。
Availability: 2.0.0 - GDAL 1.6.0以上が必要です。
複数のラスタータイルを一つの 50%品質の JPEG 画像として出力する。
SELECT ST_AsGDALRaster(ST_Union(rast), 'JPEG', ARRAY['QUALITY=50']) As rastjpg FROM dummy_rast WHERE rast && ST_MakeEnvelope(10, 10, 11, 11);
ラスターを他の書式で出力する方法の一つに、 PostgreSQL ラージオブジェクト サーバ側の関数 を使うものがあります。次ではもう一度 JPEG の例を使って結果を出力します。この例では、サーバー側のラージオブジェクト関数を使うため、スーパーユーザーのアクセスが求められることに注意して下さい。また、サーバーネットワーク上のパスに出力します。ローカル側に出力するには、psql から呼び出す等価な lo_ 関数 (訳注: \lo_export など) を使います。
DROP TABLE IF EXISTS tmp_out ;
CREATE TABLE tmp_out AS
SELECT lo_from_bytea(
0,
ST_AsGDALRaster(ST_Union(rast), 'JPEG', ARRAY['QUALITY=50'])
) AS loid
FROM dummy_rast
WHERE rast && ST_MakeEnvelope(10, 10, 11, 11);
SELECT lo_export(loid, '/tmp/dummy.jpg')
FROM tmp_out;
SELECT lo_unlink(loid)
FROM tmp_out;
ラスターをデフォルトの生成オプションを使って GeoTIFF として出力する。
SELECT ST_AsGDALRaster(rast, 'GTiff') AS rasttiff FROM dummy_rast WHERE rid = 2;
GeoTIFF を、品質 90%の JPEG 圧縮、SRID 4269 として出力する。
SELECT ST_AsGDALRaster(
rast,
'GTiff',
ARRAY['COMPRESS=JPEG', 'JPEG_QUALITY=90'],
4269) AS rasttiff
FROM dummy_rast WHERE rid = 2;