Bibliothèque Python pour résoudre les triangles sphériques

Quand on parle gnomonique, sinus et cosinus ne sont pas des gros mots.
Répondre
Avatar du membre
Yvon_M
Administrateur du site
Messages : 339
Enregistré le : dim. 4 nov. 2018 01:54
Localisation : Pontoise (Île-de-France)
Contact :

Bibliothèque Python pour résoudre les triangles sphériques

Message : # 717Message Yvon_M »

Il y a quelques semaines, j’ai voulu tracer une courbe par programmation dont les points représentaient les résultats d’un problème de la sphère. Après avoir déterminé les 3 triangles sphériques que je devais résoudre, la flemme m’a pris d’en rechercher les équations. J’ai alors décidé de reprendre le code que j’avais écrit pour l’application TriSph afin d’en faire une bibliothèque Python.

Cette bibliothèque permet, après avoir décrit le triangle et lui avoir donné les valeurs de 3 paramètres, côtés ou angles, d’obtenir la valeur des 3 autres paramètres (si vous souhaitez plus de détail, vous pouvez vous reporter à la documentation de TriSph qui fonctionne sur le même principe).

Cette bibliothèque m’a rendu le service que j’attendais et j’ai pensé qu’elle pouvait être utile à d’autres (du moins à ceux qui programment en Python, un langage vraiment performant et facile à apprendre). C’est pourquoi je vous la présente ici.

Il suffit de télécharger le fichier suivant et de le placer dans le répertoire de son code, ou mieux, dans le répertoire […]/lib/site-packages/, […] étant le répertoire de Python. Dans ce cas, la bibliothèque peut être chargée quelque soit le répertoire où se trouve le code.

http://gnomonique.fr/cadran/pytrig.zip

La bibliothèque fonctionne pour Python 2 et 3, voici un exemple pour comprendre comment l’utiliser. Il donne la déclinaison et la latitude d’un cadran vertical qui a perdu son style mais qui a conservé la trace de sa sous-stylaire : un angle de 23° à droite de la verticale, sur la ligne horaire de 14h20.

Code : Tout sélectionner

# coding: utf-8

from pytrig import TriSph

tr = TriSph('la: latitude,d,C; i: inclinaison,d,D; f: latitude equivalente,d,C; S\': angle tabulaire SS,d,D,1; S: heure vraie SS,h,C,-2; D: declinaison,d,C,1')
tr.setIV('i', 90, 'S\'', 23, 'S', '14:20')
nbs = tr.resol()
print('Il y a %d solution(s)'%(nbs))
print('Latitude : %.2f\nDeclinaison : %.2f'%(tr.getV1('la'), tr.getV1('D')))
if nbs == 2:
  print('Latitude 2 : %.2f\nDeclinaison 2 : %.2f'%(tr.getV2('la'), tr.getV2('D')))
Le triangle est défini par la chaîne transmise au constructeur TriSph. Après avoir fourni les valeurs connues, l’appel de resol() calcule les autres valeurs et retourne le nombre de solutions trouvées : 0, 1, 2 voire 3 dans une configuration très particulière où il y a une infinité de solutions. Il suffit ensuite de récupérer les valeurs avec getV1() ou getV2(), dans notre cas latitude 47,06° nord et déclinaison 27,14° ouest.
Yvon Massé - Site perso. : La gnomonique
Répondre