Conversion en vecteur de l’emprise valide (sans nodata) d’un raster
remarque générale: les fichiers rasters intermédiaires produits peuvent être écrits en format VRT (raster virtuel). Cela permet d’avoir de tous petits fichiers.
Etape 1 : Conversion en 1 bit
exemple avec un fichier in.tif en entrée, et écriture d’un fichier out.vrt en sortie
gdal_translate in.tif out.vrt -ot byte -of VRT -co NBITS=1
l’option -co NBITS=1 permet de passer l’image en binaire
pour écrire un fichier en sortie au format VRT, utiliser l’option -of VRT
Etape 2 : Création d’un canal alpha
gdalwarp -dstalpha out.vrt out1.vrt -co NBITS=1
Le canal alpha est créé avec toutes les données en nodata grâce à l’option -dstalpha
on peut aussi prendre en compte une valeur représentant le nodata dans le fichier en entrée grâce à l’option -srcnodata value
Bien vérifier le raster out1.vrt en sortie pour voir dans quel canal se trouve la bande alpha à utiliser par la suite.
Etape 3: Vectorisation du raster
gdal_polygonize.py out1.vrt -b 1 -f "ESRI Shapefile" out2.shp
l’option -b 1 permet de prendre ce qui est dans la bande 1
Methode Alternative : avec gdal_calc
on calcule un raster avec une expression logique là où il y a des valeurs
gdal_calc.py -A input --outfile=tmp.tif --type=Byte --calc="isnan(A)"
on convertit en polygone le raster:
gdal_polygonize.py tmp.tif -f "ESRI Shapefile" output