0% ont trouvé ce document utile (0 vote)
5 vues7 pages

Projet Python en géomatique : Transformation de coordonnées

Ce laboratoire de géomatique vise à réaliser un projet Python en configurant un environnement de développement, en implantant un algorithme de transformation de coordonnées sphériques en cartésiennes, et en documentant le code dans un Notebook Jupyter. Les étudiants doivent suivre un échéancier pour l'installation, la programmation et la documentation, en utilisant des coordonnées spécifiques pour valider leurs résultats. Le projet inclut également des explications théoriques et des étapes pour la conversion des angles DMS en radians.

Transféré par

audrey ngatch
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues7 pages

Projet Python en géomatique : Transformation de coordonnées

Ce laboratoire de géomatique vise à réaliser un projet Python en configurant un environnement de développement, en implantant un algorithme de transformation de coordonnées sphériques en cartésiennes, et en documentant le code dans un Notebook Jupyter. Les étudiants doivent suivre un échéancier pour l'installation, la programmation et la documentation, en utilisant des coordonnées spécifiques pour valider leurs résultats. Le projet inclut également des explications théoriques et des étapes pour la conversion des angles DMS en radians.

Transféré par

audrey ngatch
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Technologies en géomatique

IFT-1901

Laboratoire 3 - Exercice formatif

Réalisation d’un projet Python

OBJECTIF DU LABORATOIRE
Ce laboratoire vise à réaliser un premier projet dans un environnement de développement Python. Plus
spécifiquement, dans le cadre de ce travail, vous aurez à :

• Configurer votre environnement de développement


• Implanter, avec le langage Python, l’algorithme d’un problème mathématique simple;
• Créer et documenter le script dans un Notebook Jupyter.

Semaine
Partie 1 Installation Semaine 11 – démo en classe, travail hors-classe
Partie 2 Programmation Semaine 12 – travail hors-classe
Semaine 12 – démo en classe, travails hors-classe
Partie 3 Documentation
classe
Tableau 1 : Échéancier de réalisation

INTRODUCTION
Dans le cadre du cours et de votre formation, l’environnement de développement Python qui sera
recommandé est VSCode avec les extensions Python et Jupyter. Cet environnement permettra de
programmer des scripts Python (.py) et de présenter la documentation, le code et les résultats avec une
mise à en forme de qualité grâce au Notebook Jupyter (.ipynb).

Dans le cadre de ce travail, un problème mathématique courant en géomatique sera utilisé pour réaliser
un projet complet en Python. Le problème proposé est une transformation de coordonnées sphériques
vers des coordonnées cartésiennes. La solution à ce problème nécessitera également de programmer la
conversion des angles en degrés-minutes-secondes (DMS) vers les radians.

©2025, Université Laval – Préparé par Louis-Etienne Guimond 1


Réalisation d’un projet Python

DONNÉES UTILISÉES
Ce laboratoire pourrait être entièrement réalisé sans considérer de données spécifiques. Cependant, pour
les fins de validation, un point connu en coordonnées sphériques et en coordonnées cartésiennes est
fourni, ce qui permettra de contrôler les résultats obtenus par l’exécution du script.

• Coordonnées sphériques Latitude (φ) = 46°46’51.382’’ N


Longitude (λ) = 71°16’30.664’’ W
Rayon (r) = 6 371.01 km

• Coordonnées cartésiennes X = 1 400 560.452 m


Y = -4 131 883.943 m
Z = 4 642 815.301 m

De plus, les explications théoriques pour la transformation des coordonnées sphériques en coordonnées
cartésiennes, ainsi que pour la conversion des DMS en radians, sont jointes en annexe de cet énoncé.

1. INSTALLATION
La procédure pour l’installation et la configuration de l’environnement de développement est fournie en
théorie de la semaine 11 du cours, sur le site du cours. Cette procédure a été préparée pour guider dans
l’installation « à partir de zéro » sur un poste de travail personnel. Toutefois, bien que Python VSCode
soient déjà installés sur les postes des salles informatiques CSL-1528 et CSL-1522, certaines étapes de
configuration de l’environnement doivent être réalisées par l’utilisateur.

2. PROGRAMMATION
Objectif
• Implanter en langage Python l’algorithme solutionnant le problème posé.
• Valider la programmation avec des valeurs dont le résultat est connu.

Bien qu’il soit possible de réaliser la totalité du travail dans un Notebook Jupyter, incluant la
programmation, la méthode de projet recommandée indique de faire la programmation et
la validation du code dans un script Python (fichier .py).

Démarche
Étape Description
2.1 - À l’ouverture de VSCode, ouvrir le répertoire du projet [menu File  Open Folder…]

Il est important de choisir un endroit dans votre OneDrive – Université Laval. C’est ensuite
dans ce répertoire que Python enregistrera les fichiers du projet.

©2025, Université Laval – Préparé par Louis-Etienne Guimond 2


Réalisation d’un projet Python

- Créer un nouveau script Python [Menu File  New File…  Choisir Python File]
- Sauvegarder dans le répertoire de travail le nouveau script. [Menu File  Save]
- Le nom du fichier script devrait être IFT03_exFormatif_XX_A25.py, où XX
correspond au numéro d’équipe

2.2 Dans le script :


- importer le module math afin de pouvoir utiliser les fonctions mathématiques qu’il
contient.

2.3 - initialiser les variables d’entrée pour les coordonnées sphériques (rayon, latitude et
longitude) avec les valeurs utilisées dans ce travail. Pour les valeurs angulaires,
utiliser une notation [Link].
- initialiser les variables d’entrée pour les coordonnées cartésiennes (X, Y, Z) avec les
valeurs connues (elles serviront pour la validation finale).

2.4 - programmer la conversion des valeurs angulaires des DMS vers les radians.
- programmer la transformation de coordonnées sphériques en coordonnées
cartésiennes.

L’annexe jointe à la fin de l’énoncé décrit les opérations mathématiques nécessaires pour
ces calculs.

2.5 - programmer la validation des résultats obtenus en comparant les coordonnées


cartésiennes calculées avec les coordonnées cartésiennes connues.

À la fin de cette étape, la programmation se trouve à être complétée et validée. Cette


programmation sera récupérée et bonifiée dans la partie 3 du travail, qui consistera à
documenter et publier le script en un livrable de qualité.

Question d’analyse
• Suite à la validation, quel est l’écart entre les valeurs calculées et les valeurs connues des
coordonnées cartésiennes. Est-ce que les calculs sont valides, même si les écarts obtenus ne sont
pas nuls ? Expliquer.

©2025, Université Laval – Préparé par Louis-Etienne Guimond 3


Réalisation d’un projet Python

3. DOCUMENTATION
Objectif
• Ajouter une documentation adéquate pour accompagner la programmation.
• Mettre en forme la documentation à l’aide des fonctionnalités des Notebooks Jupyter et de la
syntaxe Markdown.

Démarche

Cette partie du travail consiste à créer un notebook Jupyter à partir du script Python pour y
ajouter des cellules de textes (en Markdown) et produire les résultats. Le notebook
constitue le livrable final du travail et c’est ce document qui est utilisé pour la correction.

La démarche qui suit indique les sections et informations qui doivent apparaître dans le
notebook. Un gabarit de Notebook est proposé dans le bloc Documents Généraux de
l’onglet Laboratoire du module de la semaine 11. Pour la syntaxe Markdown, consulter la
section Références du site Web du cours pour des liens pertinents (onglet Laboratoire du
module de la semaine 11).

Étape Description
3.1 Si le gabarit de Notebook est utilisé :
- Copier dans le répertoire du projet le gabarit de Notebook fourni

S’il est choisi de débuter avec un Notebook vide :


- Créer un Notebook Jupyter [Menu File New File  Choisir Jupyter Notebook]
- Sauvegarder en lui donnant le même nom que le script Python [Menu File  Save]

3.2 Dans le notebook :


- copier le contenu du script Python dans une cellule de code
- ajouter un cellule de type Markdown en entête du notebook

©2025, Université Laval – Préparé par Louis-Etienne Guimond 4


Réalisation d’un projet Python

Dans la cellule d’entête:


- spécifier un titre de section (qui deviendra le titre du document publié)
- remplir l’entête du script, avec les informations suivantes : rôle / objectif du
script, contexte de développement, numéro d’équipe et membres de l’équipe
(auteurs), date

Consulter le gabarit de notebook (fichier [Link]) pour un exemple d’entête.

3.3 - ajouter une cellule Markdown, après l’entête du script, pour la déclaration des
variables utilisées dans le script.

Remarque concernant la déclaration des variables :


Il est important de décrire chaque variable présente dans le script, en spécifiant lorsque c’est
pertinent, l’unité ou le format de la variable. Pour un script simple et court, une déclaration
des variables sous forme de liste avant la programmation est appropriée, mais lorsque le
script devient plus long, il peut être préférable de documenter les variables à l’endroit où
elles apparaissent pour la première fois.

3.4 - ajouter une cellule Markdown pour insérer le titre « Initialisation du script » avant la
cellule de code qui importe les modules

3.5 - ajouter des cellules Markdown pour donner un titre aux différentes sections de code.
On devrait minimalement reconnaître les étapes de l’algorithme général.
- ajouter dans les cellules de Markdown du texte, des explications, des équations, du
pseudocode et toute autre information qui permet de mieux comprendre ce que fait le
code.
- diviser le code du script Python en plusieurs sections correspondantes aux étapes de
l’algorithme général et les répartir dans différentes cellules de code.

3.6 - ajouter dans les cellules de code des commentaires qui aident à comprendre le
déroulement de l’algorithme. Par exemple, des rappels des unités dans les calculs

3.7 - ajouter une section avec titre pour la présentation des résultats.
- préparer l’affichage des résultats demandés à l’aide la fonction print().

La fonction print() est une fonction en réalité beaucoup plus complexe que l’usage de base
que nous avons vu jusqu’à maintenant. Nous verrons plus tard comment construire des
tableaux de résultat. Pour ce travail, tentez de reproduire les tableaux demandés et surtout,
de paramétrer le nombre de décimales. Consultez le contenu sur PAX et les références sur le
site de cours (Semaine 11 – onglet Laboratoire) pour vous aider.

- désactiver tous les autres affichages produits lors de l’exécution du script (ou du
Notebook) en mettant en commentaire les instructions print() et en s’assurant que
toutes les valeurs calculées sont affectées à une variable.

Lors de l’exécution, seuls les résultats demandés doivent apparaître, avec la mise en forme
appropriée, programmée avec la fonction print().

©2025, Université Laval – Préparé par Louis-Etienne Guimond 5


Réalisation d’un projet Python

2.7 - ajouter une cellule Markdown à la fin du script, pour y placer la réponse à la question
d’analyse.

IMPORTANT : les réponses aux questions d’analyse dans le notebook doivent être dans des
cellules Markdown. Il n’est pas acceptable qu’elles apparaissent comme des commentaires
au-travers du code. De façon générale, les commentaires ne sont pas lus lors de la
correction.

Résultats
• Présenter les valeurs des éléments calculés dans le laboratoire. Tenter de reproduire la structure
de tableaux suivante :
Coordonnées sphériques en radians :
Latitude | Longitude

Coordonnées cartésiennes calculées :


X | Y | Z

Écarts sur les coordonnées cartésiennes :


dX | dy | dz

Remarques pour la présentation des résultats :

• les coordonnées sphériques doivent être en radians, avec une résolution correspondante au
millième de secondes d’arc;
• les coordonnées cartésiennes doivent être en mètres, avec une résolution millimétrique;
• les valeurs d’écarts sur les coordonnées doivent être en mètres. Choisir une résolution suffisante
pour bien interpréter les écarts en lien avec la discussion de la question d’analyse.

CONTENU À REMETTRE
Il n’y a rien à remettre pour cet exercice formatif, mais voici ce qui
aurait été à remettre s’il s’agissait d’un laboratoire évalué.

DEBUT DE L’EXEMPLE DE LA SECTION CONTENU À REMETTRE

Remettre une archive ZIP qui contient le script Python (.py) et le Notebook Jupyter (.ipynb).
Nommez adéquatement chaque fichier (exemple. : IFT03_XX_A25.py) ainsi que l’archive .zip.

Respecter les indications fournies dans le Guide sur la production des résultats et dans le
Guide sur la remise des laboratoires du document Lab_intro_A25.pdf.

FIN DE L’EXEMPLE DE LA SECTION CONTENU À REMETTRE

©2025, Université Laval – Préparé par Louis-Etienne Guimond 6


Réalisation d’un projet Python

ANNEXE
Coordonnées sphériques à cartésiennes
La transformation de coordonnées sphériques vers les coordonnées cartésiennes repose sur trois
équations linéaires impliquant la longitude (λ) et la latitude (φ) du point, ainsi que le rayon (R) de la sphère.

𝑋𝑋 = 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅(𝜙𝜙) cos(𝜆𝜆)
𝑌𝑌 = 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅(𝜙𝜙) sin(𝜆𝜆)
𝑍𝑍 = 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅(𝜙𝜙)

Angles DMS à radians


En Python, comme dans la plupart des environnements de développement mathématiques et langages
de programmation, les valeurs angulaires doivent être exprimées par défaut en radians. Ainsi, les
fonctions trigonométriques sont écrites pour recevoir des valeurs en radians en argument d’entrée.

Dans le cadre de ce travail, les valeurs angulaires sont connues dans le format degré-minute-seconde
(DMS). Il faut donc convertir ces angles en degrés décimaux, puis en radians, avant de pouvoir les utiliser
dans les calculs. Considérant que la notation [Link] est utilisée, la conversion en degrés décimaux
nécessite tout d’abord de décomposer l’angle DMS en ses trois parties.

Partie degrés Dans la notation [Link], les degrés correspondent à la partie entière de la
valeur d’angle. En Python, isoler la partie entière d’un nombre peut se faire par une
conversion au type Integer.
On se souviendra que lors de la conversion d’une valeur numérique décimale au
format entier, il n’y a pas d’arrondi numérique effectué. La conversion effectue plutôt
une troncature pour retirer la partie décimale du nombre.
Partie minutes Dans la notation [Link], les minutes correspondent toujours aux deux
premières décimales. Par programmation, on peut isoler les minutes en retirant les
degrés de la valeur angulaire, puis en déplaçant le point décimal de deux espaces
vers la droite. En d’autres mots :
[Link] = ([Link] – dd) x 100
Une fois cela fait, on peut conserver les minutes en faisant la conversion au format
entier.
Partie secondes Enfin, dans la notation [Link], les secondes sont les décimales restantes, une
fois que les degrés et les minutes ont été retirés de la valeur angulaire. De plus, afin
de conserver les décimales de secondes, il faut conserver en valeur numérique
décimales la portion « seconde » de la valeur angulaire.

Une fois la valeur angulaire DMS décomposée en ses trois parties, la conversion en degrés décimaux, puis
en radians se fait directement. En guise de référence pour cette opération, il est suggéré de se référer à
l’exemple de rapport de documentation fourni dans les notes de cours de la semaine 4.

©2025, Université Laval – Préparé par Louis-Etienne Guimond 7

Vous aimerez peut-être aussi