名前

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;