Ingestion des données associées dans VizieR

Contents:

Les données associées VizieR se regroupent en deux catégories:

URL d'accès aux données associées http://cdsarc.cds.unistra.fr.fr/assocdata/
(version locale) http://cdsarc.cds.unistra.fr.fr/local/assocdata/
URL de Saada http://cdsarc.cds.unistra.fr.fr/saadavizier/
(version locale) http://cdsarc.cds.unistra.fr.fr/saadavizierlocal/
URL de soumission des données http://cdsarc.cds.unistra.fr.fr/vizier.submit/

Deux bases sont disponibles:

Les métadonnés pour les données associées sont les métadonnées "mandatory" ObsCore de l'IVOA (voir la desciption ici).
Le système de gestion de bases de données est Saada.

1  L'interface d'accès aux données

L'interface propose 2 modes:

Note: les modifications (ex: ajout de nouveau catalogue) sont effectives sur le site web de production (webassocdata) une fois par semaine.
Toutefois, la table "obscore2", disponible via ADQL est mise à jour à chaque ingestion de catalogue en base de production.

2  Etapes d'ingestion des données associées

  1. L'ingestion des donnés dans Saada nécéssite au préalable d'établir le mapping entre le(s) fichiers FITS et les métadonnées ObsCore.
    Par convention, on utilisera les noms obscoreimage et obscorespectrum pour les fichiers mapping relatifs aux images et aux spectres. Ce mapping peut :
    • provenir de téléchargement d'astronome (A&A, ..) utilisant l'interface de soumission des données.
    • être construite par l'utilisation des logiciels getimg et getspec.

  2. Ensuite, le mapping est ingéré dans la base locale à l'aide des programmes putimg et putspec

  3. A la fin de l'ingestion en base locale, le programme propose d'installer directement la collection dans la base de production

3  Le fichier de mapping

Le fichier de mapping (entête FITS - ObsCore) porte sur un ou des mappings issuent d'une ou plusieurs collection(s).
Par convention, on utilise les noms obscoreimage pour les mappings images, et obscorespectrum pour les spectres.

Note : on entend par "collection" un mapping (entête FITS - ObsCore) relatif à un ou plusieurs fichiers FITS. Un mapping s'appliquant à une collection de fichiers, s'appliquera pour tous les fichiers de la collection. Cela est utile lorsque des fichiers ont des entêtes FITS similaires.

Le format du fichier peut être:

Outils:

Exemple de mapping au format texte:
-----------------------------------------------
image: rasters/ (384)
            hdu: -1
    target_name: TARGET       # Assigned by keyword - Value: LN2225B
           s_ra: WCS.getCenter(1)# Assigned by WCS - Value: 250.2513303042088
          s_dec: WCS.getCenter(2)# Assigned by WCS - Value: -46.92333464412786
          s_fov: WCS.getFieldOfView()# Assigned by WCS - Value: 0.19998514701814568
       s_region: WCS.getWorldPixelRegion()# Assigned by WCS - Value: Polygon ICRS  249.95903730828033 -46.82296872113044  249.95795323935064 -47.02296635561337  250.54471636792442 -47.02295386814858  250.54361408030866 -46.822956320733006 
   s_resolution: WCS.getWorldPixelSize()# Assigned by WCS - Value: 8.485298618489859
         system: WCS.getAstroFrame()# Assigned by WCS - Value: FK5,2000.0,2000.0
          t_min: OBS_TIME
          t_max: 
      t_exptime:
   t_resolution: 
         em_min: 0.000007
         em_max: 0.000015
   em_res_power: 
        spcunit: 'm'
        em_band:              # Value: 
     pol_states: 
instrument_name: 'ISOGAL'
  facility_name: TELESCOP     # Assigned by keyword - Value: ISO

Ce fichier peut être modifié à la main par un éditeur (vi). C'est le format de sortie des commandes getimg et getspec ainsi que le format en entrée des programmes putimg et putspec.

Le commentaire suivant la valeur indique la valeur trouvée par Saada (utile lorsque l'on utilise des mots clés FITS). Dans le cas de collection regroupant plusieurs fichiers, la valeur est mise à titre indicatif : il s'agit de la valeur prise dans le premier fichier FITS de la collection.

Note : le fichier JSON est affiché au format text par les programmes putimg et putspec.

4  Ingestion des données en ligne de commandes

getimg : établit le mapping entre un fichier (ou une collection) de fichier FITS.
ex: mapping pour un fichier fits:
       getimg fits/monfichier.fit
    mapping pour un repertoire contenant des fichiers fits et etablissant un mapping commun a tous les fichiers
       getimg fits/
    mapping pour un repertoire contenant des fichiers fits et etablissant un mapping dedie a chaque fichiers
       getimg "fits/*"
    mapping pour une collection (description commune) pour une liste de fichiers 
       getimg liste
    ou liste est un fichier contenant les fichiers de la collection (un fichier FITS par ligne)

    Pour rediriger le resultat vers un fichier:
       getimg fits/ > obscoreimage

getspec : Idem que "getimg" appliqué aux spectres.

Note : il est possible de concaténer des mappings afin de regouper dans le même fichier de mapping (obscoreimage ou obscorespectrum) des mappings relatifs à plusieurs collections ou fichiers FITS:

getimg fits/fichier1.fits>obscoreimage
getimg fits/fichier2.fits>> obscoreimage
...

Note: plusieurs fichiers mapping peuvent exister au sein d'un même catalogue (mais peut être pas souhaitée).
Les programmes d'ingestions putimg et putspec peuvent incrementer un catalogue déjà existant (voir etapes pgm ingestion) putimg : le programme qui met en forme et ajoute les données dans la base Saada (local).

ex: ingestion du mapping present dans le fichier "obscoreimage"
    putimg
    ingestion du mapping nomme "obscoreimage1"
    putimg obscoreimage1

putspec: idem que putimg" appliqué aux spectres/SED/time-series.

Etape des programmes putimg et putspec:

  1. ouverture du fichier de mapping au format texte par l'editeur VI
  2. modification possible du mapping
  3. test du mapping
  4. suite de questions:
    • si des donnees existent pour le catalogue , un message demande si les données doivent être écrasées
    • suppression eventuelle (si existant) d'un mapping qui est utilisé par la suite pour l'ingestion en base de production
    • choix du mode Saada: FUSION /CLASSIFIER (FUSION est adapté pour des collection aux entêtes similaire)
  5. debut de l'ingestion dans la base locale
  6. demande d'inexation (plus long, mais permet d'accelerer la vitesse de recherche dans la base)
  7. suppression fichiers temporaires..
  8. demande si le mapping doit être mis en base de production immédiatement. Si "oui", les donées seront accessible sur la base de production par commande ADQL sur la yable "obscore2".
    si "non", les données seront mis en production suivant le cycle "normal" d'ingestion des catalogues dans la base vizier.

saadaconv : programme avec plus d'option pour créer un mapping ou ingérer les données en base locale.

ex: aide en ligne
    saadaconv -h
    afficher le resultat d'un mapping existant:
    saadaconv -f obscoreimage -o table
    transformer un format de fichier json en text
    saadaconv -f obscoreimage -o text

5  Assignement des métadonnées

Le fichier de mapping au format texte est du type clé=valeur.

Les expressions dans le mapping:

5.1  Les extension (HDU) dans un fichier Fits

Un mapping (soit une entrée/record dans Saada) correspond a 1 HDU.
Par défaut, le mapping s'applique au premier HDU.

S'il existe plusieurs HDU, on utilise le spécifie dans le mapping:

ex: mapping s'appliquent au HDU=2
   hdu: 2
Note: la vaeleur -1 est la valeur par défaut: elle correspond au 1er HDU valide.

Il est possible de créer un mapping qui s'appliqueà tous les HDU d'un fichier:

ex: mapping s'appliquent a toutes les extensions HDU
   hdu: *
Dans ce cas les utilitaires putimg, img ou encore saadaconv créérons un nouveau mapping détaillée. Voir l'exemple du catalogue J/ApJ/802/60.

ex: utilisation de l'utilitaire saadaconv pour generer un mapping s'appliquant a tous les hdu
    (catalogue J/ApJ/802/60)
   saadaconv -f obscoreimage

5.2  Les métadonnées utiles par ordre d'importance

6  XObscCoreFits (ou xfits)

Le logiciel XObsCoreFits (alias xfits) est une aide à remplir les fichiers obscorespectrum ou obscoreimage. Le fichiers résultats générées (obscorespectrum ...) peuvent ensuite être ingéré dans la base Saada-vizier avec la commande putspc ou putimg.

7  Génération d'un mapping à partir d'un template

Dans certain cas, il est nécéssaire de faire un script pour remplir le mapping. Pour ce faire, on peut utiliser un script Python qui a partir d'un template construit le fichier de mapping obscorespectrum ou obscoreimage.

Exemple:

fichier obscorespectrum.py pour J/ApJS/261/31

8  Fichier .status/.Summary

La procédure putimg ou puspec ajoute le tag suivant dans le fichier .status (ou .Summary) du catalogue.
\VizAssocData{obscoreimage}
Ce tag est ajoutée en base pour signaler qu'il existe des entrées du catalogue dans la base de données associées. Le tag n'est effectif qu'après avoir réinseré le catalogue (2v).

On peut aussi ajouter une colonne "assocdata" qui est un lien vers le site web des données associées:

Pour un spectre:

\vizMore{ table }{AssocData}{\AssocDataSpecLink{@{@cat}}{@{***FITSfile}}}
\vizAddColumn{ table }{AssocData}{fits}{}{ -FITSfile}{Associated Data web page}

ou FITSfile est le nom de la colonne dont le contenu = nom u fichier FITS

Pour une image (on utilise AssocDataImageLink pour creer une imagette):

\vizMore{ table }{AssocData}{\AssocDataImageLink{@{@cat}}{@{***FITSfile}}}
\vizAddColumn{ table }{AssocData}{fits}{}{ -FITSfile}{Associated Data web page}

Exemple: https://cdsarc.cds.unistra.fr/viz-bin/cat/J/A+A/654/A40

Exemple: VIII/39, J/A+A/589/A36 V/127

9  Utilisation d'un script

Certains mapping peuvent être complété avec des tables VizieR du même catalogue. Par exemple, le mapping pour les spectres issus du catalogue J/A+A/479/131 a été généré à l'aide d'un script Python.

voir obscorespectrum.py