Mais

Como 'inverter' ou 'reverter' uma linha de corte de vetor ao fazer gdalwarp'ing um raster?


Eu tenho um raster da América do Norte e gostaria de remover os lagos maiores dele, substituindo-os pelo mesmo valor sem dados que o raster original.

Então, baixei os dados vetoriais de lagos de 10 metros da Natural Earth, que têm lagos convenientemente classificados por classificação de escala: 0 para grandes lagos como os Grandes Lagos e classificações de escala maior para lagos menores.

O mais próximo que eu chegueigdalwarpé:

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

Isso realmente faz o oposto do que eu quero, é mantém apenas as partes dos Grandes Lagos de meu raster, substituindo todos os outros pixels que não são do lago pelo valor sem dados.

Minha pergunta: como posso invertido a linha de corte, então em vez de colocar a área dentro do limite do lago, eu obtenho o que quer que esteja fora dela? Posso inverter o arquivo .shp Natural Earth original, talvez?

Referências

Em Como inverter polígonos (ou outras opções de estilo exterior) ?, GRASS ' r.mask foi sugerido, que possui um modo inverso. Existe algo semelhante com OGR / GDAL?

Em Como obter um shapefile do oceano a partir de um shapefile de área terrestre muito detalhado ?, o arquivo .shp foi convertido em um raster, depois invertido e usado como uma máscara. Eu prefiro não gerar um raster de não-lagos porque meu raster TIFF original é muito grande (alta resolução) e eu prefiro não gerar um raster do mesmo tamanho. No entanto, como um paliativo, fui capaz de fazer isso:

# Cria um raster não-lagos com o mesmo espaçamento e extensão que INPUT $ gdal_rasterize -i -burn 255 -a_nodata 0 -ot Byte  -te 'gdalinfo INPUT.tif | egrep "Inferior esquerdo | Superior direito" | cut -d "(" -f2 | cut -d ")" -f1 | sed 's /, //' | tr " n" "" ' -sql "SELECT * FROM ne_10m_lakes WHERE scalerank = 0"  -tr' gdalinfo INPUT.tif | grep "Tamanho do pixel" | cut -d "(" -f2 | sed 's / [ ,)] / / g " Data / ne_10m_lakes / ne_10m_lakes.shp lakes.tif # Aplica o raster do lakes à entrada como algum tipo de máscara $ gdal_calc.py -A INPUT.tif -B lakes.tif --outfile OUTPUT.tif --calc = 'A'  --NoDataValue = 0

É possível fazer algo semelhante sem criar um raster gigante sem lago?


gdal_rasterize http://www.gdal.org/gdal_rasterize.html pode gravar uma cor fixa para polígonos em um raster existente:

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

De acordo com a documentação, o raster de saída deve suportar acesso ao modo de atualização. Quais formatos suportam o modo de atualização podem ser verificados com gdalinfo olhando + sinal nas capacidades do driver. No entanto, a atualização de imagens compactadas pode falhar ou levar a um resultado abaixo do ideal. TIFF não compactado é a escolha mais segura, mas, em teoria, outros formatos desta lista também devem funcionar.

gdalinfo --formats | find "+" FITS -raster- (rw +): Sistema de transporte de imagem flexível HDF4Image -raster- (rw +): Conjunto de dados HDF4 KEA -raster- (rw +): Formato de imagem KEA (.kea) netCDF -raster- (rw + s) : Formato de dados comuns de rede VRT -raster- (rw + v): Raster Virtual GTiff -raster- (rw + vs): GeoTIFF NITF -raster- (rw + vs): Formato de transmissão de imagens nacionais HFA -raster- (rw + v ): Erdas Imagine Images (.img) ELAS -raster- (rw + v): ELAS MEM -raster- (rw +): In Memory Raster BMP -raster- (rw + v): Bitmap independente de dispositivo do MS Windows PCIDSK -raster, vector- (rw + v): PCIDSK Database File PCRaster -raster- (rw +): PCRaster Raster File ILWIS -raster- (rw + v): ILWIS Raster Map SGI -raster- (rw +): SGI Image File Format 1.0 Nivelador - raster- (rw +): Leveler heightfield Terragen -raster- (rw +): Terragen heightfield ISIS2 -raster- (rw + v): USGS Astrogeology ISIS cube (Versão 2) ERS -raster- (rw + v): ERMapper .ers Rotulado RMF -raster- (rw + v): Formato de matriz raster 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 Rotulado EHdr -raster- (rw + v): ESRI .hdr Rotulado PAux -raster- (rw +): PCI .aux Rotulado MFF -raster- (rw + v): Vexcel MFF Raster MFF2 -raster- (rw +): Vexcel MFF2 (HKV) Raster BT -raster- (rw + v): VTP .bt (terreno binário) 1.3 Formato LAN -raster- (rw + v): Erdas .LAN / .GIS IDA -raster- (rw + v): Dados e análise de imagem 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, vetor- (rw + vs): Geoespacial PDF GPKG -raster, vetor- (rw + vs): GeoPackage