名稱

ST_AsGDALRaster — 以指定的 GDAL 柵格格式回傳柵格圖磚。柵格格式是您編譯的函式庫所支援的其中一種格式。使用 ST_GDALDrivers() 取得您的函式庫支援的格式清單。

概要

bytea ST_AsGDALRaster(raster rast, text format, text[] options=NULL, integer srid=sameassource);

描述

以指定的格式回傳柵格圖磚。引數詳列如下:

  • format 輸出的格式。這取決於您 libgdal 函式庫中編譯的驅動程式。通常可用的格式有 'JPEG'、'GTIff'、'PNG'。使用 ST_GDALDrivers 取得您的函式庫支援的格式清單。

  • options GDAL 選項的文字陣列。有效的選項取決於格式。請參考 GDAL 柵格格式選項 以取得更多詳細資訊。

  • srs 要嵌入影像的 proj4text 或 srtext(來自 spatial_ref_sys)。

可用性:2.0.0 - 需要 GDAL >= 1.6.0。

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 大物件支援來匯出柵格

將柵格匯出為其他格式的一種方法是使用 PostgreSQL 大物件匯出函式。我們將重複先前的範例,但也一併匯出。請注意,因為它使用伺服器端的 lo 函式,所以您需要擁有資料庫的超級使用者權限。它也會匯出到伺服器網路上的路徑。如果您需要在本機匯出,請使用 psql 對應的 lo_ 函式,它會匯出到本機檔案系統,而不是伺服器檔案系統。

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;

GTIFF 輸出範例

SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg
FROM dummy_rast WHERE rid=2;

-- Out GeoTiff with jpeg compression, 90% quality
SELECT ST_AsGDALRaster(rast, 'GTiff',
  ARRAY['COMPRESS=JPEG', 'JPEG_QUALITY=90'],
  4269) As rasttiff
FROM dummy_rast WHERE rid=2;