J'ai eu l'idée de ce blog en finissant mon énième CDD et en rangeant mon bureau plein de post-its, de notes dans les coins de cahier, sur les feuilles de brouillon ...


Dommage de perdre toutes ces informations glanées au fur et à mesure des années et puis finalement pourquoi ne pas en faire profiter la sphère des heureux sigistes et fières de l'être?


J'ai travaillé sous GRASS, Arcview, ArcGis, MapInfo,QGIS et je suis devenue accroc à l'open source.


Alors voila, il était une fois ...

lundi 10 août 2015

Se libérer du format propriétaire ECW et passer au Geotiff en gardant un super rapport qualité/poids

J'ai eu un soucis lorsque j'ai installé un serveur QGIS, associé au web client Lizmap : toutes mes orthophotos livrées par l'IGN étaient au format propriétaire ECW. Or mon serveur ne supporte pas ce format.

J'ai  voulu convertir mes ECWen un format libre tout en gardant l'avantage du poids de l'ECW.

Après avoir posté mon problème sur le forumSIG (http://www.forumsig.org/showthread.php/40755-Support-de-l-ECW),  en suivant les explications de Mdouchin, et en feintant un peu, je pense avoir trovué THE solution: passer en Geotiff !

Tout d'abord cela dépend :
- du nombre de de dalles à convertir
- de la taille des dalles à convertir
- de la présence ou non d'une bande de transparence dans vos orthos

Dans mon cas j'avais plus de 1000 dalles en ECW pour couvrir mon territoire qui étaient assemblées en une seule ortho.

1. ECW sans bande de transparence                                 

  • Conversion de l'ECW en Geotiff
gdal_translate -co COMPRESS=JPEG -co JPEG_QUALITY=90 -co PHOTOMETRIC=YCBCR -co TILED=YES -co BIGTIFF=YES -of GTiff C:/repertoire1/orthophoto.ecw C:/repertoire2/orthophoto.tiff
  • Construction des pyramides pour un affichage optimisé:
gdaladdo -r AVERAGE -ro --config JPEG_QUALITY_OVERVIEW 90 --config COMPRESS_OVERVIEW JPEG --config PHOTOMETRIC_OVERVIEW YCBCR --config INTERLEAVE_OVERVIEW PIXEL --config BIGTIFF_OVERVIEW YES -clean C:/repertoire2/orthophoto.tiff 2 4 8 16 32 64

Ajouter --config GDAL_CACHEMAX 1000 --config GDAL_MAX_DATASET_POOL_SIZE 1014 lors de la conversion et --config GDAL_CACHEMAX 1000 lors de la construction des pyramides.

Les options -co PHOTOMETRIC=YCBCR et --config PHOTOMETRIC_OVERVIEW YCBCR ne fonctionnent que sur des dalles sans bande transparente. 

Le résultat est surprenant, on peut descendre à une qualité JPEG de 40 en gardant un résultat tout à fait acceptable!

Exemple: Geotiff + pyramides = 10 Go (Dont 3.21 Go de pyramides) au lieu de 17 pour l'ecw.

    2. ECW avec bande de transparence


Ça se corse si on a une bande transparente que l'on voudrait bien garder. J'ai voulu convertir ma dalle unique mais le résultat, surtout des pyramides, était énorme en poids, donc pas acceptable dans mon cas.

Exemple: conversion d'un ECW de 10 Go en Geotiff, je me retrouve avec un fichier de 32 Go + 18 Go de pyramides.

J'ai tout testé et au final je me suis retrouvée avec des poids variables mais toujours supérieurs à l'ECW : de 8 à 40 Go pour un ECW de 2 Go au départ.

Je dispose donc de plusieurs dalles ortho, assemblées en un seul ECW de 2 Go.

J'ai tenté de convertir la dalle en entier en Geotiff puis de faire des pyramides: poids énorme!

J'ai tenté de convertir la dalle unique en VRT puis de faire les pyramides : énorme!

J'ai tenté de convertir chaque dalle en tiff puis de faire un VRT puis les pyramides: énorme!
et au final j'ai tenté de ...

  • Convertir chaque dalle ECW en Geotiff compressé à 75 (avec un bash pour la conversion en lot, cf. article sur les bash) :
gdal_translate -co COMPRESS=JPEG -co JPEG_QUALITY=75 -co  -co TILED=YES -co BIGTIFF=YES -of GTiff C:/repertoire/orthophoto.ecw C:/repertoire2/orthophoto.tiff
  • Créer pour chaque Geotiff les pyramides avec aussi un bash) :
gdaladdo -r AVERAGE -ro --config JPEG_QUALITY_OVERVIEW 75 --config COMPRESS_OVERVIEW JPEG   --config BIGTIFF_OVERVIEW YES -clean C:/repertoire2/orthophoto.tiff 2 4 8 16 32 64
  • assembler en VRT dans QGIS ou via GDAL (buildvrt)

J'obtiens en tout : pyramides + Geotiff + VRT 2.38 Go 

PS: configuration Windows 7 (je sais, je devrais être sous LINUX, c'est prévu :) )













Aucun commentaire: