Transformation d'une table TSV en VOTable - Ajout des métadonnées

L'objectif de cet exercice est :

  • d'appréhender le format VOTable
  • de comprendre le rôle important que jouent les métadonnées
  • d'expérimenter l'utilisation des métadonnées dans un outil VO

Nous allons partir d'une table au format CSV (coma-separated values) , dépourvue de métadonnées, la charger dans Topcat et lui assigner les UCD correspondants.

Quelques notions sur les UCDs

Les UCDs (Unified Content Descriptors) donnent la signification sémantique d'une quantité ("de quelle quantité s'agit-il ?"). Ils sont utilisés principalement pour décrire le contenu des colonnes dans les documents VOTable, par le biais d'un attribut ucd="... au niveau de l'élément FIELD. Ils sont également utilisés pour décrire des paramètres individuels ou des données tabulaires dans le registry (annuaire) de l'OV.

Les UCDs sont standardisés et décrits dans deux documents de référence (recommendations IVOA) : un pour les règles de syntaxe, et un autre contenant la liste des mots valides.

En bref : un UCD est constitué au minimum d'un mot, ou de plusieurs mots séparés par des ';' . L'essentiel du sens est donné par le premier mot. Pour décrire une magnitude mesurée dans la bande V, on peut utiliser le mot phot.mag (décrivant une magnitude) et le combiner au mot em.opt.V (décrivant la bande V dans le domaine optique) : l'UCD complet sera donc phot.mag;em.opt.V

La documentation et les outils se rapportant aux UCDs se trouvent ici : http://cdsweb.u-strasbg.fr/UCD/ . Un ensemble d'outils en ligne sont également disponibles : http://cdsweb.u-strasbg.fr/UCD/tools.htx

Assignation des UCDs

  • Récupérez la table apj_614.csv sur votre disque dur
  • Récupérez également apj_614.desc, qui contient la description des différentes colonnes contenues dans la table
  • Lancez Topcat ( java -jar topcat-full.jar)
  • Chargez la table dans Topcat (menu File --> Load table en précisant CSV comme format)
topcat_loadCSV.png

  • Puis, cliquez sur le bouton topcat_columnMETA.png Display column metadata, et sélectionnez l'affichage de la colonne "UCD" depuis le menu Display.

topcat_ucd.png

  • Pour chaque colonne de la table, remplissez le champ UCD correspondant (double-cliquez sur la cellule à éditer) en vous aidant de la description correspondante (fichier apj_614.desc ) et de l'outil UCD Builder (cf. section suivante)

Recherche manuelle d'UCD

Pour trouver les UCD à assigner, utilisez l'outil UCD builder ( http://cdsweb.u-strasbg.fr/UCD/cgi-bin/descr2ucd ).

Entrez simplement la description du paramètre, et l'outil vous suggérera l'UCD à utiliser.

Vous pouvez copier/coller chaque UCD dans la colonne adéquate dans le tableau des métadonnées de Topcat.

Assignation des unités

Les outils en ligne suivants sont utiles lorsqu'on cherche à assigner des unités :

Afin de gagner du temps, les unités à utiliser se trouvent dans le fichier apj_614.units Pour comprendre la signification d'une unité, vous pouvez utiliser http://vizier.u-strasbg.fr/cgi-bin/Unit

  • Cliquez sur le bouton topcat_columnMETA.png Display column metadata, et sélectionnez l'affichage de la colonne "Units" depuis le menu Display, puis copier/coller les unités de chaque champ.

Conversion vers le format VOTable

Une fois les UCDs et les unités assignées, il ne nous reste plus qu'à sauvegarder notre table au format VOTable.

  • Dans Topcat, sélectionnez File --> Save table, précisez votable-tabledata et sauvegardez.
  • Ouvrez le fichier obtenu dans un éditeur de texte

Vous pouvez aussi vous référer au fichier solution.

Utilisation des métadonnées dans un outil VO

Utilisation des UCD

Nous allons démontrer deux utilisations différentes des UCDs :

  • Détection automatique des colonnes d'intérêt
  • Utilisation dans les filtres Aladin

  • Lancez Aladin (java -Xmx300M -jar Aladin.jar) et chargez une image de M33 (File, Open, Aladin Images, choisissez l'image Lw-POSSI.E par exemple).
  • Puis interrogez SIMBAD et chargez la VOTable que vous avez obtenue à l'étape précédente (ou utilisez la VOTable solution).
  • Sélectionnez ensuite Cross-match objects depuis le menu Catalog : remarquez que les colonnes portant l'information de la position ont été sélectionnées automatiquement, même si elles portent des noms différents. Les UCDs nous renseignent de façon non ambigue sur la nature des colonnes.

  • Sélectionnez Create a filter depuis le menu Catalog, et sélectionnez Draw circles proportional to object luminosity.
  • Passez en Advanced mode afin de voir la syntaxe du filtre : celle-ci repose sur l'utilisation d'expressions régulières sur les UCDs pour indiquer les colonnes à utiliser pour interpréter l'expression. Un filtre générique peut opérer sur des données d'origines différentes, à condition que les UCDs soient renseignés.

Utilisation des unités

Nous allons démontrer l'utilisation des unités, à nouveau au travers des filtres Aladin :

  • Lancez Aladin (java -Xmx300M -jar Aladin.jar) et chargez une image de M33 (File, Open, Aladin Images, choisissez l'image Lw-POSSI.E par exemple).
  • Puis chargez la VOTable obtenue précédemment (ou utilisez la VOTable solution).
  • Sélectionnez "Create a filter" depuis le menu Catalog, et basculez en Advanced mode. Copiez/collez le script suivant :
$[spect.dopplerVeloc*]<-1.7e5m/s {draw blue square}

{draw red rhomb} 

et cliquez sur Apply

Les filtres utilisent une bibliothèque de conversion capable d'interpréter les unités, et d'effectuer à la volée la conversion de m/s en km/s.

Utilisation de STILTS (en ligne de commande)

STILTS est un outil en ligne de commande permettant d'effectuer la plupart des opérations qu'offre Topcat : conversion de formats, ajout de colonnes, création de plots 2D. Il est intéressant d'utiliser STILTS si on a besoin d'un mode batch ( conversion d'un grand nombre de fichiers ) ou pour une utilisation derrière un CGI par exemple.

  • Exécutez java -jar stilts.jar dans un terminal. STILTS affiche les différentes tâches disponibles. Nous allons nous intéresser dans un premier temps à tcopy qui permet la conversion entre différents formats tabulaires
  • java -jar stilts.jar tcopy in=apj_614.csv ifmt=csv ofmt=votable va permettre de convertir notre table CSV en VOTable et d'afficher le résultat sur la sortie standard. java -jar stilts.jar tcopy in=apj_614.csv ifmt=csv ofmt=votable out=matable.xml permet de préciser le fichier de sortie.

  • La tâche tpipe permet, en plus de la conversion de format, d'effectuer des opérations sur les colonnes (suppression, ajout de nouvelles colonnes). Exemple : en partant de notre table apj_614.xml, on va ajouter une colonne flux5007 (calculée à partir de la magnitude) et ne conserver en sortie que les champs RAJ2000, DEJ2000 et flux5007 :
java -jar stilts.jar tpipe in=apj_614.xml ifmt=votable ofmt=votable cmd='addcol -units Jy flux5007 "pow(10, -0.4*(m5007+13.74))"' cmd='keepcols "RAJ2000 DEJ2000 flux5007"'

  • En utilisant la tâche plot2d, on peut très facilement créer un graphe RAJ2000 vs. DEJ2000 dont la couleur des points dépend de la valeur de la magnitude :
java -jar stilts.jar plot2d in=apj_614.xml ifmt=votable xdata=RAJ2000 ydata=DEJ2000 auxdata=m5007 . Pour sauvegarder le graphe dans un fichier, il suffit d'ajouter -out=foo.png à la fin de la commande.

Aller plus loin

Voici quelques liens pour approfondir le sujet, après la journée OV :

Pour des grandes collections de données, il est préférable d'automatiser le processus d'assignation des UCDs à partir des descriptions des colonnes. Nous pouvons pour cela utiliser la méthode assign des Web Services SOAP dédiés aux UCDs ( http://cdsweb.u-strasbg.fr/cdsws/ucdClient.gml ). La description de chaque colonne peut être passée au service, qui renverra l'UCD correspondant le mieux adapté.

Ce Web Service SOAP, ainsi que d'autres méthodes de manipulation des UCDs, peut être consommé dans différents languages (Perl, Python, Java). Un exemple Java est disponible ici.

Ce tutoriel est librement adapté de la session Metadata présentée par Sebastien Derriere et. al lors du workshop How to publish data to the VO (Juin 2009)

-- ThomasBoch - 16 Sep 2009

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatcsv apj_614.csv r1 manage 11.0 K 2009-09-16 - 14:21 ThomasBoch  
Unknown file formatdesc apj_614.desc r1 manage 0.3 K 2009-09-16 - 14:37 ThomasBoch  
Unknown file formatunits apj_614.units r2 r1 manage 0.1 K 2009-09-21 - 12:58 ThomasBoch  
XMLxml apj_614.xml r1 manage 27.6 K 2009-09-16 - 14:36 ThomasBoch  
PNGpng topcat_columnMETA.png r1 manage 0.4 K 2009-09-21 - 12:28 ThomasBoch  
PNGpng topcat_loadCSV.png r1 manage 8.4 K 2009-09-16 - 14:30 ThomasBoch  
PNGpng topcat_ucd.png r1 manage 14.4 K 2009-09-21 - 12:30 ThomasBoch  
Edit | Attach | Watch | Print version | History: r12 < r11 < r10 < r9 < r8 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r12 - 2009-09-21 - ThomasBoch
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback