DOCUMENT Centre de Prestations et d'ingénierie informatiques DO Sud-Est 1er fév
DOCUMENT Centre de Prestations et d'ingénierie informatiques DO Sud-Est 1er février 2011 QGIS Téthys Notions élémentaires du langage Python du 1er février 2011 Ministère de l'Écologie, de l'Énergie, du Développement durable et de la Mer en charge des Technologies vertes et des Négociations sur le climat Historique des versions du document Version Date Commentaire 1.0 01/09/2010 Christophe MASSE - Rédaction initiale 1.1 01/02/2011 Christophe MASSE – Compléments (exemples de code partie 11) Affaire suivie par Christophe MASSE – CP2I/DO Sud-Est/ groupe CAS Tél. : 04 74 27 52 26/ Fax : 04 74 27 52 99 Courriel : christophe.masse@developpement-durable.gouv.fr Rédacteur Christophe MASSE - DO Sud-Est / CAS Relecteur Prénom NOM - CAS/CMSIG(s) Référence(s) intranet Site CMSIG DO Sud-Est : http://portail-ig.metier.i2/rubrique.php3?id_rubrique=11 TABLE DES MATIERES 1 - LE LANGAGE PYTHON...............................................................................................................5 1.1 - Philosophie et historique du langage.........................................................................................5 1.2 - La communauté Python et les ressources utiles........................................................................6 2 - LES PRINCIPAUX OUTILS DE DÉVELOPPEMENTS :............................................................10 2.1 - Bibliothèques standards...........................................................................................................10 2.2 - Bibliothèques alternatives.........................................................................................................11 2.3 - Liste de Bibliothèques...............................................................................................................11 3 - LES CARACTÉRISTIQUES DU LANGAGE : RÔLE DE L'INDENTATION, L'ENCODAGE, LES COMMENTAIRES, L'IMPORT DE LIBRAIRIES.....................................................................15 4 - LES TYPES DE VARIABLES ET LEUR UTILISATION.............................................................17 4.1 - Les objets numériques ............................................................................................................17 4.2 - Les objets "itérables" ...............................................................................................................17 5 - CONTRÔLE DU FLUX DES INSTRUCTIONS...........................................................................20 5.1 - l'instruction if.............................................................................................................................20 5.2 - Les boucles for.........................................................................................................................20 5.3 - Les boucles while.....................................................................................................................21 6 - LES FONCTIONS........................................................................................................................22 6.1 - Définition et appel d'une fonction.............................................................................................22 6.2 - Les principales fonctions sur chaîne de caractères.................................................................22 6.3 - Les principales fonctions mathématiques................................................................................27 6.4 - Les traitements logiques...........................................................................................................28 6.5 - La gestion des erreurs..............................................................................................................28 7 - INTERACTION AVEC LE SYSTÈME.........................................................................................30 8 - LA PROGRAMMATION ORIENTÉ OBJET................................................................................31 8.1 - Le concept objet.......................................................................................................................31 8.2 - Le critère descriptif...................................................................................................................31 8.3 - Le critère d'interaction..............................................................................................................31 8.4 - L'héritage et l'implémentation...................................................................................................31 9 - DÉMARRER LE DÉVELOPPEMENT D'UN PLUGIN PYTHON POUR QGIS...........................33 9.1 - L'interpréteur et son fonctionnement........................................................................................33 10 - DÉVELOPPER UN PLUGIN (EXTENSION) POUR QGIS.......................................................34 10.1 - Les éléments structurants......................................................................................................34 10.2 - La création d'interfaces pour QGIS et leur implémentation...................................................36 10.3 - Obtenir des informations sur le paramétrage de QGIS..........................................................40 DO Sud-Est Groupe CAS 10.4 - Utilisation de l'API QGIS.........................................................................................................42 10.5 - L'internationalisation sous QGIS............................................................................................48 11 - QUELQUES EXEMPLES DE CODE........................................................................................50 11.1 - Manipulations sur les formats « QStringList » de Qt et « QgsStringMap » de l'API QGIS...50 11.2 - Créer une Annotation..............................................................................................................51 11.3 - Parcourir les données attributaires d'une couche..................................................................52 11.4 - Créer des points.....................................................................................................................53 11.5 - Modifier l'aspect du curseur de la souris pour indiquer un traitement en cours.....................53 11.6 - Obtenir les ID des objets d'une couche..................................................................................54 11.7 - Obtenir la liste des champs d'une couche..............................................................................54 11.8 - Lire le contenu d'un tableau....................................................................................................55 11.9 - Pointer sur une couche par son nom.....................................................................................55 11.10 - Utiliser le « Rubberband » de QGIS (espace dessin temporaire)........................................56 11.11 - Tester si une variable est numérique...................................................................................56 11.12 - Lire le contenu d'un fichier texte...........................................................................................57 11.13 - Modifier les caractéristiques de la fenêtre légende de QGIS...............................................57 11.14 - Manipuler les couleurs..........................................................................................................58 11.15 - Tester si un fichier ne contient d'objets................................................................................59 11.16 - Créer des tuiles d'images avec GDAL sur un service WMS................................................59 11.17 - Créer une instance de composition (mise en page).............................................................60 11.18 - Récupérer la symbologie à défaut par type de géométrie...................................................61 11.19 - Récupérer la symbologie à défaut d'une couche.................................................................61 11.20 - Récupérer la version de QGIS.............................................................................................62 QGIS – notions élémentaires du langage Python 4/63 DO Sud-Est Groupe CAS 1 - Le langage Python 1.1 - Philosophie et historique du langage • Au CWI (Centrum voor Wiskunde en Informatica) : À la fin des années 1980, le programmeur Guido van Rossum participait au développement du langage de programmation ABC au Centrum voor Wiskunde en Informatica (CWI) aux Pays-Bas. Il travaillait alors dans l’équipe du système d’exploitation Amoeba dont les appels systèmes étaient difficilement interfaçables avec le bourne shell qui était utilisé comme interface utilisateur. Il estima alors qu’un langage de script inspiré d’ABC pourrait être intéressant comme interpréteur de commandes pour Amoeba En 1989, profitant d’une semaine de vacances durant les fêtes de Noël, il utilise son Macintosh personnel pour écrire la première version du langage. Fan de la série télévisée des Monty Python, il décide de baptiser ce projet Python. Il s’est principalement inspiré d’ABC, par exemple pour l’indentation comme syntaxe ou les types de haut niveau mais aussi de Modula-3 pour la gestion des exceptions, du langage C et des outils UNIX. Durant l’année suivante le langage commence à être adopté par l’équipe du projet Amoeba, Guido poursuivant son développement principalement pendant son temps libre. En février 1991, la première version publique, numérotée 0.9.0, est postée sur le forum Usenet alt.sources. La dernière version sortie au CWI fut Python 1.2. • Au CNRI (Corporation for National Research Initiatives) : En 1995, Van Rossum continua son travail sur Python au CNRI (en) à Reston (en), aux États-Unis, où il sortit plusieurs versions du logiciel. À partir d'août 1995, l'équipe python travaille au CNRI sur Grail un navigateur web utilisant Tk. Il est l'équivalent pour python du navigateur HotJava, permettant d'exécuter des applets dans un environnement sécurisé. La première version publique, disponible en novembre, est la 0.2. Il a entraîné le développement de modules pour la librairie standard comme rexec, htmllib ou urllib. La version 0.6 sera la dernière de Grail; elle est publiée en avril 1999. En 1999, le projet Computer Programming for Everybody (CP4E) est lancé avec collaboration entre le CNRI et la DARPA. Il s'agit d'utiliser python comme langage d'enseignement de la programmation. Cette initiative conduira à la création de l'environnement de développement IDLE. Les subventions fournies par la DARPA ne suffisant pas à pérenniser le projet, Guido doit quitter le CNRI. Python 1.6 fut la dernière version sortie au CNRI. • A BOpen : QGIS – notions élémentaires du langage Python 5/63 DO Sud-Est Groupe CAS Après la sortie de Python 1.6, et après que Van Rossum a quitté le CNRI pour travailler avec des développeurs de logiciels commerciaux, le CNRI et la Free Software Foundation collaborèrent pour modifier la licence de Python afin de la rendre compatible avec la GPL. Python 1.6.1 est essentiellement le même que Python 1.6 avec quelques correctifs mineurs et la nouvelle licence compatible GPL. En 2000, l'équipe principale de développement de Python déménagea à BeOpen.com pour former l'équipe PythonLabs de BeOpen. Python 2.0 fut la seule version sortie à BeOpen.com. Après cette version, Guido Van Rossum et les autres développeurs de PythonLabs rejoignirent Digital Creations. Andrew M. Kuchling a publié en décembre 1999 un texte nommé python warts qui synthétise les griefs les plus fréquents exprimés à l'encontre du langage. Ce document aura une influence certaine sur les développements futurs du langage. • La Python Software Foundation : Python 2.1 fut une version dérivée de Python 1.6.1, ainsi que de Python 2.0. Sa licence fut renommée Python Software Foundation License. Tout code, documentation et spécifications ajouté, depuis la sortie de Python 2.1 alpha, est détenu par la Python Software Foundation (PSF), une association sans but lucratif fondée en 2001, modelée d'après l'Apache Software Foundation. Afin de réparer certains défauts du langage (ex: orientation objet avec deux types de classes), et pour nettoyer la bibliothèque standard de ses éléments obsolètes et redondants, Python a choisi de casser la compatibilité ascendante dans la nouvelle version majeure : Python 3.0, publié en décembre 2008. Cette version a été suivie rapidement par une version 3.1 qui corrige les erreurs de jeunesse de la version 3.0 en la rendant directement obsolète. 1.2 - La communauté Python et les ressources utiles Van Rossum est le principal auteur de Python, et son rôle de décideur central permanent de Python est reconnu avec humour par le titre de « Dictateur bienveillant à vie » (Benevolent Dictator for Life, BDFL). Il est assisté d'une équipe de core developers qui ont un accès en écriture au dépôt de CPython et qui se coordonnent sur la liste de diffusion python-dev. Ils travaillent principalement sur le langage et la bibliothèque de base. Ils reçoivent ponctuellement les contributions d'autres développeurs Python via la plateforme de gestion de bug Roundup, qui a remplacé SourceForge. Les utilisateurs ou développeurs de bibliothèques tierces utilisent diverses autres ressources. Le principal média généraliste autour de Python est le forum Usenet anglais comp.lang.python. Les allusions aux Monty Python sont assez fréquentes. Les didacticiels consacrés à Python utilisent QGIS – notions élémentaires du langage Python 6/63 DO Sud-Est Groupe CAS souvent les mots spam et eggs comme variable métasyntaxique. Il s'agit d'une référence à l'épisode 25 de la deuxième saison du Monty Python's Flying Circus, ou deux clients tentent de commander un repas à l'aide d'une carte qui contient du jambon en conserve (le spam) dans pratiquement tous les plats. Ce sketch a été aussi pris pour référence pour désigner un email non sollicité. QGIS – notions élémentaires du langage Python 7/63 Le site officiel Python ( http://python.org ) L'association Francophone Python ( http://www.afpy.org ) DO Sud-Est Groupe CAS 2 - Les principaux outils de développements : Une des grandes forces du langage Python réside dans le nombre uploads/Litterature/ qgis-python-programmation-cle2b85b5.pdf
Documents similaires
-
19
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 03, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 1.9457MB