Name

ST_AsGDALRaster — Retourne la tuile raster dans le format GDAL raster spécifié. Les formats raster disponibles sont ceux supportés par votre bibliothèque compilée. Utilisez ST_GDALDrivers() pour obtenir la liste des formats supportés par votre bibliothèque.

Synopsis

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

Description

Retourne la tuile raster dans le format spécifié. Les paramètres sont détaillés ci-dessous :

  • format format de sortie. Cela dépend des drivers compilés dans votre bibliothèque libgdal. Les formats généralement disponibles sont 'JPEG', 'GTIff', 'PNG'. Utilisez ST_GDALDrivers pour obtenir une liste des formats pris en charge par votre bibliothèque.

  • options tableau textuel d'options GDAL. Les options valides dépendent du format. Pour plus de détails, voir GDAL Raster format options.

  • srs La chaîne proj4text ou srtext (issue de spatial_ref_sys) à incorporer dans l'image

Disponibilité : 2.0.0 - nécessite GDAL >= 1.6.0.

Exemple de sortie JPEG, plusieurs tuiles en un seul raster

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

Utilisation de PostgreSQL Large Object Support pour exporter des données raster

Une façon d'exporter des données raster vers un autre format est d'utiliser les fonctions d'exportation de grands objets de PostgreSQL. Nous allons reprendre l'exemple précédent en ajoutant l'export. Notez que vous devrez avoir un accès super utilisateur à la base de données car elle utilise les fonctions lo côté serveur. L'exportation se fera également vers un chemin d'accès sur le réseau du serveur. Si vous avez besoin d'exporter localement, utilisez les fonctions lo_ équivalentes de psql qui exportent vers le système de fichiers local au lieu du système de fichiers du serveur.

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;

Exemples de sorties 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;