7. Spécificités Euclid🔗
Table des matières
Le consortium Euclid a mis en place un référentiel de développement propre, EDEN, visant à standardiser les formats utilisés, les règles de codage en vigueur, les outils accessibles aux développeurs, etc., dans le cadre du SGS. Ce référentiel est incarné dans les environnements de production CODEEN et de développement LODEEN, livrés sous forme de machine virtuelle.
Note
Python est avec C++ l’un des deux langages de programmation officiels d’Euclid.
Attention
les contraintes de développement imposées par Euclid ne s’appliquent qu’aux codes développés dans le cadre du SGS. Un code d’analyse post-SGS n’est pas tenu de s’y plier, mais il peut certainement gagner à s’en inspirer (développement continu, tests, documentation, style, etc.).
7.1. Developers” Workshops🔗
Developers” Workshop #1 (nov. 2014)
Developers” Workshop #2 (oct. 2015)
C++ and Python Programming Sessions (mai 2016)
Developers” Workshop #3 (oct. 2016)
Developers” Workshop #4 (oct. 2017)
Developers” Workshop #5 (nov. 2018)
Developers” Workshop #6 (oct. 2019)
C++ and Python Programming Sessions #2 (nov. 2019)
Developers” Workshop #7 (oct. 2020)
Avertissement
certains liens de cette page requièrent un accès à l”Euclid Redmine.
7.2. Librairies EDEN🔗
EDEN est un environnement contraint incluant un nombre restreint de bibliothèques Python officiellement supportées. Dans sa version v2.1 (printemps 2020), il contient notamment:
pile numérique usuelle:
numpy,scipyetmatplotlib, ainsi quepandas;quelques bibliothèques spécialisées, p.ex. pyFFTW (Fastest Fourier Transform in the West), scikit-learn (machine learning), emcee (MCMC), iminuit (minimisation);
cython pour de l’optimisation statique de code;
entrées/sorties FITS: fitsio (plus rapide que
astropy.io.fits);librairies astronomiques: healpy (une interface à HEALPix, pour l’analyse et la visualisation de données sur une sphère), astropy et pyEphem (éphémérides)
GUI: PyQt
tests: PyTest
Attention
Dans le cadre du SGS, vous ne devez donc pas développer de code dépendant d’autres bibliothèques que celles-ci.
Toutefois, si une librairie absolument cruciale manque, il est possible de demander son inclusion via une procédure de Change requests, qui sera examinée et arbitrée par le CCB.
7.3. Git et GitLab🔗
Le développement du code est géré par git, et hébergé par le euclid-gitlab.