#1 Tue 03 October 2017 17:00
- BenB
- Participant actif
- Date d'inscription: 29 Dec 2015
- Messages: 121
[PostGIS] Taille raster
Bonjour,
J’ai un problème de taille, je m’explique :
j'ai importé un raster (ortho) dans Postgis avec la commande raster2pgsql. J'ai utilisé les options -C (contraintes), -I (index), -t auto (tuilage) et -l (pyramide).
L'importation s'est bien déroulée et la visualisons dans QGIS fonctionne très bien.
Mon problème est que le raster stocké dans Postgis fait plus de 6GO alors que le .tif de départ fait 700Mo
avec SELECT pg_size_pretty(pg_database_size('TABLE')) je me suis rendu compte que la table du raster en elle-même ne pesait pas grand-chose mais ce sont les index et les données auxiliaires (SELECT pg_size_pretty(pg_relation_size('TABLE'))) qui font plus de 4Go.
Le but de stocker dans POSTGIS est de visualiser les raster dans QGIS (plusieurs utilisateusr). Avec le tuilage et les pyramides gérés par Postgis Raster je me dis que c'était une bonne solution pour la fluidité. Par contre je ne pourrais pas intégrer tout mon territoire si la taille du raster augmente autant !
Du coup je me pose les questions suivantes :
Est-ce normale cette augmentation de taille ?
Faut-il éviter la création d'INDEX ?
Postgis RASTER est-il vraiment fait pour de la visualisation de raster ? ou plutôt pour faire des traitements ?.
Dois-je partir sur une autre techno de type serveur WMS et/ou QGIS serveur ou encore un fichier .vrt ? Ou encore j’ai vu qu’avec l’option -R de raster2pgsql il était possible de stocker dans Postgis seulement les liens vers les images présentent sur le serveur ?
Merci pour vos réponses et avis
A bientôt
Hors ligne
#2 Tue 03 October 2017 17:08
- BenB
- Participant actif
- Date d'inscription: 29 Dec 2015
- Messages: 121
Re: [PostGIS] Taille raster
j’essaie d'importer sans index
Hors ligne
#3 Wed 04 October 2017 00:07
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1159
Re: [PostGIS] Taille raster
Salut,
1) Format du raster :
la représentation d'un raster enregistré dans Postgis est différente
de celle d'un raster enregistré dans un format quelconque,
ce qui induit une possible différence de taille,
ll n'est pas non plus certain que l'algorithme de compression
utilisé par Postgres soit plus performant que ceux dédiés aux rasters.
2) Tuilage, pyramides et indexes :
Selon la taille de la tuile choisie, vous diviserez vos rasters en N tuiles,
que vous multiplierez par le nombre de facteurs d'overview que vous aurez choisi.
Vos indexes croitrons donc en fonction du nombre d'éléments.
Si le nombre de tuile est élevé, les indexer sera important.
3) Utilisation des raster Postgis :
Généralement, on peut lire que les utilisateurs ont l'air d'utiliser les rasters comme suit:
- online (votre cas) pour de l'analyse de données
- offline pour de la visualisation
Ces choix s'expliqueraient par le fait que postgis n'aurait pas besoin de "traduire" le raster avant
de pouvoir l'utiliser dans les requêtes.
Cela dit, dans une discussion sur la liste postgis-user [1], Bborie Park, un des dev de postgis raster,
recommande l'utilisation de raster offline quand ceux-ci sont sensés être immuables et volumineux
(il parle en terme de nombre de bande, mais je pense qu'on peut généraliser),
en précisant que la différence fondamentale entre les deux utilisations tient au fait que
les rasters offline sont en lecture seule (et le resteront probablement pour toujours).
Il dit aussi que les différences de performance sont dépendante du matériel, et donc difficiles à quantifier.
Un autre intervenant fait remarquer que parfois les performances sont meilleures quand les raster sont offline.
Le critère à retenir pour le choix entre offline et online ne doit pas donc
être nécessairement la performance, puisqu'il tient à une grande série de facteur
Pour ce qui est de visualiser, malheureusement l'affichage des rasters postgis offline avec Qgis
n'est pas possible pour le moment, bien que faisable.
Pour conclure, au vu de votre cas d'utilisation, qui a l'air d'être essentiellement
de pouvoir visualiser rapidement l'orthophoto dans Qgis,
je m'orienterais plus vers une autre solution.
Les 3 options que vous avez évoquez sont toutes bonnes selon moi,
mais l'avantage de l'option VRT est qu'elle sera très rapide à mettre
en place et ne vous demandera pas vraiment d'effort,
même si il y a de petits inconvénients à utiliser un VRT avec un grand nombre de raster dans QGIS,
(par exemple une certaine latence quand vous voudrez ouvrir les propriétés du raster,
voire plantage "aléatoire" quand vous utilisez des formats exotiques comme l'ECW).
Dans la structure ou je travaille nous utilisons un VRT pour la visu dans QGIS,
et une table raster offline postgis pour l'analyse.
Un sujet traitant de la création d'un VRT pour les orthophotos :
https://georezo.net/forum/viewtopic.php?id=107844
[1] http://postgis.17.x6.nabble.com/Postgis … 02222.html
Dernière modification par tumasgiu (Wed 04 October 2017 00:21)
Hors ligne
#4 Wed 04 October 2017 09:31
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [PostGIS] Taille raster
Bonjour,
Pour moi, PostGIS n'est surtout pas fait pour stocker les raster en vue de leur affichage. La perf sera juste catastrophique.
A la rigueur, pour faire qq traitements sur de petits rasters, mais meme dans ce cas, ce n'est vraiment pas performant.
Avec GDAL (et OGR) et Python, c'est tellement plus rapide/performant de faire des traitements raster. L'accès a des vecteur si besoin (croisement, crop, clip, etc.) se fera alors avec OGR.
Nicolas
Hors ligne
#5 Wed 04 October 2017 14:45
- BenB
- Participant actif
- Date d'inscription: 29 Dec 2015
- Messages: 121
Re: [PostGIS] Taille raster
Merci pour vos réponses très complètes. Je pense partir sur un .vrt dans un premier temps .
Et développer un .wms par la suite
Encore merci
Hors ligne