Plugins e pyqgis

Per capire come potenziare QGIS con il linguaggio di programmazione Python. La finalità principale è quella di fornire gli strumenti e i concetti base per sviluppare script in Python e creare plugins. Dopo una breve introduzione a Python, i partecipanti saranno guidati passo a passo nella creazione di script e di un plugin.

È preferibile, ma non obbligatoria, una conoscenza di base di Python. È necessaria una conoscenza di base dei principi di programmazione.

Argomenti principali

  • Introduzione alla programmazione python in QGIS

    • la sintassi Python (variabili, cicli, funzioni e classi)
    • importazione moduli esterni
  • Le principali classi API QGIS e le loro relazioni

    • classi di base e impostazioni: classi Qgis, QgsProject
    • area mappa, layer e legenda: QgsMapCanvas, QgsMapLayer, QgsProject, QgsLayerTree
    • layer vettoriali: QgsVectorLayer, QgsField, QgsFeature, QgsGeometry
    • classi dei sistemi di riferimento: QgsCoordinateReferenceSystem, QgsCoordinateTransform
    • ottimizzazione iterazioni e indici spaziali: QgsFeatureRequest, QgsSpatialIndex
    • layer raster: QgsRasterLayer
    • elementi della mappa: QgsMapCanvas
  • Utiizzo di pyqgis "fuori dagli schemi"

    • macro di progetto
    • funzioni personalizzate nel calcolatore di campo
    • aggiungere azioni a un layer in python
    • python e moduli di inserimento dati personalizzati
  • Processing e pyqgis

    • lanciare un algoritmo di Processing da console
    • scrittura di script di Processing
  • Creazione di un plugin standalone

    • uso delle classi e dei metodi principali per la creazione in un plugin
    • Plugin Builder e Plugin Reloader
    • trasformazione di script di Processing in un plugin
    • creare interfacce utente con QtDesigner (.ui)
    • gestione dei metadati per la pubblicazione del plugin
    • corretti metodi di gestione di un plugin
  • Utilizzo di software di controllo versione (git)

    • introduzione a git
    • vantaggi di un sistema di versionamento
    • comandi principali di git (git add, git commit, git pull, git push)
    • utilizzare i branch per lo sviluppo e il bug fixing
    • releases e tag
    • pubblicazione del plugin su un hosting remoto (github, gitlab)
    • corretta gestione di un issue/bug tracker

Durata

5 mezze giornate da 4 ore