Mots-clefs : interopérabilité Python/QGIS, variable, boucle, fonction, condition, liste, argument, chaîne formatée, fonctions géométriques, création de fichiers, génération de cartes, fonctions cartographiques, fonctions standalone, traitement de données cartographiques, workflow, milieu alpin
Enseignant responsable : Georges Hinot
Pré-requis : une bonne connaissance d'un logiciel SIG supportant Python (QGIS ou ArcGIS par exemple) et des problématiques/besoins/enjeux de la géomatique.
Compétences visées : mettre en place un protocole de développement autour d'une problématique géomatique, de la « re-contextualisation du besoin » jusqu'à l'écriture d'un script Python répondant à ce besoin.
Enjeux du cours : rendre les étudiants autonomes dans la création et l'entretien de scripts « automatisants ». Dans ce type de tâche, l’autonomie consiste à savoir interpréter un besoin humain, ré-interpréter ses propres problématiques de programmation et à écrire/chercher/modifier les blocs de code nécessaires.
Programme pédagogique : initiation aux fondamentaux du langage puis mise en situation (générer des cartes à partir de données géographiques). En plus de la simple automatisation des cartographies, le cours nous donnera l'occasion, toujours en Python, d'utiliser des API, de traiter des données et de mettre en place des modes d'affichages customisés sur QGIS. Selon l'avancée du cours, nous pourrons aussi aborder le mode « standalone » permis par le duo QGIS-Python, la création de plugins QGIS et les possibilités de webmapping/analyse/ingénierie de données permises par Python.
Sources et liens divers :
- Astuces sur PyQGIS, sur ce même site : https://hg-map.fr/pyqgis?showall=1
- Astuces sur PyQGIS en mode standalone, sur ce même site : https://hg-map.fr/standalone-pyqgis?showall=1
- Tutoriel d'initiation à Python dans QGIS3 (débutant) : http://www.qgistutorials.com/fr/docs/3/getting_started_with_pyqgis.html
- Blog spécialisé d'Underdark, aka Anita Graser : https://anitagraser.com/
- Documentation QGIS : https://docs.qgis.org/3.10/en/docs/
- Documentation Python : https://docs.python.org/fr/3/
- Documentation ArcGIS/Python : https://desktop.arcgis.com/search/?q=python&language=fr
- Processing providers and algorithms : https://docs.qgis.org/3.10/en/docs/user_manual/processing_algs/
- OSMDownloader : https://github.com/lcoandrade/OSMDownloader
- QuickOSM : https://github.com/3liz/QuickOSM
- Wikidata : https://www.wikidata.org/
- Landscape Archaeology : https://landscapearchaeology.org/
- AppDividend : https://appdividend.com/
- OpenSourceOptions: https://opensourceoptions.com/
- webgeodatavore : https://webgeodatavore.com/
- QGIS StackExchange : https://gis.stackexchange.com
Tutoriel écrit sur QGIS 3.14 'Py' et Python 3.8, mais j'ai pu constater qu'il fonctionne de façon assez similaire sur des versions précédentes, ainsi que sur QGIS 3.16.
Sur des versions plus récentes comme QGIS 3.2 il semble que certaines API n'aient pas encore été portées (wikipedia et wikidata), mais cela ne posera pas de problème pour 99% du tutoriel.