Hoje, eu vou apresentar para vocês um gist (fragmento de código) que desenvolvi, para separar as informações de máscaras contidas dentro de uma Fmask em diferentes bandas, com o objetivo de visualizá-las separadamente. Nós vamos visualizá-las no QGIS, usando o Python Console do QGIS, também conhecido como PyQGIS.
Hoje, estou apresentando a criação de uma camada virtual como uma alternativa ao processo de mosaicar rasters. Bem, a principal razão é que um arquivo de layer virtual ocupa muito menos espaço no disco rígido do que um mosaico raster. Se os meus rasters tiverem cada um 80 KB, isso não é um problema. Mas e se eles tiverem 1 GB cada?
Seja qual for o seu geo-trabalho, você pode ter trabalhado com um polígono que precisava ser dividido ao meio, em três partes, em cinco partes (ou em cem partes, talvez?). Duas possíveis aplicações para estes polígonos divididos são o cálculo de estatísticas zonais e parcelamento do terreno (agricultura).
A camada de entrada deve ser um vetor do tipo ponto, na qual deve haver um ponto. As coordenadas deste ponto devem ser o centro do círculo (ou cunha, ou semicírculo...). A largura padrão do setor circular é 45°, ou seja, um oitavo de um círculo, e o azimute padrão da cunha é 0°. O raio externo (outer radius) é o que estamos acostumados a chamar simplesmente de raio de um círculo, e a variável do raio interno (inner radius) só será preenchida quando quisermos desenhar um anel ou geometria do tipo “donut”.
Desde então, venho salvando os arquivos gerados em layers temporários sempre que eles forem produtos intermediários, de natureza auxiliar ao processo principal que eu estou executando. Dessa forma, eles são excluídos automaticamente depois que eu sair do QGIS (ou ao reiniciar o computador), então não preciso me preocupar com eles depois de executar meu código. Bom, decidi fazer um post com um resumo de como eu salvo as saídas das ferramentas executadas no PyQGIS em camadas temporárias, caso isso venha a ser útil para alguém!
Este erro é especialmente comum quando você está executando novamente um código que já executou anteriormente. Às vezes, enquanto estou programando, executo uma versão incompleta do meu código, só para ver se o compilador/interpretador acusa algum erro até ali. Os meus códigos freqüentemente incluem a abertura e/ou salvamento de arquivos no disco rígido. Em um dos meus códigos, eu pensava que o arquivo em questão seria sobrescrito toda vez que eu executasse um salvamento de arquivo no Console Python do QGIS.
Neste post, vou mostrar como realizar este processo usando duas ferramentas diferentes, uma delas é nativa do QGIS e a outra é um plugin disponível no repositório de plugins. Em seguida, vou comentar sobre como amostrar um raster usando interpolação do tipo cúbica, spline cúbica ou bilinear.
Primeiro, vou criar, de propósito, uma geometria inválida para aplicar a correção. Em seguida, mostrarei duas maneiras de consertá-la. Em uma delas, simplesmente aplica-se a ferramenta nativa “Fix geometries” do QGIS. A outra é usando a ferramenta Buffer. Em um truque simples, vou mostrar como criar um buffer infinitesimal em torno da minha geometria inválida, o que acaba arrumando a mesma, mas tem suas desvantagens.