ST_AsGDALRaster
Prev | 12.11. Raster Outputs | Next

## Name

ST_AsGDALRaster — Return the raster tile in the designated GDAL Raster format. Raster formats are one of those supported by your compiled library. Use ST_GDALDrivers() to get a list of formats supported by your library.

## Synopsis

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

## Description

Returns the raster tile in the designated format. Arguments are itemized below:

- `format` format to output. This is dependent on the drivers compiled in your libgdal library. Generally available are 'JPEG', 'GTIff', 'PNG'. Use ST_GDALDrivers to get a list of formats supported by your library.

- `options` text array of GDAL options. Valid options are dependent on the format. Refer to GDAL Raster format options for more details.

- `srs` The proj4text or srtext (from spatial_ref_sys) to embed in the image

Availability: 2.0.0 - requires GDAL >= 1.6.0.

## JPEG Output Example, multiple tiles as single raster

    SELECT ST_AsGDALRaster(ST_Union(rast), 'JPEG', ARRAY['QUALITY=50']) As rastjpg
    FROM dummy_rast
    WHERE rast && ST_MakeEnvelope(10, 10, 11, 11);

## Using PostgreSQL Large Object Support to export raster

One way to export raster into another format is using PostgreSQL large object export functions. We'lll repeat the prior example but also exporting. Note for this you'll need to have super user access to db since it uses server side lo functions. It will also export to path on server network. If you need export locally, use the psql equivalent lo_ functions which export to the local file system instead of the server file system.

    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 Output Examples

    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;

## See Also

Section 11.3, “Building Custom Applications with PostGIS Raster”, ST_GDALDrivers, ST_SRID

Prev | Up | Next
ST_AsHexWKB | Home | ST_AsJPEG