Suite

Comment "inverser" ou "inverser" une ligne de coupe vectorielle lors de la déformation d'un raster ?


J'ai un raster de l'Amérique du Nord et j'aimerais supprimer les plus grands lacs à partir de celui-ci, en les remplaçant par la même valeur sans données que le raster d'origine.

J'ai donc téléchargé les données vectorielles des lacs de 10 mètres de Natural Earth, qui ont des lacs classés de manière pratique par rang d'échelle : 0 pour les grands lacs comme les Grands Lacs et des rangs à plus grande échelle pour les lacs plus mineurs.

Le plus proche avec lequel je suis venugdalwarpest:

$ gdalwarp -cutline Data/ne_10m_lakes/ne_10m_lakes.shp  -csql "SELECT * FROM ne_10m_lakes WHERE scalerank=0"  INPUT.tif lakes-only.tif

Cela fait en fait le opposé de ce que je veux, il garde uniquement les parties des Grands Lacs de mon raster, en remplaçant tous les autres pixels non lacustres par la valeur sans données.

Ma question : comment puis-je inverser la ligne de coupe, donc au lieu d'avoir la zone à l'intérieur de la limite du lac, j'obtiens tout ce qui se trouve à l'extérieur ? Puis-je inverser le fichier .shp d'origine de Natural Earth, peut-être ?

Les références

Dans Comment inverser les polygones (ou d'autres options pour le style extérieur) ?, GRASS' r.masque a été suggéré, qui a un mode inverse. Y a-t-il quelque chose de similaire avec OGR/GDAL ?

Dans Comment obtenir un fichier de formes d'océan à partir d'un fichier de formes de zone terrestre très détaillé ?, le fichier .shp a été converti en un raster, puis inversé et utilisé comme masque. Je préférerais ne pas générer un raster de non-lacs car mon raster TIFF d'origine est très grand (haute résolution) et je préférerais ne pas générer un raster de la même taille. Comme pis-aller cependant, j'ai pu faire ceci:

# Crée un raster sans lacs du même espacement et étendue que INPUT $ gdal_rasterize -i -burn 255 -a_nodata 0 -ot Byte  -te 'gdalinfo INPUT.tif | egrep "En bas à gauche|En haut à droite"|cut -d"(" -f2 | cut -d")" -f1 | sed 's/,//'| tr "
" " "'  -sql "SELECT * FROM ne_10m_lakes WHERE scalerank=0"  -tr 'gdalinfo INPUT.tif |grep "Pixel Size"|cut -d"(" -f2|sed 's/[ ,)]/ /g" Data/ne_10m_lakes/ne_10m_lakes.shp lakes.tif # Appliquer le raster des lacs en entrée comme une sorte de masque $ gdal_calc.py -A INPUT.tif -B lakes.tif --outfile OUTPUT.tif --calc='A'  --NoDataValue=0

Peut-on faire quelque chose de similaire sans créer un gigantesque raster sans lac ?


gdal_rasterize http://www.gdal.org/gdal_rasterize.html peut graver une couleur fixe pour les polygones dans un raster existant :

gdal_rasterize -burn 0 -sql "SELECT * FROM ne_10m_lakes WHERE scalerank=0" Data/ne_10m_lakes/ne_10m_lakes.shp DESTINATION.tif

Selon la documentation, le raster en sortie doit prendre en charge l'accès en mode de mise à jour. Les formats prenant en charge le mode de mise à jour peuvent être vérifiés avec gdalinfo en regardant le signe + dans les capacités du pilote. Cependant, la mise à jour des images compressées peut échouer ou conduire à un résultat sous-optimal. Le format TIFF non compressé est le choix le plus sûr, mais en théorie, d'autres formats de cette liste devraient également fonctionner.

gdalinfo --formats | find "+" FITS -raster- (rw+) : système de transport d'images flexible HDF4Image -raster- (rw+) : jeu de données HDF4 KEA -raster- (rw+) : format d'image KEA (.kea) netCDF -raster- (rw+s) : Network Common Data Format VRT -raster- (rw+v) : Virtual Raster GTiff -raster- (rw+vs) : GeoTIFF NITF -raster- (rw+vs) : National Imagery Transmission Format HFA -raster- (rw+v ): Erdas Imagine Images (.img) ELAS -raster- (rw+v): ELAS MEM -raster- (rw+): In Memory Raster BMP -raster- (rw+v): MS Windows Device Independent Bitmap PCIDSK -raster, vector- (rw+v) : fichier de base de données PCIDSK PCRaster -raster- (rw+) : fichier raster PCRaster ILWIS -raster- (rw+v) : ILWIS Raster Map SGI -raster- (rw+) : SGI Image File Format 1.0 Leveler - raster- (rw+) : Leveler heightfield Terragen -raster- (rw+) : Terragen heightfield ISIS2 -raster- (rw+v) : USGS Astrogeology ISIS cube (Version 2) ERS -raster- (rw+v) : ERMapper .ers Étiqueté RMF -raster- (rw+v) : Raster Matrix Format RST -raster- (rw+v) : Idrisi Raster A.1 INGR -raster- (rw+v) : Intergraph Raster G SBG -raster- (rw+v) : Golden Software Binary Grid (.grd) GS7BG -raster- (rw+v) : Golden Software 7 Binary Grid (.grd) PNM -raster- (rw+v) : Portable Pixmap Format (netpbm) ENVI -raster- (rw+v) : ENVI .hdr étiqueté EHdr -raster- (rw+v) : ESRI .hdr étiqueté Paux -raster- (rw+) : PCI .aux étiqueté MFF -raster- (rw+ v) : Vexcel MFF Raster MFF2 -raster- (rw+) : Vexcel MFF2 (HKV) Raster BT -raster- (rw+v) : VTP .bt (Terrain binaire) 1.3 Format LAN -raster- (rw+v) : Erdas .LAN/.GIS IDA -raster- (rw+v) : Données d'image et analyse GTX -raster- (rw+v) : NOAA Vertical Datum .GTX NTv2 -raster- (rw+vs) : NTv2 Datum Grid Shift CTable2 - raster- (rw+v) : CTable2 Datum Grid Shift KRO -raster- (rw+v) : KOLOR Raw ROI_PAC -raster- (rw+v) : ROI_PAC raster ISCE -raster- (rw+v) : ISCE raster ADRG - raster- (rw+vs) : ARC Digitized Raster Graphics SAGA -raster- (rw+v) : SAGA GIS Binary Grid (.sdat) PDF -raster,vector- (rw+vs) : Geospatial PDF GPKG -raster,vector- (rw+vs) : GeoPackage