Name

ST_AsGDALRaster — Gibt die Rasterkachel in dem ausgewiesenen Rasterformat von GDAL aus. Sie können jedes Rasterformat angeben, das von Ihrer Bibliothek unterstützt wird. Um eine Liste mit den unterstützten Formaten auszugeben, verwenden Sie bitte ST_GDALDrivers().

Synopsis

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

Beschreibung

Gibt die Rasterkachel im dem ausgewiesenen Format zurück. Die Übergabewerte sind:

  • format das Format das abgerufen wird. Dies ist abhängig von den Treibern die mit Ihrer Bibliothek "libgdal" kompiliert wurden. Üblicherweise stehen 'JPEG', 'GTIff' und 'PNG' zur Verfügung. Verwenden Sie bitte ST_GDALDrivers, um eine Liste der von Ihrer Bibliothek unterstützten Formate zu erhalten.

  • options ein Textfeld mit Optionen für GDAL. Gültige Optionen sind formatabhängig. Siehe GDAL Raster format options für weitere Details.

  • srs Der Text von "proj4text" oder "srtext" (aus der Tabelle "spatial_ref_sys"), der in das Rasterbild eingebettet werden soll

Verfügbarkeit: 2.0.0 - GDAL >= 1.6.0.

Beispiel für eine JPEG Ausgabe; mehrere Kacheln als einzelner Raster

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

Raster mit dem "Large Object Support" von PostgreSQL exportieren

Eine Möglichkeit um Raster in einem anderen Format zu exportieren ist die Verwendung der PostgreSQL Large Object Export Functions. Wir erweitern das vorherige Beispiel mit einem Export. Dafür benötigen Sie Administratorrechte für die Datenbank, da serverseitige Funktionen "Large Objects" verwendet werden. Es kann auch auf einen Server im Netzwerk exportiert werden. Wenn Sie einen lokalen Export benötigen, verwenden Sie bitte die äquivalenten "lo_"-Funktionen von psql, welche auf das lokale Dateisystem anstatt auf das des Servers exportieren.

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;

Beispiel für die Ausgabe von 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;