teaching:progappchim:matplotlib_gallery:ir_spectrum_co

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

teaching:progappchim:matplotlib_gallery:ir_spectrum_co [2015/05/11 09:35] – créée villersdteaching:progappchim:matplotlib_gallery:ir_spectrum_co [2015/05/12 10:04] (Version actuelle) villersd
Ligne 1: Ligne 1:
 ====== Spectre IR du CO ====== ====== Spectre IR du CO ======
  
-Différentes techniques de spectroscopie utilisent des représentations standardisées des spectres. En [[http://fr.wikipedia.org/wiki/Spectroscopie_infrarouge|spectroscopie Infrarouge]], l'absorbance est traditionnellement représentée en fonction des nombres d'ondes décroissants. +Différentes techniques de spectroscopie utilisent des représentations standardisées des spectres. En [[http://fr.wikipedia.org/wiki/Spectroscopie_infrarouge|spectroscopie Infrarouge]], l'absorbance est traditionnellement représentée en fonction des nombres d'ondes décroissants exprimés en $cm^{-1}$Pour rappel, en spectroscopie, le [[http://fr.wikipedia.org/wiki/Nombre_d%27onde#En_spectroscopie|nombre d'ondes]] $\tilde{\nu}$ est l'inverse de la longueur d'onde, elle-même reliée à la vitesse de la lumière et la fréquence de vibration : 
 + 
 +  * $\tilde{\nu} = 1/\lambda = \nu/c$ 
 + 
 +Le monoxyde de carbone est une molécule biatomique hétéronucléaire présentant un moment dipolaire dont la valeur peut varier au cours de la vibration. Cette vibration est donc active en IR, mais la transition du niveau fondamental (l'état majoritairement occupé à température ambiante) au premier état excité s'accompagne toujours d'un changement de l'état de rotation ($\Delta J = \pm 1$), ce qui donne une multitudes de transitions possible, de l'ordre d'une cinquantaine pour le <chem>CO</chem> à température ambiante. Nous allons voir comment représenter ce spectre et ces transitions, en utilisant un spectre du monoxyde de carbone mesuré sur un FTIR BRUKER IFS-113v à l'UMONS en 1990, dans une cellule à gaz (//cf.// {{:teaching:progappchim:matplotlib_gallery:rotvibco.csv|ce fichier}} au format [[:teaching:progappchim:csv|csv]]). 
 + 
 +===== Graphique des données ===== 
 + 
 +Le programme (lecture des données csv, mise en "array" de numpy et représentation par MatPlotLib) : 
 + 
 +<sxh python; title : IR-spectrum_CO-00.py> 
 +#! /usr/bin/env python 
 +# -*- coding: utf-8 -*- 
 +""" 
 +Représentation du spectre infrarouge du CO 
 +""" 
 +import csv   # module nécessaire "comma separated values" 
 +import numpy as np 
 +import matplotlib.pyplot as plt 
 + 
 +with open("rotvibco.csv", "rb") as csvfile: 
 +    reader = csv.reader(csvfile, delimiter=';'
 +    no,ab=[],[]  # initialisation des listes nombres d'ondes et absorbances 
 +    for row in reader:  # on parcourt les lignes successives du fichier d'entrée 
 +        no.append(float(row[0]))   # ajout à la liste no 
 +        ab.append(float(row[1]))   # ajout à la liste ab 
 + 
 +plt.figure(figsize=(12, 9), dpi=80) 
 +plt.title(u"Spectre infrarouge du CO \n (rotation-vibration)"
 +x,y=np.array(no),np.array(ab) 
 +plt.xlim(2250.,2010.) 
 +plt.ylim(-0.01,0.34) 
 +plt.xticks(np.linspace(2250., 2050., 5, endpoint=True)) 
 +plt.yticks(np.linspace(0., 0.3, 7, endpoint=True)) 
 +plt.xlabel(u"Nombre d'ondes ($cm^{-1}$)"  
 +plt.ylabel(u"Absorbance"
 + 
 +plt.plot(x,y) 
 +plt.show() 
 +</sxh> 
 + 
 +Le graphique obtenu (version statique) : 
 +{{:teaching:progappchim:matplotlib_gallery:rotvibco-00.png|}} 
 + 
 +===== Recherche et affichage des maxima ===== 
 + 
 +FIXME : à achever ! 
 + 
 +  * maxima local ? règle logique 
 +  * programmation avec liste et parcours 
 +  * numpy et slices + opérateurs logiques 
 +  * représentation --> maxima parasites 
 +  * travailler avec un "subset" --> idée : s'affranchir du bruit, seuil minimum 
 +  * moyennes continues 
 +  * [[http://docs.scipy.org/doc/numpy/reference/generated/numpy.convolve.html|numpy.convolve]] (+ [[http://stackoverflow.com/questions/20036663/understanding-numpys-convolve|ref1]]), [http://glowingpython.blogspot.be/2012/02/convolution-with-numpy.html|ref2]] 
 +  * scipy.signal maxima searching methods
  
  • teaching/progappchim/matplotlib_gallery/ir_spectrum_co.txt
  • Dernière modification : 2015/05/12 10:04
  • de villersd