- TD5 : Module : Algorithmique et programmation. Langage : Python TD5 : Usage de bibliothèques prédéfinies (matplotlib, math, os, glob) ou personnalisées (BiblioFichiers) Thème : Randonnée pédestre : affichage et sauvegarde de tracés graphiques 1 - Objectifs On veut créer, pour une randonnée définie par un fichier CSV tel qu’utilisé jusqu’à présent, d’une part son tracé « vu du ciel » (en X-Y), d’autre part son « profil » (altitude en fonction de la distance 2D depuis le début de la randonnée). 2 - Travail à faire 2.1 - Trace "Vue du ciel" de la randonnée La trace "Vue du ciel" correspondra à une courbe représentant les latitudes des points en fonction de leur longitude, chaque point étant relié à son prédécesseur par un segment de droite. Voici un exemple de ce que l’on pourra obtenir in fine : Ouvrir le programme LireFichierRandonnee5_GraphiquesDebut.py où le code des TD précédent est déjà saisi. La réalisation de cette figure s’effectue avec la bibliothèque prédéfinie matplotlib de Python, dont les possibilités de base sont illustrées dans le fichier MatplotlibExemples.py qui vous est mis à disposition. Lire attentivement les spécifications de ce fichier-exemple qui illustre quelques fonctions de base de matplotlib, dont la fonction fondamentale plot qui trace un graphique dans une fenêtre graphique (dénommée "figure" dans matplotlib) et quelques procédures et paramètres de mise en forme. INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 1/3 - TD5 : Module : Algorithmique et programmation. Langage : Python Ce fichier illustre également la bibliothèque prédéfinie math utilisant des fonctions (sin, exp) et constante trigonométrique (pi). On se centrera pendant le TD sur l’affichage de la courbe, d’une part à l’écran dans un premier temps, et d’autre part en la sauvegardant ensuite sous forme de fichier jpg. (avec le même nom principal que celui du fichier csv de la randonné). Pour générer un nom Randonnee02-07-2011.jpg à partir de Randonnee0207-2011.csv, on utilisera la syntaxe : NOM_FICHIER.replace("csv","jpg"). La marque des points horaires n’est pas demandée pour le TD. Elle est indiquée ici à titre illustratif d’autres possibilités de matplotlib. NOTA : bien vérifier le paramétrage de votre environnement SPYDER pour afficher les figures dans des fenêtre séparées et interactives : Dans menu Outils / Préférences (ou ), Console IPython, paramétrer comme cidessous pour afficher les graphiques dans des fenêtres Windows indépendantes à la place de l'affichage dans la fenêtre IPython ci-dessus: Redémarrer le noyau pour que ce paramétrage soit pris en compte : Fenêtre IPython, menu en haut à droite 2.2 - Profil de la randonnée Le profil de la randonné correspond à la courbe représentant son altitude (en ordonnée) en fonction de la distance 2D depuis le début de la randonnée (en abscisse). On l’associera à la vitesse instantanée entre le point courant et son prédécesseur affichée en dessous du profil (usage de la procédure subplot). INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 2/3 - TD5 : Module : Algorithmique et programmation. Langage : Python Ici encore, on se centrera sur les 2 "sous-graphiques" (subplot) sans se préoccuper de la superposition des traits verticaux horaires. La figure sera sauvegardée sous forme de fichier png (et non jpg comme précédemment), ce qui permet de garder le même nom principal. Ci-dessous, seulement s'il reste du temps pour le TD, nouveau travail à faire ou bien plutôt un exemple de possibilités à retrouver dans la correction. 2.3 - Création des graphiques pour toutes les randonnées du dossier courant. Il s’agira de parcourir tous les fichiers-randonnées CSV du dossier courant pour créer automatiquement les graphiques JPG et PNG associés à chacun d’eux. On pourra aussi inclure la création du fichier TXT des informations de synthèse, et du fichier KML permettant d’ouvrir la trace en 3D sous Google Earth. On utilisera pour cela la bibliothèque BiblioFichiers.py mise à disposition. Elle est un exemple très simple de bibliothèque personnalisée que l’on peut créer soi-même (elle ne contient qu’une seule fonction), et qui utilise d’autres bibliothèques prédéfinies : os = "Operating System" pour la gestion du système d'exploitation, dont on utilise ici les fonctions listdir, path.isdir, path.isfile glob = "Filename globbing utility" pour l’usage des caractères "jokers" * et ? dans la définition d’un filtre de recherche comme "*.csv" ou "annee20??.txt" INP Toulouse Claude MONTEIL - Marc SOUQUES Ecole Nationale Supérieure Agronomique de Toulouse page 3/3