TP – Python II Scipy – traitement du signal – Charger le fichier

publicité
TP – Python II
Scipy – traitement du signal
1 - Filtre Gaussien sur un signal
– Charger le fichier exo1theo.dat. Il contient une opacité spectrale 'k (nu)' sur une gamme de
fréquences spécifiques. La première colonne contient u = h ν / kT (sans dimension) et la
seconde est l'opacité k (cm²/g). Ces données sont pour une température du médium tel que kT
= 153 eV
– Représenter sur une figure la transmission en fonction de e =h ν en eV sachant que
T ν =e−k ν s ρ où (s ρ) est, dans notre cas, de l'ordre de 14.
– Comparer aux données expérimentales du fichier exo1exp.dat (e=hv en (eV) en 1ere
colonne, et T en 2nd colonne)
– Pour une fenêtre gaussienne à 40pts, appliquée sur les données théoriques, trouver
l'élargissement nécessaire afin de reproduire les données expérimentales. (il faudra créer un
filtre puis le passer sur le signal (une convolution))
– Il reste un décalage entre la courbe théorique et l'expérience. Cela vient de la précision de la
température du médium. T=153.23 serait préférable avec les données théoriques que l'on
utilise.
Scipy – Traitement d'image
2 - Bruit et filtre
–
Ouvrir le l'image MTRO_bruit.jpg et l'afficher.
–
Effectuer une coupe en Y = 212 et l'afficher sur l'image précédente
– Cette image est bruitée. Appliquer différents filtres pour essayer de réduire le niveau de
bruit dans l'image (on peut essayer 3 filtres de scipy.ndimage - uniforme, médian et gaussien
par exemple)
–
Afficher les 4 images avec les coupes en Y=212 correspondantes.
– Sauvegarder l'image filtrée avec le filtre gaussien au format jpg et la comparer avec
MTR0.jpg
Scipy – Intégration
3 - Intégration de fonction et échantillon
–
Faire l'intégration d'une gaussienne en utilisant la méthode des trapèzes en écrivant
explicitement l’algorithme avec une boucle for. Pour rappel la méthode des trapèzes
fonctionne de la manière suivante.
b
∫ f  x  dx≈b−a×
a
f  a f b
2
–
Utiliser la fonction prédéfinie dans le module scipy
–
Comparer le résultats et le temps de convergence pour dx =1, 0.01, 0.0001
–
Comparer le résultat avec la méthode de simpson ainsi qu'avec l'intégration directe de la
fonction sans passer par l’échantillon (scipy.quad).
Incorporation de module développés en C ou Fortran
4 - Routine d'intégration en C ou/et Fortran
– Générer 1 (ou 2) codes un en C ou Fortran (ou les deux) permettant de faire l'intégration
suivant la règle des trapèzes. Rendre cette fonction d’intégration numérique accessible à python
en utilisant SWIG et F2PY.
– Comparer la convergence avec le code purement python.
Python et la programmation orienté Objet
5 - Classe Simple
Créer une classe cercle permettant de retourner le périmètre, l'aire et le volume pour un rayon
donné.
6 - Classe avec Heritage
Créer une classe (objet) Etudiant comprenant les attributs suivants :
nom
prénom
age
spécialité
status (fresman, sophomore, junior and senior)
et les méthodes suivantes :
définir le nom
définir le prénom
définir l'age
définir la spécialité
définir le statut
Parmi les étudiants, il y a ceux qui sont en dernière année (senior). Ces étudiants doivent
passer un examen et déposer un dossier de vœux pour les 'graduate school' qu'ils présentent.
Faire un 'classe' spécifique pour ces étudiants. Pour ces étudiants une méthode affichera la
date d'examen. (date arbitraire que vous choisirez).
Python et les Widgets
7 - Réaliser un widget cercle comme ci dessous
8 - Réaliser un widget de graphe comme ci dessous – Pour la fonction de tracer vous intégrerez la
fonction tracer.py fournie dans le fichier TP_II.tar par un copier-coller. Attention, les noms des
wb utilisés doivent être adaptés à votre widget et vos noms de wb.
Téléchargement