Name

ST_AsGDALRaster — 以指定的 GDAL 栅格格式返回栅格图块。 栅格格式是编译库支持的格式之一。 使用 ST_GDALDrivers() 获取您的库支持的格式列表。

Synopsis

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;