1 votos

Automatización de la generación de atlas con diferentes capas de cobertura

Actualmente estoy usando QGIS 3.10, y tengo alrededor de 60+ capas de cobertura que cada una debería resultar en su propio archivo pdf del atlas. Todos los demás ajustes en el compositor de impresión serían los mismos.

Como no estoy muy familiarizado con la API de QGIS estoy teniendo algunos problemas para encontrar los métodos correctos a utilizar.

Lo más sencillo sería escribir un breve script que se ejecutara en la consola interactiva de Python en la GUI de QGIS, y la lógica que me gustaría implementar sería algo parecido a este pseudocódigo:

make list of coverage layers
initiate print composer
load print composer template from .qpt-file (this is the same for all of the atlases)

for each LAYER in coverage layers
    set coverage layer to LAYER in print composer
    export atlas to pdf with filename LAYER.pdf

Cualquier ayuda es muy apreciada

1voto

olilo Puntos 11

Me las arreglé para encontrar una solución a esto, no es el código más bonito, pero hace el trabajo:

cover_layer_names = ['name1','name2'] # add layer names here

for CV in cover_layer_names:
    cover_layer = QgsProject.instance().mapLayersByName(CV)[0]
    projectInstance = QgsProject.instance()
    layoutmanager = projectInstance.layoutManager()
    layout = layoutmanager.layoutByName("NAME_OF_LAYOUT") #add layout name here
    atlas_obj = layout.atlas()
    atlas_obj.setCoverageLayer(cover_layer)
    file_path = 'FILE PATH HERE' + CV + '.pdf' #insert file path
    QgsLayoutExporter.exportToPdf(layout.atlas(), file_path, QgsLayoutExporter.PdfExportSettings())

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X