¿Generar automáticamente imágenes de mapa con diferentes estilos en QGIS? [cerrado]

9

Tengo un mapa simple en QGIS, que contiene solo 1 capa que consta de más de 10 características. Ahora necesito (mediante programación) generar alrededor de 200 imágenes de mapas JPEG diferentes de la misma área. Cada mapa debe tener la misma extensión de mapa y todas las características visibles. Sin embargo, las características deben tener un conjunto diferente de colores en cada mapa generado. En detalle, tengo un archivo CSV que contiene los colores categorizados para cada característica (1 línea para cada imagen, 1 columna y color por característica), algo como esto:

"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"
...

Mi plan actual es usar Perl o similar similar para crear 200 archivos QML diferentes basados ​​en este archivo CSV. Entonces planeo escribir un script de Python para

  1. Recorrer los archivos QML
  2. Abra cada archivo QML, uno a la vez, y aplique el estilo de capa a partir de él.
  3. Abra el compositor de mapas y guarde el archivo de imagen ráster
  4. Cierre el creador de mapas y salte al siguiente archivo QML

Ahora estoy solicitando cualquier aporte sobre:

  • ¿Se puede hacer esto dentro de QGIS + Python?
  • ¿Alguna mejor manera de lograr mi objetivo?
  • ¿Sugerencias sobre algún código fuente o complemento existente para lograr esto?
Simo A.
fuente

Respuestas:

21

Esto es posible en QGIS sin ninguna programación de Python, pero necesitará una instantánea de desarrollo actual de QGIS 2.6, ya que se basa en las características agregadas desde que se lanzó 2.4. Aquí están los pasos requeridos:

  • Configure sus capas de mapa como desee (ignorando el color de las características que tendrán rellenos de color dinámicos)

  • Crea un nuevo compositor de impresión. Agregue un elemento de mapa a la composición y configure sus extensiones como desee.

  • Importe su archivo CSV que contenga los colores de características de salida del mapa deseados

  • En el compositor de impresión, configure la capa CSV importada como la "capa de cobertura de atlas" (busque la pestaña "Generación Atlas"). (Si exportó el atlas ahora, debería obtener 200 copias del mismo mapa ...)

ingrese la descripción de la imagen aquí

  • A continuación, debe configurar sus funciones para que tengan el estilo de los colores enumerados en su archivo CSV. Esto se hace a través del botón "Propiedades definidas por datos" en la parte inferior de la pestaña de estilo de la capa:

ingrese la descripción de la imagen aquí

  • Deberá marcar la propiedad "Color" y luego hacer clic en el botón "E" para abrir el editor de expresiones.

  • La expresión será algo como esto:

    attribute(  $atlasfeature , 'A' )
    

ingrese la descripción de la imagen aquí

  • Básicamente, esta expresión recuperará el valor almacenado en la columna "A" de la característica de atlas actual. Dado que, en su caso, este valor será un color (por ejemplo, # FF0000), la característica se diseñará con este color. (Esta expresión es la parte que se basa en QGIS> 2.4: la función "atributo" se agregó después de que se lanzó 2.4).

  • Diseñe las otras características de manera similar, pero utilizando las columnas 'B', 'C', 'D', etc., según lo desee

  • De vuelta en el compositor de impresión, puede habilitar una vista previa del atlas (menú Atlas -> Vista previa Atlas), y recorrer las filas desde su archivo CSV usando las flechas en la barra de herramientas. Si todo parece correcto, exporta el atlas usando las opciones en el menú Atlas ... ¡y listo! ¡No se necesita programación!

Ejemplos de salida:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

etcétera etcétera

ndawson
fuente