Mini Club Astronomie-Python

Un peu de pédagogie pour les scientifiques curieux....
Répondre
pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Astronomie-Python

Message par pejive » 28 oct. 2025, 10:51

En m' amusant avec la calculatrice TI Nspire CX je me suis découvert une affinité pour la programmation Python, venant sans doute d'un formatage dans ma vie antérieure avec la pratique du Turbo-Pascal et du javascript puis une bonne ration de Maple :)
On aime ou on n'aime pas.
J'ai d'abord commencé en installant la distribution officielle de Python; un environnement est livré avec (IDLE) , mais pas très convivial à mon goût.
J'ai essayé Pyzo, puis Spyder; avec ce dernier on commence à avoir une usine à gaz. Je n'ai pas été plus loin, la taille des téléchargements étant un facteur limitant. Tout çà commençant à se faire des noeuds sur mon pc, j'ai tout désinstallé et suis reparti sur des bases saines:
https://pyzo.org/start.html
1-Installer Pyzo
2-Installer la distribution officielle de Python dans le répertoire proposé par défaut
Pour pouvoir faire des choses intéressantes il est bon d'installer les "packages" numpy et matplotlib notamment
et cela se fait aisément (la preuve j'ai réussi :mrgreen: ) en écrivant dans le "Shell" la commande "pip install numpy" ou "pip install matplotlib"
çà marche aussi sans indiquer pip

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 10:52

test script de calcul d'un doublet achromatique de Littrow
littrow-py.jpg
littrow-py.jpg (89.45 Kio) Consulté 19848 fois
Evolution prévue: tracé de la courbe focale en fonction de la longueur d'onde
On va écrire les longueurs d'onde et les focales dans 2 tableaux (d'où l'utilité de la librairie numpy) puis tracer le graphe , en utilisant les outils de la librairie mathplotlib

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 11:03

en attendant je remets le script de calcul d'indice avec la formule de Cauchy, connaissant l'indice du verre pour la raie D du sodium et son nombre d'Abbe
cauchy-py.jpg
cauchy-py.jpg (80.27 Kio) Consulté 19839 fois

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 11:08

Bien sûr ce post est ouvert à tous; proposez vos scripts ou vos idées de scripts en rapport avec l'Astronomie.
:happy-wavemulticolor:

Avatar de l’utilisateur
steph37
Messages : 4331
Inscription : 14 avr. 2021, 11:03
Localisation : Chenonceaux

Mini Club Python

Message par steph37 » 28 oct. 2025, 11:39

Ah bin une idée de script, pour le plaisir ;) : transformer les coordonnées équatoriales en coordonnées horizontales (avec quelques infos supplémentaires, bien sûr :D )

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 13:13

Ce genre de calcul est déjà fait très bien par de nombreux logiciels et serveurs d'éphémérides
http://xjubier.free.fr/site_pages/astro ... erter.html
c'est de la manipulation de formules de trigonométrie sphériques; cela nécessite d'entrer un grand nombre de paramètres, plus des conversions sexagésimal->décimal et vice versa
Toutes les formules sont là:
https://fr.wikipedia.org/wiki/Syst%C3%A ... 3%A9lestes
Il y a quelques décennies certains ont même écrit des programmes en basic pour faire çà :D
Personnellement je ne me prendrais pas la tête pour obtenir des résultats moins bons que l'IMCCE :lol:

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 13:42

:dance:
Là c'est le minimum syndical
Il y a plein d'options pour améliorer la présentation du graphe
littrow-graph.jpg
littrow-graph.jpg (78.32 Kio) Consulté 19802 fois

Avatar de l’utilisateur
Cepadyes
Messages : 142
Inscription : 24 oct. 2023, 08:23

Mini Club Python

Message par Cepadyes » 28 oct. 2025, 13:53

pejive a écrit :
28 oct. 2025, 11:08
Bien sûr ce post est ouvert à tous; proposez vos scripts ou vos idées de scripts en rapport avec l'Astronomie.
:happy-wavemulticolor:
Ce que je vais te conseiller n'est pas un script mais un outil qui pourrait s'intéresser : jupyter notebook.

C'est un environnement basé sur python qui te permet de rédiger des notes avec du code python interactif.

Avatar de l’utilisateur
FredWeber
Messages : 345
Inscription : 14 sept. 2025, 11:25
Localisation : Chancelade à Coté de Périgueux (dept24)

Mini Club Python

Message par FredWeber » 28 oct. 2025, 13:57

https://github.com/cytan299/tribahtinov

Du python a tester..
.

Et en plus de matplotlib, numpy, scipy etc il y a aussi astropy...

Reste a savoir si ru peux ajouter ces librairies sur la ti92...

Sinon jupyter notebook c'est l'outil ideal pour tester.

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 14:05

Un doublet achromatique avec une aberration beaucoup plus faible que le 1er exemple, obtenu en changeant le flint
littrow-plus.jpg
littrow-plus.jpg (72.15 Kio) Consulté 19792 fois
avec quelques fioritures :)
graph-plus.jpg
graph-plus.jpg (59.47 Kio) Consulté 19779 fois
graph2.png
graph2.png (24.69 Kio) Consulté 19782 fois

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 14:08

FredWeber a écrit :
28 oct. 2025, 13:57
https://github.com/cytan299/tribahtinov

Du python a tester..
.

Et en plus de matplotlib, numpy, scipy etc il y a aussi astropy...

Reste a savoir si ru peux ajouter ces librairies sur la ti92...

Sinon jupyter notebook c'est l'outil ideal pour tester.
Faut voir.... :mrgreen:
Je ne fais pas çà sur la TI nspire :lol: mais sur mon pc.
a priori Pyzo supporte toutes les librairies classiques

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 14:51

L'aberration chromatique est très sensible à une courbure de la face de sortie du flint:
littrow2.jpg
littrow2.jpg (91.95 Kio) Consulté 19776 fois
on évolue vers le doublet de Fraunhofer

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 16:22

Je viens de jeter un oeil sur le package "Astropy" c'est du lourd :lol:
Il peut y avoir quelques bricoles intéressantes, mais pas évident à maîtriser
Tiens ils causent justement des coordonnées
https://learn.astropy.org/tutorials/ind ... nates.html

Avatar de l’utilisateur
steph37
Messages : 4331
Inscription : 14 avr. 2021, 11:03
Localisation : Chenonceaux

Mini Club Python

Message par steph37 » 28 oct. 2025, 16:43

Oui Astropy permet de faire ces conversions sans se casser la tête, j'ai essayé. J'ai comparé le résultat de "mon" script avec l'outil en ligne proposé par Websatro bin ça marche :D
J'ai mis des guillemets autour de mon car je n'ai pas écrit une ligne de ce script, c'est chatGPT qui l'a fait et en plus il trouve toujours le moyen de glisser une petite flatterie...ah va bientôt falloir payer pour tout ça :D
Dernière modification par steph37 le 28 oct. 2025, 18:40, modifié 1 fois.

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 28 oct. 2025, 17:28

Ah oui il est doué Chat GPT :D intarissable sur les doublets achromatiques :lol: il voulait même me faire des dessins , mais on n'a pas eu le temps :D
Bon, lui il cherche les rayons de courbure connaissant la focale; il faut donc résoudre les équations de l'achromatisme.
Il utilise la bibliothèque sympy
Intéressant, mais je pense que l'on peut faire plus simple
Et d'ailleurs normalement R4 est infini pour le Littrow
achro-gpt.jpg
achro-gpt.jpg (86.52 Kio) Consulté 19756 fois

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 29 oct. 2025, 13:25

je viens de m' apercevoir d'ailleurs que j'avais traité le problème en utilisant un solveur d'équations dans mon post sur le chromatisme :)
Pour deux lentilles accolées, les vergences vérifient un système de 2 équations à 2 inconnues:
Vc + Vf = V
Af.Vc +Ac.Vf = 0 (condition d'achromatisme)
On en déduit facilement Vc= V/(1-Af/Ac) et Vf= V/(1- Ac/Af) d'où l'on tire les rayons de courbure...
Donc même en Python pas la peine d'aller chercher une librairie de derrière les fagots :lol: et on peut aisèment intégrer mon script donnant la focale en fonction de la longueur d'onde.

Si l'on veut tenir compte de l'épaisseur du doublet, la vergence V est donnée par la relation de Gullstrand
V = Vc + Vf - e*Vc*Vf
C'est à peine plus compliqué: la 1ère vergence s'obtient en résolvant une équation du 2d degré

Avatar de l’utilisateur
clouzot
Site Admin
Messages : 16381
Inscription : 08 avr. 2019, 23:13
Localisation : 06 et 30

Mini Club Python

Message par clouzot » 29 oct. 2025, 14:39

Si je puis me permettre : quitte à utiliser une IA, essaye plutôt Claude (chez Anthropic, en particulier la version Code) qui est nettement moins débile que ChatGPT pour tout ce qui scientifique.

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 29 oct. 2025, 15:22

:arrow: Ce n'est pas ma tasse de thé, mais j'ai trouvé ces infos intéressantes sur le package astro PyEphem
https://astrax.github.io/astro2019/pub/ ... beamer.pdf
:arrow: Pour s'imprégner de la programmation, des scripts de simulation du mouvement des planètes:
https://codeine.ch/2024/11/25/simulatio ... -a-python/
:arrow: Il existe des librairies astro professionnelles, mais il vaut mieux avoir des configurations informatiques balèzes :lol:

Avatar de l’utilisateur
steph37
Messages : 4331
Inscription : 14 avr. 2021, 11:03
Localisation : Chenonceaux

Mini Club Python

Message par steph37 » 29 oct. 2025, 15:41

Petite digression ;) . @clouzot, je viens d'essayer Claude (version gratuite) que je n'avais jamais utilisé et je lui propose pour se mettre en route un problème de train épicycloïdal et de calcul du rapport de réduction.
Claude (gratuit) se plante sur un signe et donne un résultat faux. Je lui signale son erreur et il me dit gentiment Merci pour cette correction précieuse ! 🙏 :mrgreen:

Je trouvais aussi ChatGPT assez neneu il y quelques mois, je trouve qu'il a fait des progrès impressionnants. Je ne suis pas développeur donc incapable d'évaluer ses performances dans ce domaine. ;)

Avatar de l’utilisateur
clouzot
Site Admin
Messages : 16381
Inscription : 08 avr. 2019, 23:13
Localisation : 06 et 30

Mini Club Python

Message par clouzot » 29 oct. 2025, 16:00

steph37 a écrit :
29 oct. 2025, 15:41
Petite digression ;) . @clouzot, je viens d'essayer Claude (version gratuite) que je n'avais jamais utilisé et je lui propose pour se mettre en route un problème de train épicycloïdal et de calcul du rapport de réduction.
Claude (gratuit) se plante sur un signe et donne un résultat faux. Je lui signale son erreur et il me dit gentiment Merci pour cette correction précieuse ! 🙏 :mrgreen:

Je trouvais aussi ChatGPT assez neneu il y quelques mois, je trouve qu'il a fait des progrès impressionnants. Je ne suis pas développeur donc incapable d'évaluer ses performances dans ce domaine. ;)
Ah, c’est parce que Claude Code n’est pas accessible gratuitement; désolé, oubliez ce que j’ai dit. Il est bien mais il est payant…

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Python

Message par pejive » 30 oct. 2025, 06:56

De la lecture pour les journées pluvieuses ;)
Analyse scientifique avec Python
https://ycopin.pages.in2p3.fr/Informati ... index.html

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Astronomie-Python

Message par pejive » 31 oct. 2025, 09:25

Potentiel gravitationnel- Points de Lagrange
:geek: Rappels théoriques
:arrow: Le potentiel gravitationnel créé par une masse M à la distance r est V=-GM/r , G étant la constante de gravitation
Pour un système à 2 masses le potentiel créé sera V= -G(M1/r1+ M2/r2) r1 et r2 étant les distances du point aux masses M1 et M2
:arrow: Selon les lois de Képler deux masses en interaction gravitationnelle sont en rotation autour du centre des masses; la période de rotation T suit la loi
T²/a^3=4*pi²/G(M1+M2) a étant la distance des 2 masses
La vitesse de rotation angulaire W vérifie donc W²= a^3/G(M1+M2)
:arrow: Dans un référentiel tournant avec les masses, il existe une force d'inertie (souvent appelée force centrifuge);on montre que cette force est associée à un potentiel U= -W²r²/2 =-K*r² qui vient s'ajouter au potentiel de gravitation "statique"
:arrow: si l'une des masses, par exemple M1 est beaucoup plus grande que l'autre, le centre des masses est très proche de cette masse

:ugeek: principe du calcul en Python
On divise le plan (x,y) par une grille. La masse M1 est placée en (0,0)
On admet que la rotation se fait quasiment autour de M1
Les unités sont arbitraires; il faut seulement respecter le rapport entre G et le coefficient K du potentiel U
On a K/G=(M1+M2)/2/a^3
dans le script Python M1=12,M2=1, a=4 ce qui donne K/G=0,1
:cafe:
pts-lagrange-py.jpg
pts-lagrange-py.jpg (103.76 Kio) Consulté 19608 fois
l'instruction principale pour tracer le graphique est matplotlib.pyplot.contour -300,0 est la zone visualisée pour le potentiel

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Astronomie-Python

Message par pejive » 31 oct. 2025, 09:31

En donnant à K une valeur très faible ou nulle, on obtient le potentiel "statique"
Vgrav2corps.png
Vgrav2corps.png (233.8 Kio) Consulté 19606 fois
Dans le référentiel tournant, plusieurs singularités apparaissent
pts-lagrange1.png
pts-lagrange1.png (153.02 Kio) Consulté 19606 fois
:cafe: :cafe:
work in progress

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Astronomie-Python

Message par pejive » 31 oct. 2025, 10:02

reservé

pejive
Messages : 11138
Inscription : 09 avr. 2019, 05:43
Localisation : 33

Mini Club Astronomie-Python

Message par pejive » 01 nov. 2025, 10:31

Manipulation d'images
Sauf emploi de librairies-usine à gaz les possibilités sont très inférieures à celles de nos logiciels dédiés, mais on peut s'amuser un peu :)
:arrow: ouverture basique d'une image au format png
image-py01.png
image-py01.png (391.84 Kio) Consulté 19114 fois
Quelques difficultés pour indiquer la localisation de l'image: il faut mettre un \\ pour qu'il soit interprété comme un \ dans le path
:arrow: on peut visualiser un canal et l'afficher avec une palette de couleurs
image-py02.png
image-py02.png (327.44 Kio) Consulté 19093 fois
image-py03.png
image-py03.png (215.33 Kio) Consulté 19083 fois
Possibilité de zoomer
image-py04.png
image-py04.png (189.8 Kio) Consulté 19070 fois
On peut afficher plusieurs images rangées dans un tableau avec subplot
image-py05.png
image-py05.png (182.25 Kio) Consulté 19019 fois

Répondre

Revenir à « Sciences Astronomie et Astrophysique »