Gerar automaticamente imagens de mapa com estilos diferentes no QGIS? [fechadas]

9

Eu tenho um mapa simples no QGIS, contendo apenas uma camada que consiste em mais de 10 recursos. Agora eu preciso (programaticamente) gerar cerca de 200 imagens de mapa JPEG diferentes da mesma área. Cada mapa deve ter as mesmas extensões de mapa e todos os recursos visíveis. No entanto, os recursos devem ter diferentes conjuntos de cores em cada mapa gerado. Em detalhes, eu tenho um arquivo CSV contendo as cores categorizadas para cada recurso (1 linha para cada imagem, 1 coluna e cor por recurso), algo como isto:

"A","B","C","D","E","F" (header line, 6 columns in this file)
"#000000","#FF0000","#00FF00","#0000FF","#0000FF","#808080"
"#000000","#FF0000","#FF0000","#00FF00","#00FF00","#808080"
"#FF0000","#FF0000","#000000","#800080","#FFFFFF","#FFFF00"
...

Meu plano atual é usar Perl ou similar para criar 200 arquivos QML diferentes com base nesse arquivo CSV. Então pretendo escrever um script Python para

  1. Repetir arquivos QML
  2. Abra cada arquivo QML, um de cada vez, e aplique o estilo de camada a partir dele
  3. Abra o compositor de mapas e salve o arquivo de imagem raster
  4. Feche o compositor de mapas e pule para o próximo arquivo QML

Agora, estou solicitando informações sobre:

  • Isso pode ser feito no QGIS + Python?
  • Alguma maneira melhor de alcançar meu objetivo?
  • Dicas sobre qualquer código fonte ou plugin existente para conseguir isso?
Simo A.
fonte

Respostas:

21

Isso é possível no QGIS sem nenhuma programação python, mas você precisará de um instantâneo de desenvolvimento atual do QGIS 2.6, pois ele conta com recursos adicionados desde o lançamento do 2.4. Aqui estão as etapas necessárias:

  • Configure as camadas do mapa conforme desejado (ignorando a coloração dos recursos que terão preenchimentos dinâmicos de cores)

  • Crie um novo compositor de impressão. Adicione um item de mapa à composição e configure suas extensões conforme desejado.

  • Importe seu arquivo CSV contendo as cores desejadas do recurso de saída do mapa

  • No compositor de impressão, defina a camada CSV importada como a "camada de cobertura do atlas" (procure a guia "Geração do Atlas"). (Se você exportou o atlas agora, deve obter 200 cópias exatamente do mesmo mapa ...)

insira a descrição da imagem aqui

  • Em seguida, você precisa configurar seus recursos para que sejam estilizados com as cores listadas no seu arquivo CSV. Isso é feito através do botão "Propriedades definidas por dados" na parte inferior da guia de estilo da camada:

insira a descrição da imagem aqui

  • Você precisará marcar a propriedade "Cor" e clicar no botão "E" para abrir o editor de expressão.

  • A expressão será algo como isto:

    attribute(  $atlasfeature , 'A' )
    

insira a descrição da imagem aqui

  • Basicamente, essa expressão recuperará o valor armazenado na coluna "A" do recurso atual do atlas. Como no seu caso, esse valor será uma cor (por exemplo, # FF0000), o recurso será estilizado usando essa cor. (Esta expressão é a parte que depende do QGIS> 2.4 - a função "attribute" foi adicionada após o lançamento do 2.4).

  • Estilize os outros recursos de maneira semelhante, mas usando as colunas 'B', 'C', 'D' etc., conforme desejado

  • De volta ao compositor de impressão, você pode ativar uma visualização do atlas (menu Atlas -> Visualizar Atlas) e percorrer as linhas do seu arquivo CSV usando as setas na barra de ferramentas. Se tudo estiver correto, exporte o atlas usando as opções do menu Atlas ... e pronto! Não é necessária programação!

Exemplos de saída:

insira a descrição da imagem aqui insira a descrição da imagem aqui

etc etc

ndawson
fonte