名称

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;
                

另请参见

第 9.3 节,“使用 PostGIS 栅格构建自定义应用程序”ST_GDALDriversST_SRID