Tags:
create new tag
, view all tags

Librairies HEALPix

Conversion de la librairie HEALPix vers C (travail en cours effectué par Julien Mey)

Contexte

  • Le CDS avec plusieurs de ses partenaires ont défini un système de description et d'encodage de régions du ciel basé sur un découpage hiérarchique de la sphère céleste (HEALPix + FITS). Ce système a été baptisé MOC pour Multi-Order Coverage map.
  • Le MOC vient d'être reconnu comme standard de l'IVOA (International Virtual Observatory Alliance). Il est déjà utilisé dans l'outil Aladin et dans TOPcat.
  • Pour promouvoir son usage, nous aurions besoin de diversifier les API qui supportent un tel système MOC. Actuellement seule une version Java est disponible. Une version python est en cours de codage et il nous semblerait judicieux de distribuer également une librairie C pour couvrir tout le spectre des besoins.

But de la manip

  • Générer une librairie C, ainsi qu'une commande en ligne utilisant cette librairie pour effectuer les opérations de bases (union, intersection, complément, différence, test d'égalité) sur les MOC. Le but du jeu est la performance (en vitesse et en minimisation de l'impact mémoire)

  • Note: bien qu'un MOC puisse être vu comme un "ensemble" au sens mathématique, il faudra développer des routines propres afin de ne pas faire exploser la mémoire. La meilleure stratégie est d'implanter la gestion des liste de nombres entier (long) par mémorisation "d'intervalles" triés (liste de couples).

  • L'encodage d'un MOC se faisant en FITS (standard de l'astronomie pour les tableaux de valeurs), il est possible d'utiliser la librairie FITS-IO pour la lecture et l'écriture des MOCs.

  • Il est inutile d'utiliser une librairie HEALPix : la génération du MOC ainsi que son affichage n'est pas pris en compte dans ce projet => Utiliser Aladin pour les vérifs.

  • Un soin particulier doit être apporté pour implanter dans le code des tests "unitaires" afin de vérifier facilement la justesse des algos. Il est très facile de se planter sans s'en rendre compte.

  • Extension possible (idée Daniel Durand du CADC) : La commande en ligne pourrait implanter non seulement les opérations de base, mais également une algèbre ensembliste pour passer par exemple la commande "union des 3 mocs m1,m2 et m3 dont on prend l'intersection avec m4", soit: moc "(in1 + in2 + in3) ^ in4" > out + : union, ^ : intersection, - : soustraction, ~ : complément, () : parenthésage pour la préséance

Documentation

Résultats

  • le code source est disponible sur le SVN de snob, projet CMOC

Tests effectués par Daniel Durand

  • remarque: suite à une attaque informatique du CADC les tests n'ont pas pu démarrer avant le 26/08...
Topic revision: r3 - 2014-08-26 - AndreSchaaff
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback