GammaLib : bibliothèque C++ pour l'analyse de données en astronomie gamma

Fiche PLUME
  • Création ou MAJ importante : 04/03/2013
  • Correction mineure : 06/03/2013
  • Auteur : Jürgen Knödlseder - Un des auteurs de GammaLib - Institut de Recherche en Astrophysique et Planétologie (IRAP) (CNRS, Université Paul Sabatier)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
  • Relecteur 1 : Christoph Deil
  • Relecteur 2 : Pierrick Martin
Mots clés
Description
Fonctionnalités générales

GammaLib est une bibliothèque C++ incluant toutes les fonctionnalités nécessaires à l'analyse d'observations astronomiques réalisées dans le domaine gamma. Un télescope gamma fournit typiquement une liste d'événements détectés, caractérisés par un temps, une énergie, une direction d'incidence...etc. GammaLib permet d'exploiter ces données de bas niveau (proches de l'instrument) et d'en extraire les images, spectres, et courbes de lumière à partir desquels l'analyse scientifique à un niveau plus élevé peut être effectuée. La vocation première de GammaLib est de fournir un cadre logiciel aussi indépendant que possible d'un instrument donné. GammaLib peut être adapté à un télescope spécifique et/ou permettre l'analyse simultanée d'observations issues de plusieurs télescopes gamma.

GammaLib est organisé en modules:

  • un module pour le traitement des observations et des données en astronomie gamma (gestion des observations, des données, des fonctions de réponse...etc.)
  • un module pour la définition des modèles (sources astrophysiques et bruits de fond)
  • un module pour l'ajustement de modèles aux données
  • un module pour la gestion des images FITS (Flexible Image Transport System) suivant le standard WCS (World Coordinate System) et incluant le format HEALPix (Hierarchical Equal Area isoLatitude Pixelization)
  • un module pour la création des ftools (executables suivant les standards du HEASARC)
  • un module pour le calcul numérique (intégration, différentation)
  • un module pour l'algèbre (vecteurs, matrices, matrices creuses)
  • un module pour des fonctions de support aux autres classes
  • une interface FITS pour la lecture et l'écriture des données
  • une interface pour la lecture et l'écriture des fichiers au format XML
  • une interface des paramètres selon le format IRAF (Image Reduction and Analysis Facility)

GammaLib est hautement portable et nécessite seulement un compilateur C++ pour sa construction. La seule dépendance nécessaire pour son fonctionnement est la bibliothèque cfitsio qui fournit l'interface FITS. Si disponible, GammaLib peut également profiter d'un support OpenMP pour effectuer du calcul parallèle sur des ordinateurs à processeurs ou coeurs multiples.

Toutes les fonctionnalités sont accessibles à travers une interface C++. De plus, toutes les classes de GammaLib sont également disponibles comme classes Python (version 2 et 3).

Pour permettre l'analyse des données d'un télescope spécifique, un module dédié doit être implémenté, décrivant le format et la structure des données du télescope, ainsi que sa fonction de réponse instrumentale. Par défaut, GammaLib permet pour le moment le traitement des données :

Des données en forme de spectres peuvent également être traitées.

Autres fonctionnalités

GammaLib a été conçu pour l'astronomie gamma, mais ses fonctionnalités peuvent être utilisées dans bien d'autres domaines, par exemple:

  • la gestion des fichiers FITS
  • la gestion des cartes du ciel en format WCS
  • l'analyse de spectres
  • des problèmes nécessitant l'optimisation de fonctions
  • des problèmes nécessitant l'utilisation de matrices creuses
Interopérabilité

Les formats suivants sont supportés pour échanger des données et des paramètres:

  • FITS
  • IRAF parameter interface (paramètres utilisateur pour des exécutables)
  • Fichiers XML
Contexte d'utilisation dans mon laboratoire/service

La bibliothèque sert pour le prototypage des logiciels d'analyse scientifique ctools pour le projet Cherenkov Telescope Array (CTA).

Elle sert également pour l'analyse des données du télescope LAT sur le satellite Fermi. Des éléments de la bibliothèque sont égalements utilisés dans le système d'analyse scientifique développé par l'IRAP pour l'exploitation du télescope SPI sur le satellite INTEGRAL.

Limitations, difficultés, fonctionnalités importantes non couvertes

Certains éléments de la bibliothèque sont encore dans un stade de prototypage. Par exemple, la vérification de la syntaxe XML n'est pas implémentée complètement. et l'interface des paramètres IRAF n'effectue pas encore une vérification des limites.

L'analyse de données Fermi/LAT est seulement supportée pour les analyses de type "binned". L'analyse de données COMPTEL est uniquement possible pour des sources ponctuelles, et il manque encore la gestion des modèles de bruit de fond instrumental sophistiqués. L'analyse de données CTA est toujours en évolution, car le format de données et la fonction de réponse instrumentale ne sont pas encore définitivement établis. Aucune interface pour autres télescopes gamma n'a été implémentée. Ce qui manque en particulier est un support du télescope SPI sur INTEGRAL.

L'interface du logiciel n'est pas encore sous contrôle de configuration. Une version 1.0 avec une interface stable est attendue pour le courant de l'année 2013.

Environnement du logiciel
Plates-formes
  • Mac OS X
  • Linux
  • FreeBSD
  • OpenSolaris
Environnement de développement
Type de structure associée au développement

Logiciel développé par le laboratoire de recherche IRAP. Plusieurs contributeurs externes au laboratoire participent au projet.

Configuration par GNU autotools, construction par GNU automake.

Eléments de pérennité

Le logiciel permet l'analyse de données en astronomie gamma multi-instrument, et intéresse ainsi potentiellement une large communauté de chercheurs autour du globe. Pour le moment, les communautés les plus ciblées sont celles des télescopes gamma de très hautes énergies existants (H.E.S.S., MAGIC, VERITAS) et futurs (CTA, mais aussi HAWC), ainsi que la communauté Fermi/LAT.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Contributions

Pour contribuer au développement de GammaLib, voir https://cta-redmine.irap.omp.eu/projects/gammalib/wiki/Contributing_to_GammaLib.