Semaine du 13 au 19 juin
Le code a été refactorisé. Il est maintenant organisé en 4 classes :
CalifaGalaxy : Permet de récupérer les données des fichiers FITS de la base de données CALIFA. Le but est de pouvoir extraire les données de plusieurs bases de données différentes. Il faudra alors faire une classe par base de données.
AbstractSpectralLineExtractor : Cette classe est une classe abstraite qui définit toutes les méthodes permettant de trouver les raies, sauf find_pinit qui trouve l'initialisation de la recherche des raies. Pour pouvoir lancer un calcul, il faut crée une classe qui hérite de AbstractSpectralLineExtractor et implémenter la méthode find_pinit. Ajouter une méthode plutôt que de passer une fonction en argument du constructeur permet d'accéder à tous les attributs de la classe et de stocker un état si nécessaire.
SimpleLineExtractor et AdjacentLineExtractor sont deux implémentations de la classe abstraite précédente. La première se contente d'initialiser le calcul avec un vecteur constant, la seconde cherche dans les pixels voisins celui qui a les résidus les moins élevés et utilise la solution de ce pixel comme initialisation.
Pour les parcours : le choix d'un parcours se fait en passant un iterable au constructeur des ***LineExtractor. Ceci permet une grande souplesse dans le choix du parcours : on peut passer au constructeur une liste, un tableau, un générateur, une compréhension de liste, et plus généralement toute classe qui dispose d'une méthode iter.
Le but de cette refactorisation est de pouvoir optimiser le code sans détruire le reste du programme, de pouvoir extraire du spectre un nombre quelconque de raies, et de rendre le code plus présentable. Actuellement, le code est convenable en ce qui concerne l'optimisation sans courir trop de risques, mais il faudra encore réecrire certaines méthodes pour le rendre plus propre. De plus, le support de l'extraction de raies différentes des trois raies utilisées n'est que partiel.
J'ai présenté ces classes succintement pour donner une idée générale du nouveau code. J'écrirai une documentation détaillée qu'il faudra consulter pour plus de précisions.
Semaine du 20 au 26 juin
I | Attachment | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|
![]() |
prof.pstat | manage | 602.2 K | 2016-06-20 - 08:06 | UnknownUser | Un profilage de path_multi.py |