Ce petit texte est destiné à l’auditoire restreint d’instructeurs et/ou de professeurs de navigation. Étant à construire mon propre matériel de cours, j’ai réalisé qu’il y a peu d’outils disponibles pour dessiner rapidement des vecteurs nets représentant le cap, la route de fond et le courant selon la convention de l’Organisation Maritime Internationale. Cette convention est suivie, entre autres, par Voile Canada et la Royal Yachting Association.
J’ai donc écrit un logiciel open source qui peut le faire. Il s’appelle « Omipy » et est disponible sur GitHub. Le nom est un jeu de mots avec l’acronyme OMI et le fait qu’il se prononce « Oh my pie » en anglais. Désolé pour ce jeux de mots douteux.
Le logiciel facilite grandement le processus d’écriture d’exercices, de solutions et du matériel de classe connexe. Le logiciel est écrit en Python. Les environnements d’exécution Python sont disponibles par défaut sur les ordinateurs Apple, sur les systèmes Linux… et doivent être installés sur les ordinateurs Windows (ici ou ici).
Je donne trois exemples ci-dessous.
À partir d’informations complètes
figure = Omipy(10, 10, draw_coord = True)
figure.draw_fix(x = 1, y = 1, time='1000')
figure.set_current(set = 0, drift = 5, x = 6, y = 1)
figure.set_course(s = 5, c = 90, x = 1, y = 1)
figure.set_track(cog = 45, sog = 7.1, x = 1, y = 1)
figure.make_diagram(time="1100", draw_dr=True)
figure.print_file('example-1.png', dpi=500)
L’exemple ci-dessus contient toutes les informations fournies manuellement. Le code dessine un repère au point de départ (1,1), l’heure étant fixée à 1000. Le cap, le courant et la route sur le fond sont définis aux lignes suivantes. Les arguments x et y sont les coordonnées du point de départ de chaque vecteur (et les autres arguments sont plutôt intuitifs).
Les deux dernières lignes génèrent l’image et la sauvegarde sur le disque. L’option draw_dr permet à l’utilisateur de choisir si un point estimé doit être dessiné ou non. Bien que cela ne soit pas montré dans cet exemple, il est également possible d’ajouter des points estimés à des moments précis, et l’on peut donc décider de les saisir manuellement plutôt que d’utiliser l’option lors de la production de la figure.
Le code produit la figure ci-dessous, une construction sur une heure.
Laisser le logiciel calculer la route sur le fond
Le logiciel peut également calculer la route de fond à partir de la route de surface cap et du vecteur de courant. La solution permet d’obtenir un diagramme partant de l’origine du parcours, comme s’il était fait à la main. Par rapport au code précédent, deux lignes changent : la fonction solve_track est employée au lieu de make_diagram. La fonction trouve la trajectoire et dessine ensuite l’image résultante.
figure = Omipy(10, 10, draw_coord = True)
figure.draw_fix(x = 1, y = 1, time='1000')
figure.set_current(set = 0, drift = 2, x=1, y=1)
figure.set_course(s = 8, c = 75, x = 1, y = 1)
figure.solve_track("1100")
figure.print_file('example-2.png', dpi=500)
Le code produit la figure ci-dessous. Bien que le vecteur de courant commence au point (1, 1), le programme le déplace à la fin de la route de surface afin de respecter les pratiques manuelles d’écriture.
Laisser le logiciel déterminer le cap à prendre
Il est également possible de laisser le logiciel trouver le cap à prendre, tenant compte du courant, afin de générer une route sur le fond désirée. Voici un exemple de code :
figure = Omipy(10, 10, draw_coord = True)
figure.draw_fix(x = 4, y = 8, time='1000')
figure.set_track(cog = 45+90, x=4, y = 8)
figure.set_current(set = 220, drift = 2, x = 4, y = 8)
figure.solve_course(s = 5.0, time = "1100")
figure.print_file('example-3.png', dpi=500)
Ici, notez que la fonction fournissant les informations de route de fond n’a pas de vitesse donnée en argument, seulement une direction. La fonction solve_course reçoit cependant une vitesse sur la surface, qui est utilisée pour résoudre la construction sur une heure. Le logiciel produit l’image ci-dessous en identifiant la solution algébriquement. Notez que le vecteur courant et la trajectoire sont dessinés à partir du point d’origine, comme si la solution était calculée graphiquement. Cependant, le vecteur de la trajectoire est dessiné à nouveau à partir du point de départ.
Prochains développements
Ce ne sont pas toutes les conventions de l’OMI qui sont actuellement programmées dans le logiciel (par exemple, le cercle de position). De même, certaines sont écrites, mais doivent être testées (par exemple, une droite de position). Le logiciel sera donc mis-à-jour ultérieurement, sur Github, et la meilleure façon de savoir s’il a évolué est de consulter la page des exemples. Je ne prévois pas de maintenir le logiciel en tout temps, mais seulement quand j’en ai de besoin. Il est cependant open source, et quiconque est invité à l’améliorer et à « pousser » une nouvelle version sur Github.
Matériel additionnel
J’ai également écrit quelques articles sur la façon de prédire les marées et sur les projections cartographiques. Ces articles pourraient également être d’intérêt dans le cadre d’une classe.
2 Responses
[…] environnement numérique qui permet de tracer clairement les constructions étapes par étapes en générant des images à souhait. Cela facilite la compréhension. Le défaut, bien sûr, est que la personne qui lit les exercices […]
[…] It’s a digital environment that allows you to clearly trace constructions step by step, generating images as needed. This facilitates comprehension. The drawback, of course, is that the person reading the exercises […]