Mais

Reclassificar pixels raster subjacentes a certos polígonos usando Python

Reclassificar pixels raster subjacentes a certos polígonos usando Python


Eu tenho um arquivo de forma com muitos polígonos, cada um dos quais sobrepõe exatamente uma região contígua de células raster; um exemplo em amarelo:

Para alguns deles, quero usar o polígono como uma espécie de máscara de análise, de modo que possa reclassificar apenas as células que são sobrepostas pelo polígono de acordo com um dos atributos do polígono. Tenho que fazer isso milhares de vezes no mesmo raster, então estou procurando uma maneira automatizada por Python de fazer isso, usando (espero) qualquer um dos GDAL / OGR, SAGA, QGIS ou matrizes numpy.


Descobri isso sozinho, postando para a posteridade.

O utilitário de linha de comandogdal_rasterizeé capaz de "gravar" valores em um raster, dado um polígono como a área sobre a qual fazer isso. Ele aceita consultas SQL, que podem ser usadas para especificar certos polígonos em uma camada inteira. A partir da documentação GDAL (http://www.gdal.org/gdal_rasterize.html), pode-se chamar algo como

gdal_rasterize -a ROOF_H -where 'class = "A"' -l footprints footprints.shp city_dem.tif

Isso queima o valor do atributo no campoROOF_Ha partir defootprints.shppara dentrocity_dem.tif, onde quer que haja polígonos que satisfaçam'classe = "A"'.


Assista o vídeo: čtení souborů v PythonuProgramming Studio