1 - Présentation du thème de la randonnée 2

publicité
- TD3 : Module : Algorithmique et programmation. Langage : Python -
TD3 : Les structures de données en Python : liste, fichier-texte.
Les traitements : fonction standard, fonction importé, fonction développeur
Thème : Randonnée pédestre.
1 - Présentation du thème de la randonnée
On souhaite gérer le contexte d'une randonnée pédestre pour laquelle nous traitons plusieurs points
géographiques, avec la latitude, la longitude, l'altitude et l'heure (hh:mm:ss) de chaque point.
2 - Travail à faire
2.1 - Traiter altitudes, latitudes, longitudes et heure d'une
série de points pour effectuer divers calculs
Ouvrir le programme LireFichierRandonnee3_Distances-Vitesses-Debut.py où du code est déjà saisi.
Remarque :
NomProgrammeDebut pour un fichier de début de TD à compléter.
NomProgramme pour un fichier de correction du TD proposé après chaque TD.
Ressources pour ce TD :
Définitions :
Latitude : coordonnée de position Nord-Sud mesurée ici en degrés / pôles
Longitude : coordonnée de position Ouest-Est mesurée ici en degrés / Greenwich
Méridien : demi-cercle imaginaire tracé sur le globe reliant les pôles
Parallèle : cercle imaginaire reliant tous les lieux situés sur une même latitude.
Formules :
Distance en mètres entre 2 latitudes sur un méridien : la formule est donnée dans le code
Distance en mètres entre 2 longitudes sur un parallèle : la formule est donnée dans le code
Distance entre 2 points en 2D 'à plat' à altitude constante : voir théorème de Pythagore plus bas
Distance entre 2 points en 3D 'en relief' à altitude variant : voir extension théorème de Pythagore plus bas
Le théorème de Pythagore indique que, dans un triangle rectangle : le
carré de la longueur de l’hypoténuse, qui est le côté opposé à l'angle droit,
est égal à la somme des carrés des longueurs des deux autres côtés :
c2 = a2 + b2. Donc la longueur de l'hypoténuse : c = . . .
Pour nous :
- a est la distance entre 2 latitudes (Nord-sud).
- b est la distance entre 2 longitudes (Ouest-Est).
- c est la distance entre 2 points GPS (latitude ; longitude).
Pour gérer le relief et donc l'altitude, calculer e en intégrant la distance d,
donnée en mètres, entre 2 altitudes.
Point1
Généraliser le théorème de Pythagore à cette 3° dimension ou
considérer le triangle rectangle 'plat' de côtés c et d avec hypoténuse e.
Point1
Point2
e
Claude MONTEIL - Marc SOUQUES
Point2/3D
Point2/2D
P
o
i
n
t
2
/
2
D
Ecart
Point2/2D
altitude
Point2Point1
c
Point2
Python :
/2D
Utiliser la bibliothèque math pour importer des fonctions :
cosinus (cos), racine carrée (sqrt) et la constante pi.
Pour élever un nombre au carré, utiliser : soit x * x ; soit x ** 2 (** pour puissance)
INP Toulouse
d
Point2/
2D
Ecole Nationale Supérieure Agronomique de Toulouse page 1/3
- TD3 : Module : Algorithmique et programmation. Langage : Python -
Nous travaillons toujours à partir du fichier Randonnee02-07-2011.csv , fichier texte que vous pouvez
consulter par :
- Double clic : Excel est appelé par défaut (normalement)
- Clic droit puis "modifier" : BlocNote (Editeur de texte) est appelé par défaut
- Clic droit puis "Edit with NotePad++" car application NotePad++ (Editeur de code) installée sur
nos machines
Dans Préférences / Répertoire de travail global, le paramétrage
indique que le fichier à lire (.csv) est recherché dans le répertoire du
fichier.py en cours d'édition. Donc le .csv et .py doivent être dans le
même répertoire.
Au TD précédent, nous avions récupéré depuis le fichier .csv une liste lstAltitudes avec toutes les
altitudes pour chercher ensuite la mini et maxi.
Dans ce TD, en plus des altitudes, nous voulons récupérer les longitudes (en réel et pas texte), les
latitudes (en réel et pas texte) et les moments ('hh:mm:ss' en texte) à ranger dans 3 nouvelles listes. On ne
récupérera pas le jour de la randonnée '2/7/2011' car c'est le même pour tous les points.
Travail à faire :
- Compléter le code fourni pour obtenir l'affichage de ces 4 listes qui ne nécessitera aucune saisie.
La distance 2D parcourue arrivé au point 1 sera basée sur le point courant et le point précédent.
Pour avoir un précédent, il faut donc commencer la lecture du premier point au point 1 et non pas au
point0.
INP Toulouse
Claude MONTEIL - Marc SOUQUES
Ecole Nationale Supérieure Agronomique de Toulouse page 2/3
- TD3 : Module : Algorithmique et programmation. Langage : Python -
- Compléter le code fourni pour obtenir l'affichage des résultats ci-dessous.
En priorité :
Plus tard les autres
calculs
INP Toulouse
Claude MONTEIL - Marc SOUQUES
Ecole Nationale Supérieure Agronomique de Toulouse page 3/3
Téléchargement