pyFAI

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 16/11/11
  • Correction mineure : 07/09/13
  • Auteur de la fiche : Jérôme Kieffer (ESRF)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

pyFAI : integration azimuthale pour diffraction X avec détecteur 2D

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 0.9.0 - 30 Juillet 2013
  • Licence(s) : GPL
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Jérôme Kieffer (implémentation python), Dimitris Karkoulis (implémentations parallèle OpenMP et OpenCL), Peter Bösecke (Géométrie utilisée), V. Armando Solé (traitement d'images), Manuel Sánchez del Río (idée originale). Jonathan P. Wright (idées) Frédéric-Emmanuel Picca (Documentation, idées)
  • Contact concepteur(s) : Jerome.Kieffer@esrf.fr
  • Laboratoire(s), service(s)... : ESRF, Soleil

 

Une fiche logiciel décrit plus en détail ce développement, consultez la pour plus d’informations : pyFAI
Fonctionnalités générales du logiciel

PyFAI est un outil qui permet de convertir les clichés de diffraction SAXS / WAXS obtenus avec des détecteur 2D type CCD en diffractogrammes utilisables avec les logiciels de diffraction de poudre : quantification de phases, analyse de textures...

PyFAI est une bibliothèque Python, elle a pour but d'être intégrée dans d'autres logiciels (comme PyMca ou EDNA). Pour permettre l'analyse de données en ligne, la géométrie de l'expérience doit être connue dès que possible, c'est pourquoi pyFAI intègre une grande partie du code qui permet la calibration de la position du détecteur à l'aide d'échantillons de référence. PyFAI sait aussi convertir d'autres géométries si elles sont connues (comme celle utilisée par Fit2D).

PyFAI sait intégrer toutes les images prises avec des détecteurs plans (pas les "Imaging Plate" courbes) dans toutes les géométries possibles : transmission, réflexion, dans l'axe ou en dehors de l'axe, quel que soit l'angle du faisceau incident avec la normale du détecteur. Il utilise Fabio pour lire les images des détecteurs ce qui garantit la compatibilité avec une vingtaine de formats d'image différents.

Contexte d’utilisation du logiciel

Les détecteurs bi-dimensionnels (caméras CCD ou CMOS, Pixel Detectors, ...) ont petit à petit remplacé les détecteurs ponctuels pour la diffraction X (sur monocristal, sur poudre, ou diffusion aux petits angles) depuis 15 ans. Ces détecteurs offrent des surfaces sensibles étendues avec des résolutions spatiales de quelques dizaines de microns et proposent plusieurs millions de photo-sites (0.1-16 Mpix). PyFAI se limite à la diffraction sur poudre (WAXS) et à la diffusion aux petits angles (SAXS).

Pour transformer les images provenant de ces capteurs en données utilisables pour le scientifique il faut (cas SAXS / WAXS) :

  • Corriger du bruit de fond électronique (dark-current)
  • Corriger de la sensibilité relative des photo-sites (flat field)
  • Corriger la distorsion géométrique de l'optique utilisé (taper)
  • Appliquer un masque pour cacher les pixels défectueux (ou cachés, inactifs, ...)
  • Convertir la position des pixels en coordonnées utilisables par d'autres programmes (2theta / chi)

PyFAI propose de faire ces différentes corrections en plus de la transformation polaire. Comme il faut conserver la totalité du signal et la densité surfacique au cours de la transformation, la transformation polaire est faite par une sorte d'histogramme (avec découpage de pixels).

Publications liées au logiciel