Tags:
create new tag
, view all tags
Page à compléter/corriger par l'équipe "catalogues"

Sommaire

I. Mise en forme d'une table dans VI et quelques commandes shell

Commande "expand" pour enlever les tabulations
Commande "head" and "tail" pour afficher ou extraire des débuts ou fin de fichier
Commande "acut" pour reformater les colonnes (et tabmap pour afficher des colonnes)
Commande "trcol" pour faire des substitutions de caractères sur des colonnes précises
Commande "trim" pour extraire les caractères en trop en fin de fichier
Mode "Visual Block" dans VI pour sélectionner du texte
Substitutions et suppressions de lignes dans VI
La commande "join" pour coller 2 tables horizontalement selon la comparaison d'un champ commun
Utilisation de sed pour ajouter une ligne blanche (ou non) après ou avant un pattern ou substituer un pattern
La commande "a2a" pour convertir des fichiers au format bizarre en ASCII
La commande "ps2ascii" pour convertir des fichiers postscript ou PDF en ASCII
La commande "fits2a" pour convertir des fichiers FITS au format ASCII
La commande "Detex" pour convertir des fichiers LaTeX, HTML (ou PDF) au format ASCII
La commande "file" permet de vérifier le format d'un fichier
La commande "wget" permet de récupérer un ou plusieurs fichier(s) depuis une URL
Transposer une table dans VI (transformer paramètres en lignes et objets en colonnes par un objet par ligne et les paramètres en colonnes par exemple)
Mise en forme du fichier ReadMe et de la standardisation des tables : Anafile package & Librairie Python

II. Commandes de base depuis la création du Readme au passage en FTP

newcat pour créer une référence
anafile pour mettre en forme standard la description d'une table et faire les premiers contrôles
getobj pour rechercher des objets dans Simbad
detex pour transformer un fichier HTML en fichier texte
modbyte pour ajouter ou enlever une valeur à tous les numéros de colones
ana pour vérifier que le Readme est standard
modcat pour faire la liste des fichiers à publier
make_public pour publier les fichiers sur le FTP
tar : pour compresser plusieurs fichiers dans un répertoire

III. Intégration du catalogue dans Vizier

Liens vers une section du ReadMe depuis VizieR
setUCD pour attribuer des UCDs aux différentes mesures
\VizSimbad et \VizSimbadName du fichier .status pour faire des liens vers les objets Simbad
\vizPosition pour recréer les positions lorsqu'elles ne sont pas données
\VizDisplayColumns du fichier .status pour définir quelle(s) colonne(s) afficher dans Vizier
\VizPFK, \vizPK-FK-AddFKflag pour définir les clefs primaires et secondaires et donc les liens entre les tables
\vizLink et \vMore pour ajouter une colonne de liens vers d'autres catalogues
\vizMore et \vRef pour faire le liens vers une table de références
\vizExplain pour modifier la description d'une colonne dans Vizier par rapport à celle du Readme ou pour ajouter des liens
\vizMerge pour fusionner des tables dont la description est identique dans le ReadMe mais qui comprend des objets différents (équivalent de la commande "cat")
\vizPaste pour coller des tables qui ont la même liste d'objets et des données complémentaires (équivalent de la commande "paste")
\vizAddColumn pour ajouter une colonne à la table VizieR depuis un script ou un fichier
\vizAddCount pour ajouter une colonne qui compte et pointe vers le nombre d'objets liés à l'objet parent
\vizAddXcount pour faire un cross-match par position avec d'autres tables de VizieR
\vizObj pour faire des liens depuis la section "Object"
\vizConvert : conversions Shell, taborder, etc. pour transformer la table directement dans VizieR
\vizNote pour modifier ou ajouter du texte dans une note
NB: Lien sur le chiffre le 0
\vizComment : ajout d'un commentaire sur une table ou une colonne
\vizSet : modifications d'unité sur les colonnes, des formats de colonnes ou placement à la fin, etc.
\vizSQL : modifications des valeurs selon des conditions de requêtes SQL
\vizCSV : pour indiquer qu'une colonne contient une liste de valeurs (textuelles) séparées par des virgules
\vizFilter : pour préciser les filtres lorsqu'ils ne sont pas reconnus

V. Requetes sur Vizier

via la commande asu (qui sert aussi pour les graphes)

via la commande findcat (qui sert aussi pour la recherche libre sur le Web)

VI. Ajout de graphiques dans Vizier

Le lien vers le graphique dans le fichier ".status"
Le fichier .graph utilisé par le programme vGraph
Liste de catalogues contenant des graphes pour exemples
Liste de catalogues contenant des graphes qui utilisent le programme lc-mag

Liste de catalogues contenant des graphes qui utilisent le langage pseudo-SQL

I. Mise en forme d'une table dans VI

Voir en bas de la rubrique Informatique dans la section Documentalistes du TWiki, différentes URL pour l'utilisation de VI.

Et pour les débutants : Les commandes de base de VI

expand :
Avant de formater la table, on commence par faire un "expand" pour enlever toutes les tabulations.
En mode commande, on se positionne en début de fichier (1G), on tape G (pour obtenir :.,$!) puis expand : la commande est ainsi impliqué depuis la ligne courante jusqu'à la fin du fichier.

head ou tail pour extraire des passages de gros fichier :
tail -10 table.dat : donne les 10 dernières lignes de table.dat
tail -n +5 table.dat : affiche la fin du fichier table.dat à partir de la 5è ligne
head -3 table.dat : affiche les 3 premières lignes.
On peut bien évidemment rediriger ces commandes dans un fichier pour créer un extrait de table. (head -210 abund.sim > table2.sim par exemple).

acut :
Permet de reformater les colonnes d'une table :
- changer l'ordre des colonnes : :.,$!acut -c26-30 -c1-25
- Insérer du texte entre les colonnes : :1,8!acut -i'SB' -c1- (insère SB pour les lignes 1 à 8 avant les autres colonnes)
- Reformater la colonnes : :.,$!acut -c1-5r -b16 -c6-24 -c25-29\%5.2 -c30 -c31-900l (aligne les colonnes 1-5 à droite (right), insère 16 blancs (-b16), met les colonnes 25-29 au format F5.2 et aligne tout le texte restant sur la colonne 31 à gauche (left)).
- Dupliquer du texte par colonne : :.,$!acut -c1-5B -c6- (Lorsque le premier champ (colonnes 1-5) est vide, la valeur de la ligne précédente est recopiée dans le champ).
- Garder certains champs : si le séparateur de champs est un "|" acut -d'|' -f2 table2.dat > col2 permet de récupérer uniquement le 2è champs de la table.

- Substitution sur certaines colonnes : :.,$!acut -c1-98 -c99-127\s'/,/,c/g' -c128- (remplace "," par ",c" seulement sur les colonnes 99 à 127)

Commande acut sur plusieurs fichiers à la fois (voir aussi anafile -ccg ci-dessous)
Pour exécuter une commande sur plusieurs fichiers à la fois, on utilise une "boucle for".
Par exemple dans Cat. J/A+A/555/ :

#Depuis Rep AA_555_2013_files
#pour chaque fichier de spectre commancant par CO2_
#Separateur = tab
#1er champ => F10.5
#2e champ => 15.9
#mettre le resultat dans le rep "spec"
#| sed (voir commentaire suivant)
#| trim pour enlever les blancs de la fin
#Les fichiers n'existaient pas dans le rep spec - ils sont copies et modifies directement.

for f in CO2_* ; do acut -d -f1%10.5 -i' ' -f2%15.9 $f \
 | sed 's/\([-0-9\.]\+\)E\([-0-9]\+\)\./   \1.E\2/g' |trim >|  ../../spec/$f ; done

#Pour CO2_[1-7]*
#substituer tout ce qu'il y a devant E par .E et la suite.
#sed 's/\([-0-9\.]\+\)E\([-0-9]\+\)\./   \1.E\2/g' input > output

Autre exemple, dans J/ApJ/817/111, la commande : for r in igm/; do f="igm/$r/*linelist.txt" ; grep -v '#' $f | acut -i"$r" -c1- >> linelist.dat* ; done permet de concaténer les fichiers *linelist.txt de chaque sous-répertoire dans igm/ en ajoutant devant chaque table le nom du sous-répertoire qui est aussi le nom de l'objet.

Pour renommer tout un ensemble de fichiers, on peut aussi utiliser ce genre de boucle :
for f in OGLE-GD-D ; do mv $f OGLE-GD-I-D${f#OGLE-GD-D}; done*
permet de renommer les fichiers du répertoire qui commencent par "OGLE-GD-D" en OGLE-GD-I-D suivi de la suite du nom de fichier.

Pour renommer des fichiers, par exemple les extensions, on peut aussi utiliser la commande rename (voir le man). Par exemple dans un répertoire icons avec une liste de fichiers appelés nameNN.tmp, la commande rename 's/tmp$/png/' *.tmp remplace tous les .tmp par des .png

La commande tabmap permet de faire l'équivalent d'un acut pour afficher des colonnes en donnant seulement leur nom. Par exemple :

tabmap -data -ascii 'Type d1 d2 d3 I Ind' catalog.dat.gz |grep 'power'|less

L'option -data permet de n'afficher que le contenu d'une table et pas les éventuels commentaires/description.

trcol :
Permet de faire des substitutions sur des colonnes données :
:.,$!trcol -t1-3,5-7 '+/-' ' ' (subsitue la suite de caractère +/- par 3 blancs pour les colonnes 1-3 et 5-7. La substitution demande le même nombre de caractère de chaque côté.)

La commande de base est le tr, il permet aussi de faire des trucs sympas comme par exemple :
:.,$!tr ';' '\12' qui va remplacer tous les ";" par des retours à la ligne... Pratique pour faire un fichier de références...

trim :
Permet d'enlever les blancs en fin de ligne.

Ctrl V :
Ctrl + V puis déplacement avec les flèches permet de sélectionner un bloc de texte - une colonne par exemple - dans VizieR. Ensuite "y" et "p" permettent de copier-coller de manière traditionnelle.

Suppressions et substitutions dans VI :
Pour supprimer les lignes commençant par # (par exemple), on a la commande : :g/^#/d
Pour supprimer des lignes vides, de même, on peut écrire : :g/^$/d
Pour supprimer les lignes 10 à 20 : :10,20d
Pour supprimer toutes les lignes précédent la ligne courante + la ligne courante où le curseur est positionné : :1,.d
Pour supprimer la ligne courante jusqu'à la fin du fichier : :.,$d
Pour ajouter au début de ligne, pour les lignes 1 à 3, "gsc4sim " : :1,3s/^/gsc4sim
Pour ajouter un pattern en fin de ligne : :1,$s/$/ -esb -rs 2
Pour ajouter un pattern à toutes les lignes commençant par un autre pattern : :g/^a r /s/$/,1 (L'exemple ajoute ,1 à la fin de toutes les lignes commençant par "a r").
Pour substituer tous les ":" par des "|" dans tout le fichier : :%s/:/|/g
Pour remplacer les espaces par des retours-chariots : !G (qui donne le prompt :1,$!) tr ' ' '\12'
Pour supprimer les lignes blanches en double : cat -s fichier1 > result

Pour faire des substitutions par expression régulière en conservant différentes valeurs :

:%s/\(99\.00 \)\([0-9][0-9]\.[0-9][0-9]\)/>\2 /g (remplace les pattern "99.00 NN.NN" par ">NN.NN ", N étant un chiffre entre 0 et 9)

Join :
Exemple : le fichier1 contient 145 noms de Supernova dans un premier champs puis d'autres paramètres séparés par un "|". Le fichier2 contient les mêmes 145 noms de Supernova (plus d'autres) et des positions. Les champs sont également séparés par des "|".
Il faut veiller à ce que les noms des Supernova soient écrits strictement de la même façon (blancs compris), via vimdiff par exemple. Un sort sur les deux fichiers via ce champ est également nécessaire.
Ensuite la commande join -j1 1 -j2 1 -t '|' -a 1 fichier1 fichier2 > fichierdesortie devrait donner le résultat voulu à savoir :
un fichierdesortie de 145 lignes avec les 145 données du fichier1 collées avec les 145 positions correspondantes du fichier2.
Dans la commande ci-dessus, les -j1 1 spécifie que la jointure est faite pour le fichier 1 sur le champ 1 et pour le fichier 2 sur le champ 1.
L'option -t '|' spécifie que le séparateur de champs est le "|".
L'option -a 1 spécifie que l'on veut conserver toutes les lignes du fichier 1 même si elles ne matchent pas avec le fichier 2.
Une option -v[12] permettrait d'afficher les lignes non joiniables du fichier 1 ou 2, sans les lignes joignables.

Ajout d'une ligne blanche après un pattern avec sed :
sed -e '/pattern/ a\ ' fichier > fichierdesortie permet d'insérer une ligne blanche après la ligne qui contient le "pattern".
avec i à la place de a, on insère la ligne avant.
De la même manière, si l'on écrit sed -e '/pattern/ abye!' on insère une ligne "bye!" après la ligne qui contient le "pattern".
Substitution de caractères tout en conservant un pattern :
sed -e "s/''\([0-9]*\)\([\.,]\)/\1\"\2/g" note.dat > noteV2.dat transforme un 2.''05, en 2.05", par exemple.
De la même manière, sed -e "s/''\([0-9][0-9]*\)/\1\"/g" transforme 0.''04 en 0.04" ou 0.''8 en 0.8"

Ou encore, sed -e "s/\([0-9]*\)\(- \)\([0-9]*\)/\1- \3 /" table6.v00 > table6.dat permet de transformer les noms d'objets de style "ESO 536- 3" en "ESO 536- 3 " (enlève un blanc après le tiret et le rajoute après le numéro du 3è bloc).

Avec l'option -E c'est encore mieux, car plus besoin de backslascher les parenthèses: sed -E "s/([0-9]*)(- )([0-9]*)/\1- \3 /" table6.v00 > table6.dat est équivalent à la ligne précédente (ainsi que sed -E "s/([0-9]*)(-\s)([0-9]*)/\1- \3 /" table6.v00 > table6.dat).

Conversion d'un format UTF8 (par exemple) en ASCII :
La commande a2a permet très simplement de convertir un fichier aux caractères abscons (par exemple après un copier-coller d'une table HTML A&A dans un éditeur).
Pour savoir dans quel format est un fichier : *file* nom_du_fichier . Si le résultat est "UTF-8 unicode text" alors :
a2a -iu -oa nom_du_fichier > table.dat permet d'obtenir un format ASCII du fichier.
En faisant a2a -help, on note que : -i est l'option d'entrée, 'u' est le format UTF-8 ; -o est le format de sortie, 'a' = plain ascii

Conversion d'un fichier postscript ou PDF en ASCII :

ps2ascii file.pdf > file.txt convertit le fichier PDF en fichier texte.

Enlever les parties hors tables ensuite...

Conversion d'un fichier FITS (tabulaire) en ASCII :
Voir aussi la page Quoi faire avec des fichiers FITS...
fits2a -a cat_format file.fits > catalog.dat va convertir le fichier "file.fits" grâce aux données fournies dans le fichier "cat_format".
fits2a -tdisp -v file.fits > cat_format va créer un fichier de description du fichier "file.fits" (-v est l'option verbose).

La commande Detex pour convertir des fichiers HTML ou PDF en ASCII :

Detex T1.html : donne différents fichiers : le fichier T1.html.T transforme les données de la tables HTML avec des tab en separated value.

Detex table1.tex : récupère aussi les valeurs d'une table en LaTeX. Penser à enlever tous les commentaires inutiles avant de lancer la commande... Le fichier table1.tex.A obtenu en résultat de la commande correspond au fichier converti en ASCII.

Voir man Detex pour plus d'info.

La commande file pour voir de quel type est un fichier :

Par exemple:
file aj502958figset1.tar.gz
donne : "aj502958figset1.tar.gz: Zip archive data, at least v2.0 to extract"
Et permet de voir que le fichier est en fait seulement zippé et que la commande pour extraire les fichiers est unzip et non pas tar -xvzf

La commande wget permet de télécharger directement un ou plusieurs fichiers depuis une URL :

wget http://iopscience.iop.org/0067-0049/217/1/12/suppdata/apjs508341t4_mrt.txt copie le fichier apjs508341t4_mrt.txt dans le répertoire courant.

wget -r --no-parent --reject "index.html*" -nd "http://miocene.anu.edu.au/priv/S7DR1/Nuclear_Spectra/S7_Nuclear_Fluxes_csv/" copie l'ensemble des fichiers (options -r --no-parent : récursive mais sans remonter au parent) qui se trouvent dans le répertoire "S7_Nuclear_Fluxes_csv" sans les index (option --reject) et sans créer les dossiers intérmédiaires (option -nd) dans le répertoire courant.

La commande :Transpose dans VIM permet de transposer directement une table (lignes/colonnes deviennent colonnes/lignes).

L'explication du plugin ajouté pour cats est ici : https://github.com/salsifis/vim-transpose

Par exemple, avec un fichier ASCII récupéré des journaux AAS (séparateur = tabulation), en faisant :TransposeTab sur la table récupérée, les colonnes deviennent les lignes et vice-versa...


Retour au sommaire

II. Commandes de base depuis la création du Readme au passage en FTP

Pour la création du ReadMe, cf le document de François sur les standards : http://vizier.u-strasbg.fr/doc/catstd.htx
Voir le pdf notamment...
NB: un format I4 avec des "0" en début est transformé dans VizieR : les "0" disparaissent. Pour les conserver, il faut utiliser le format I04. !

newcat :
newcat J/ApJ/682/333 va créer le répertoire 333 dans le répertoire 682 du répertoire ApJ du répertoire J qui se trouve sur cats. En même temps, le ReadMe avec le titre, l'auteur et les rubriques standards est édité. Penser à faire un cdcat J/ApJ/682/333 (qui accède à l'intérieur du dossier) une fois les fichiers enregistrés avant d'y copier les tables...
newcat -a . J/A+A/544/A81 : va copier tous les fichiers du répertoires où l'on se trouve dans un nouveau répertoire : J/A+A/544/A81. Penser au cdcat pour sortir du répertoire courant et aller dans ce nouveau répertoire...

anafile :
Commandes de controle
anafile -f1 f3 table3.dat permet de mettre sous la forme standard du Readme la description de la table3 faite dans le fichier f3. Plusieurs contrôles sont effectués : bonne concordance des formats et des longueurs des colonnes, unités des erreurs identiques à celles des valeurs correspondantes, valeurs chiffrées vides bien indiquées (par le ? _ ou _?=---), etc.
anafile -f1w f3 table3.dat modifie directement le fichier f3 une fois qu'il n'y a plus de message d'erreur.
N.B. : pour les "Position angle", s'il y a des valeurs négatives il faut ajouter [-90/90]? _ devant la description du champ afin de préciser que les angles vont de -90 à 90 degrés et que le champ peut être vide.
anafile -fsr ReadMe
permet de voir les valeurs limites des différentes colonnes des tables. (Son raccourci est tout simplement : anar )
anafile -d' ' -ccg file permet d'obtenir le fichier statistique des différentes colonnes d'une table pour aligner les champs. L'option "-d" donne le séparateur.

Exemple de fichier "f4" :

1 I6 --- [CTM2010] Identification number
8 A1 --- f_[CTM2010] [b]
10 F5.1 pc ReGAL ? GALFIT effective radius

Col. de début du champ - Format de la col. - Unité du champ - Label - Description du champ ("?" indique que des valeurs nulles sont possibles)

Liste des erreurs du anafile :

table1.dat: ascii file 
++++Too long line, line #103.59 ()
: 107 x 59 : 5266 :

Dans la table1.dat, la ligne 103, col. 59 a un cc qui n'est pas décrit dans le fichier de description... => Aller voir dans la table ce qu'il fait là !

++++Non-blank <2>, line #27.117 ()

Il y a un "2" à la ligne 27, col. 117 alors que d'après la description, il devrait y avoir un blanc...

++++Value <NULL> in col#013   '?'       , line #18.81 (I2) ou 
**** line 14: label '?' also at line 13

Il manque l'unité dans la description. Du coup, le label devient le "?" qui indiquait une valeur NULL...
La première ligne indique la valeur nulle dans la table qui n'est pas indiqué malgré le "?" (puisqu'il est considéré comme label '?') - ligne 18, col. 81 format I2 et la seconde indique les lignes du fichier de description (fN) où il y a le même label...

**** line 12: starting column too small: 31 < 52

A la ligne 12 du fichier de description, on commence la colonne à 31 alors que ce chiffre devrait être >52 !

table4.dat: ascii file 
++++Non-blank <6>, line #1.7 ()
++++Bad decimal point <8> in col#010   'ReISH'   , line #1.48 (F5.1)
etc. pour les lignes 2-11
++++Bad decimal point <5> in col#010   'ReISH'   , line #12.48 (F5.1)
++++Non-blank <0>, line #13.7 ()
++++Bad decimal point <4> in col#010   'ReISH'   , line #13.48 (F5.1)
++++Non-blank <5>, line #14.7 ()
etc. pour toutes les lignes de la table !

Le format de la col. 'ReISH' n'est sans doute pas le bon ou alors la col. ne commence pas à l'endroit donné dans le fichier de description. Dans cet exemple, le format était F4.1 et non F5.1...

On peut aussi avoir le même style d'erreurs suite au "ana" que l'on fait une fois que la description est intégrée dans le ReadMe.
Par exemple :

++++Value <17.8> too large in col#019   'S/N'     , line #4.109 (F4.1): ...
++++Value <1.6> too small in col#019   'S/N'     , line #25.110 (F4.1): ...
Avec dans le ReadMe: 
109-112  F4.1  ---         S/N       [2.5/17.5]? Signal to noise ratio per {AA}
                                      around 5000{AA}

On voit, immédiatement, que 1.6 et 17.8 ne sont pas définies dans les valeurs limites de la colonne...

++++Char. forbidden   <D> in col#011   'Qual'    , line #121.68 (A1)

La col. "Qual" a été définie comme contenant les lettes A à C ("[A-C]") dans le fichier de description...

++++Value <60.0> too large in col#008   'DEs'     , line #6.25 (F4.1)

60 secondes font 1 minute... Le programme n'est pas content ! (ligne 6, col. 25)

Ne pas négliger la puissance de la commande - faire man anafile pour lister l'ensemble des options.

Par exemple, anafile -f1 flcs -head='#' light_curves/[a-z][0-9]* va vérifier le fichier de description flcs pour l'ensemble des fichiers commençant par lettre+numero du répertoire "light_curves" en ignorant les lignes d'en-tête (header) qui commencent par "#"

Note, dans la description du ReadMe, en ajoutant "(#) avant le titre des fichiers, le ana fonctionnera aussi :

Byte-by-byte Description of file (#): light_curves/*

Par contre, il faudra que le répertoire "light_curves" ne contiennent que les fichiers décrits et rien d'autre.


Commandes de mises en forme des tables
L'option -ccg est particulièrement puissante avec anafile. Elle permet de récupérer la commande qui va transformer la table d'un seul coup !
Pour cela, il faut que tous les champs soient séparés par un séparateur (tabulation, 1 blanc, 1 pipe) et que les champs vides soient indiqués (généralement par '---').
Ensuite, il n'y a plus qu'à utiliser la commande anafile -d'|' -ccg table1.dat > format.
Ici, le -d indique le séparateur (-d tout seul = tabulation - c'est le séparateur par défaut des tables ascii que l'on récupère sur les AJ, ApJ...)
Un exemple de fichier obtenu :

table1.dat: ascii file : 94 x 129 : 9765 : 12 cols:

#Column Statistics (decreasing frequency in each column):
--------------------------------------------------------------------------------
  1( 22-22 ): 1 0 2 9 6 5 3 4 7 8 - J . H Psp I S C Z [ ] M c o D...
  2(  5-5  ): M 5 9 K 4 0 A B 2 3 6 G 8 F . 1 7sp V I           (50-1)
  3( 17-17 ):sp . - + o r 0 1 2 3 6 7 8 5 4 9 ^ i               (188-2)
  4(  6-6  ): 0 . 1 2 3 7 4 9 5 6 - 8sp                         (94-14)
  5(  6-6  ): . 0 1 2 3 4 6 7 - 5 9 8sp                         (87-14)
  6(  7-7  ): . 0 1 2 5 3 8 6 4 7 - 9sp <                       (87-1)
  7( 20-20 ):sp . 1 o r - + 2 0 3 7 5 8 4 6 9 < = ; ^ g         (177-1)
  8(  7-7  ): - . 1 2 a b s 0 7 3 4 5 9 8 6                     (64-12)
  9(  6-6  ): - .sp 1 2 3 7 0 4 9 6 8 5                         (93-22)
 10( 10-10 ): e s i r o - N c n x P a d l m D bsp ( ) ?         (101-1)
 11(  9-9  ): 0 2 1 5 4 H 6 8 M 7 3 9                           (268-3)
 12( 27-27 ): r c o a t e i A Bsp n y S b 2 s ^ h u ( ) ? R d p ,...
--------------------------------------------------------------------------------

#Proposed acut arguments to align the data:
fcat table1.dat | acut -d \
          -f1%-22j -i'|'  -f2%-5j  -i'|'  -f3%-17j -i'|'  -f4%6.2j \
   -i'|'  -f5%6.3j  -i'|'  -f6%-7j  -i'|'  -f7%-20j -i'|'  -f8%-7j \
   -i'|'  -f9%6.2j  -i'|' -f10%-10j -i'|' -f11%-9j  -i'|' -f12%-27j
--------------------------------------------------------------------------------

#Proposed format for the description of the data:
0X A22    ---   Col1                                       Explain column #1
1X A5     ---   Col2                                       Explain column #2
1X A17    ---   Col3                                       Explain column #3
1X F6.2   ---   Col4   [0,4019.5]?7.4%=---                 Explain column #4
1X F6.3   ---   Col5   [0,2268.5]?7.4%=---                 Explain column #5
1X A7     ---   Col6                                       Explain column #6
1X A20    ---   Col7                                       Explain column #7
1X A7     ---   Col8                                       Explain column #8
1X F6.2   ---   Col9   [0,616.5]?33.0%=---                 Explain column #9
1X A10    ---   Col10                                      Explain column #10
1X A9     ---   Col11                                      Explain column #11
1X A27    ---   Col12                                      Explain column #12

La 1ère partie donne pour chaque colonne, la valeur que l'on peut y trouver.
La 2è partie donne la commande qui va permettre d'aligner la table d'un seul coup.
La 3è partie donne le fichier de description (f1) correspondant à la table.
Si le programme râle, il faut généralement ajouter 2 au format de la colonne à problème.
Exemple : ++++line#1: Can't align col#4 <4019.5> => modifier -f4%6.2j en -f4%8.2j
S'il y a eu des modification, on peut refaire le anafile pour avoir le bon format de descriptions en 3è partie. Sinon, on peut le récupérer directement.

Le anafile -f1 (f1 table1.dat) se chargera ensuite d'indiquer à quels endroits les champs commencent et se terminent...
Et voilà. Commande magique à tester !!
N.B. : pour "squeezer" un ensemble de plusieurs blancs en 1 seul blanc, il y a la commande trcol -s1-160 (les ensembles de plusieurs blancs sont réduits à un seul blanc pour les colonnes 1 à 160). ATTENTION : surtout ne pas faire ça s'il y a des champs vides !!

N.B. : Une nouvelle option permet d'intégrer le nom des colonnes au fichier de description si elles sont indiquées sur la première ligne de la table.
Par exemple :
Fichier d'entrée (table2) :

HIP|RA|Dec|Vmag|e_Vmag
1|000.000901|01.089010|9.2043|0.0020
2|000.004269|-19.498841|9.4017|0.0017
3|000.005021|38.859278|6.6081|0.0006 
...

Commande : anafile -d'|' -headlines=1 -ccg table2 > f2
Dernière partie du fichier f2 :

#Proposed format for the description of the data:
0X I2     ---   HIP       [1/10]                           Explain column #1
1X F10.6  ---   RA        [0.000901/0.036414]              Explain column #2
1X F10.6  ---   Dec       [-51.8935/38.8593]               Explain column #3 
...

Il peut y avoir plusieurs lignes de "headlines", ce nombre est simplement à préciser dans les options.

ATTENTION : Penser à faire un trim sur la table de départ pour qu'il y ait le même nombre de champs sur la première ligne ET dans la table !!

N.B. : Une nouvelle option vient compléter celles qui permettaient de limiter les valeurs aberrantes à 99.99 (par exemple) :

fcat bcs23hr.old | acut -d' ' -f1%-12j -i'|' -f2%9j -i'|' -f3%9.5r -i'|' -f4%9.5r\ -i'|' -f5%7.3r\<99.000\>-99.000 -i'|' -f6%7.3r\<99.000\>-99.000 >| bcs23hr.dat

équivalent à :

fcat bcs23hr.old | acut -d' ' -f1%-12j -i'|' -f2%9j -i'|' -f3%9.5r -i'|' -f4%9.5r\ -i'|' -f5%7.3r\! -i'|' -f6%7.3r\! >| bcs23hr.dat

L'option "r" sert pour arrondir une valeur, le "!" limite automatiquement les nombres mini/maxi d'une colonne sans avoir besoin de préciser la valeur limite.

VOIR anafile -help pour la liste des options...

Retour au sommaire

getobj :
getobj < table1.sim|sort|less ou acut -i'QSO' -c1-8 table1.dat|getobj|sort|less affichent en début de fichier les objets qui ne sont pas retrouvés dans Simbad.
getobj.list < table1.sim > stars.dat permet de faire un fichier stars.dat avec le nom des objets de la table1.sim et les positions obtenues dans Simbad pour ces objets.
cf. J/ApJS/182/97
getobj1 'obj1' 'obj2' > fichier permet d'obtenir la section objet du ReadMe pour les obj1 et obj2.
getobj.ned permet d'interroger NED de la même manière que getobj pour SIMBAD
getobj+c permet d'afficher en plus du résultat, le type d'objet des id retrouvés (classement par type d'objet).

Voir getobj tab tab pour la liste des options...

detex :
detex table1.html donne plusieurs fichiers dont table1.html.A qui peut être récupéré pour mettre en forme la table.

modbyte :
:3,9!modbyte +2 ajoute 2 aux numéros de colonnes donnés en début de ligne dans le Readme ; uniquement pour les lignes 3 à 9.
:.,$!modbyte -3 enlève 3 à tous les chiffres situés en début de ligne.

ana :
ana permet de vérifier si un Readme est conforme (équivalent de anafile -fs ReadMe ).

modcat :
modcat -F . permet de créer le fichier .files qui liste l'ensemble des fichiers du répertoire. Ceux qui sont précédés par un "#" (comme les fichiers d'origine) ne seront pas visibles sur le FTP.

make_public (lorsqu'on est dans le répertoire voulu) :
make_public -n . permet de tester la mise en ligne des fichiers. (Vérification des mots-clés, des unités, de l'orthographe...)
make_public . met les fichiers en ligne sur le FTP. (Il faut supprimer le fichier NOT_PUBLIC avant d'effectuer la mise en ligne).
make_public -rm . retire les fichiers du FTP.

N.B. : pour rappel, le "." est le répertoire courant.

tar :
tar cvf ori.tar apjs* : permet de regrouper et compresser tous les fichiers commençant par "apjs" du répertoire sous le dossier : "ori.tar"
tar tvf ori.tar : permet de lister tous les fichiers du répertoire ori.tar
tar -xvf ori.tar : permet d'extraire les fichiers du répertoire.
tar -xvzf foo.tar.gz : permet d'extraire les fichiers d'un répertoire en ".tar.gz"

tar -xvzf acs-aegis-45.tar.gz --wildcards "*1D.fits", par exemple, permet de ne détarrer que les fichiers qui ont l'extention 1D.fits de l'archive acs-aegis-45.tar.gz


Quant à la commande tar -xvzf acs-aegis-48.tar.gz -C acs-aegis-48-1D_sp/ --wildcards "*1D.fits" --strip-components=3 elle permet de ne détarrer que les fichiers qui ont l'extension "1D.fits" dans le répertoire acs-aegis-48-1D_sp (option -C), sans créer les 3 sous-répertoires intermédiaires qu'il y avait dans l'archive originale (option --strip-components).

Voir le man tar pour plus d'options...

Retour au sommaire

III. Intégration du catalogue dans Vizier

Voir la page sur la Préparation du Catalogue pour le récapitulatif des commandes Vizier du fichier ".status" qui permet la mise en ligne dans Vizier via la commande 2v : http://cdsarc.u-strasbg.fr/doc/viz/#catstd

Renvois vers une Section du ReadMe:
On peut mettre, dans une note, un lien qui renverra vers une section du ReadMe depuis VizieR. Pour cela, il suffit d'écrire dans le ReadMe, un texte du style "see the "History" section below" (pour renvoi sur la section History), cf. J/ApJ/541/841 (Note sur trap.dat) ou "see the "Description" section above" (pour renvoi sur la section Description), cf. J/ApJ/769/99 (Note (1)).

setUCD :
setUCD|less : affiche tous les UCD qui sont retrouvés ou non par le programme.
On peut rechercher les différents UCD déjà attribués dans les différents catalogues de Vizier sur la page : Retrieve UCDs from text
La page listant tous les UCDs disponibles est : ici

Le fichier .status est mis à jour en conséquence via la ligne \vizUCD
Le \vizUCD permet de changer un UCD ou d'en indiquer un autre si celui trouvé par défaut (ou non-trouvé) par le programme ne convient pas. On peut utiliser les troncatures avec l'"*" comme dans les autres commandes, par contre, lorsque le label comprend des "[]", il faut se rappeler que l'expression à l'intérieur devient régulière. On est donc obligé de les remplacer par un "?" (qui remplace un caractère). Par exemple dans le Cat. J/AJ/146/133 :

\vizUCD{ table4 }{ * ?M/H?* }{ =PHYS_ABUND_MISC } : la première astérisque indique que la suite est une expression régulière, "?M/H?*" remplace les labels "[M/H]1", "[M/H]2".

\vizSimbad et \vizSimbadName :
\vizSimbadName {table1} {table1.sim} permet d'afficher une colonne de liens vers les objets Simbad à partir des identificateurs de la table1.sim (à faire dès qu'1 objet n'est pas retrouvé par le getobj).
\vizSimbad{table*}{ 2dFGRS ${2dFGRS}} permet de recréer directement les noms qui serviront à faire le lien vers Simbad (ici récupération du contenu de la colonne 2dFGRS en ajoutant 2dFGRS devant).
\vizMore{table6}{Cluster}{\object{@{}}} permet de faire un lien sur les objets de la colonne "Cluster" directement vers Simbad.

\vizLink{ * }{ Simbad }{ Simbad }{ \objS{KIC @{*KIC}}{@{}}}{ ask the {\bf Simbad} data-base about the parent star} permet de modifier l'explication de la colonne SIMBAD.

Si un vizPosition à partir de la col. Simbad n'est pas nécessaire, on peut introduire des conditions dans la macro \vizSimbad.
Par exemple, dans le cat. J/ApJ/705/1099:
\vizSimbad{ table1 }{ \ifmatch{X}{@{Grade}} \objS{SLACS SDSS @{SDSS} lens}{@{}}\else \objS{SLACS SDSS @{SDSS}}{@{}}\fi }
Ou pour faire un lien sur une partie des objets seulement (Cat.J/ApJ/682/445) :
\vizSimbad{ table2 }{ \ifmatch{*.*}{@{alpha}} \objS{[CAH2008]@{***RAJ2000}@{***DEJ2000}}{@{}} \else @{} \fi }
Ou encore dans cat. J/ApJ/708/1628 :
\vizMore{ table1 }{ Star }{ \ifmatch{Cyg*}{@{Star}} \objS{Schulte @{Star@ 3}}{@{}}\else\object{@{}}\fi }

Mais dans ce dernire cas, il vaut mieux écrire pour avoir "Simbad" partout : \vizSimbad{ table1 }{ \ifmatch{Oph*}{@{Name}}\
\objS{NAME Oph J1622-2405B}{@{}}\else\objS{@{Name}}{@{}} \fi }

Dans le Cat. J/ApJ/752/58, on utilise sed : \vizSimbad{ table[12] }{\objS{\sed{s/^AP/Cl Melotte 20/}{@{Name}}}{@{}}}

Idem dans J/ApJS/210/5 avec un ifmatch en plus (substitution du début de ligne par HD et le numero si colonne commence par un numero) :

\vizSimbad{ table1 }{ \ifmatch{GL*}{@{Name}} \objS{@{Name}}{@{}} \else \objS{\sed{s/^\([1-9]\)/HD\1/}{@{Name}}}{@{}} \fi }

Parfois, on n'a pas besoin du \objS (mais il vaut mieux le laisser pour que cela marche dans tous les cas) :
Exemple, Cat. J/ApJ/711/361 :
\vizSimbad{*}{\ifmatch{147}{@{NGC}} [GVG2010] NGC 147 @{Seq} \else [GVG2010] NGC 185 @{Seq} \fi}

C'est la même chose pour le \vizNED :
Exemple dans le Cat. J/ApJ/729/87 :
\vizNED{ qsos }{ \ifmatch{QSO-*}{@{Name}}[VCV2001] J123050.0+011521 \else @{Name}\fi }
ou encore dans J/ApJ/709/377 :
\vizNED{ table3 }{ \ifmatch{N*}{@{ID}} NGC 4636 \else NGC 4636:[PLH2010] @{ID} \fi }

Retour au sommaire

\vizPosition :
Lorsque la position n'est pas donnée dans la table, récupération de la position via :

SIMBAD :
- un vizSimbad : \vizPosition{table[13] }{}{ *vizSimbad null= }{Positions from Simbad} cf. J/AJ/135/1239 Le "null= " permet d'ignorer les objets sans position (ici un objet qui n'est pas dans Simbad).
- un vizSimbadName : \vizPosition{table[47] }{}{ *vizSimbadName }{Positions from Simbad} cf. J/AJ/135/1239
- A partir d'une liste de noms Simbad : \vizPosition{ table2 }{}{*name=table2.sim Eq=J2000 null= }{ Position from Simbad, if system known in Simbad } (Cf. J/AJ/142/199)
Dans ce cas, contrairement au \vizPosition{table2}{}{ *vizSimbad null= }{Positions from Simbad} qui cherche également les positions à partir de la liste des noms Simbad qu'on a créé dans le fichier table2.sim, les noms Simbad restent affichés dans la colonne SimbadName qu'ils soient ou non dans Simbad (liens morts s'ils n'y sont pas).

Liste de positions en dur :
- un fichier de position (extension du fichier = .pos) : \vizPosition{ table2 }{}{*name=table2.pos Eq=J2000}{ Positions from Simbad or 2MASS names } cf. J/ApJ/710/1142
Pour créer un fichier de positions, on peut utiliser le fichier réalisé par la commande "vizin" :
A la fin de la préparation d'une table un message precise le fichier, par exemple:
.... Creating BCP file 'c51351334t2.bcp' (180 rows) 180.

    Histogram of Coordinate Precision (/home/cats/in/fo/c51351334t2.pos): 
         -1      0      1      2      3      4      5      6      7 
          8      0      0      0      0      0    172      0      0
    (NULL positions are NOT acceptable)
 

Il suffit alors de faire cp /home/cats/in/fo/c51351334t2.pos . dans le répertoire courant pour récupérer le fichier c51351334t2.pos et le transformer en table2.pos
ATTENTION : Il ne faut pas répondre "Y" à la question "====Clean [Y]?" dans ce cas... On doit récupérer ce fichier avant !!

Nom de l'objet dans la table :
- le nom de l'objet : \vizPosition{table1}{}{ name=SDSS fmt=hhmmss.ss+ddmmss.s Eq=J2000}{Position from SDSS name} cf. J/AJ/135/928
Si le format est HHMMSSss+DDMMSSs, il faut remplacer les "ss" et "s" par "ff" et "f". Et tout mettre en minuscules. Cf. J/AJ/131/3016
Ou en encore dans Cat. J/ApJ/762/88 : \vizPosition{ table5 }{}{name=2MASS fmt=Jhhmmssff+ddmmssf Eq=J2000}{ Positions from 2MASS names }
Autrement le format HHMMSS.SS+DDMMSS.S peut être écrit tout en minuscules ou bien tout en majuscules.
Autre exemple avec coordonnées galactiques : \vizPosition{table2}{}{ name=MAGPIS fmt=Gdd.ddddd+d.dddd Eq=G}{Positions derived from name} cf. J/AJ/131/2525

Autre catalogue Vizier :
- un autre catalogue : \vizPosition{table1}{}{source=J/AcA/48/147/smc_sc SC=7 SMC-SC=@{OGLE} Eq=J2000 null= }{Position from Udalski et al., J/AcA/48/147} cf. J/AJ/135/1350
Le "null= " permet d'accepter les valeurs vides.

- A partir du catalogue KIC : script spécial fait par François le .getKIC qui se trouve par exemple dans J/ApJ/829/23 : \vizPosition{ * }{}{*name=.getKIC Eq=J2000}{ Positions of KIC stars from KIC catalog (V/133) }

Offsets :
- à partir de positions en X Y (avec centre + échelle du pixel):
\vizPosition{ table1 }{}{c=17:45:40.041-29:00:28.12 scale=1 x=X y=Y precoo=7 Eq=J2000}{ Position, computed from {\bf Sgr A*} position (17:45:40.041-29:00:28.12) with {\bf X} and {\bf Y} offsets} Cf. J/ApJ/697/1741
ou \vizPosition{ table1 }{}{c=00:58:57.96-68:54:55.7 scale=0.1665arcsec/pix x=Xpix y=Ypix \
precoo=7 Eq=J2000}{ Position, computed from {\bf ESO 51-SC09} position \
(00:58:57.96-68:54:55.7) with {\bf X} and {\bf Y} offsets and scale=0.1665"/pixel}

Préciser l'unité dans scale= évite les erreurs !
- à partir d'offsets avec une liste de centres venant d'une autre table : exemple Cat. J/ApJ/698/324
\vizPosition{ table6 }{}{*c=table1:IRDC x=offRA y=offDE Eq=J2000 }{Position computed from IRDC in table1 and offsets}
- à partir d'offsets, en comparant les magnitudes avec les magnitudes d'un catalogue de référence (2MASS, UCAC3, ou un autre catalogue ayant des objets en commun) - ceci pour des étoiles brillantes (au-delà de 16 mag, ce n'est plus possible) :
Cat. J/MNRAS/408/1147 :
\vizPosition{ table7 }{}{ c=132.40829-44.37140 precoo=6 Eq=J2000 x=Xpos y=Ypos error=0.10arcsec x0=1333.94 y0=1176.52 CD=-1.944149e-06,-1.978359e-09,3.910644e-09,-1.94433e-06}{ Position computed from a comparison with UCAC4 (I/322) ({sigma}=0.10'')}
Les données à mettre dans la 3è accolade sont obtenues à l'aide du programme xypos : xypos UCAC4 c=132.421-44.3667 scale=0.4 table7.dat , "c" est le centre donné dans l'article, "scale" est la taille du pixel (donnée dans l'article également).
- A partir d'une liste d'étoiles de référence, on peut utiliser la commande (cf. Cat. J/A+A/371/908) - méthode moins sûre qu'avec un catalogue de référence... :

\vizPosition{ table1 }{}{x=Xpos y=Ypos Eq=J2000 ref*=:
  17 19 00.5 -38 48 51  =  854.5   487.0
  259.77520  -38.77929  =  708.8   768.3
 %17 19 05.5 -38 48 43  =  722.5   489.2
  17 19 06.0 -38 46 46  =  708.8   768.3
  17 18 52.9 -38 50 02  = 1055.5   326.6
  17 19 04.4 -38 49 06  =  752.4   455.7
  17 18 42.8 -38 49 51  = 1318.8   358.5
  17 18 47.6 -38 49 59  = 1192.4   340.6
  17 19 05.7 -38 49 03  =  717.3   461.5
  17 18 53.3 -38 51 14  = 1043.9   170.3
  17 19 00.7 -38 49 24  =  848.0   415.5
  17 18 44.9 -38 50 01  = 1264.4   335.7
 %17 19 01.0 -38 49 03  =  840.9   469.6
  17 19 01.6 -38 49 11  =  824.6   443.4
  17 19 04.7 -38 49 51  =  745.1   354.5
  17 19 05.6 -38 49 28  =  721.5   406.6
}{Positions computed from (Xpos,Ypos) by VizieR}

A partir d'un script :

J/ApJ/707/1779 - position Radio mais position IR si nulle en Radio => script awk et

\vizPosition{ table1 }{}{*name=alterpos.awk Eq=J2000}\
{Positions from Radio counterpart if available or from IR counterpart }

\VizDisplayColumns :
\VizDisplayColumns {*} {-* e_*} affiche toutes les colonnes sauf celles dont le label commencent par e_ (les erreurs), pour toutes les tables.
Le "-" indique d'afficher tout sauf ce qui suit. L'astérisque suivant le "-" indique que les labels listés ensuite peuvent comporter des troncatures (via "*"). Une simple "*" indique que tout doit être affiché.
On peut également spécifier toutes les colonnes à afficher en les énumérant (seule la colonne de position s'affiche automatiquement même si elle n'est pas cité dans ce cas).

Retour au sommaire

\VizPFK, \vizPK et \vizFK :
Les liens logiques entre les tables d'un même catalogue sont définis par les clefs primaires et secondaires. Si la table 2 est un sous-ensemble de la table 3. Alors la table 3 qui contient le plus grand nombre d'objet est la clef primaire. On retrouve une partie de ses objets en table 2 (la clef secondaire).
Par exemple, pour le cat. J/AJ/141/21, on a
\vizPK{ table3 }{ SCR }
\vizFK{ table2 }{ SCR }
\vizAddFKflag{ table3 }{ n_SCR }{n}{}{ -SCR }{\use{vPop}{\bf n} indicates a new discovery (table2)}

Le lien depuis la table 2 est automatique vers la table 3. Par contre, si on veut un lien depuis la table principale, il faut ajouter une colonne (le lien ne se fait que si l'objet se trouvera dans la table secondaire) via AddFKflag. Ici, une col. "n_SCR" est ajoutée avant la Colonne SCR. De plus, l'utilisation du \use{vPop} fait que l'affichage de la ligne concernant l'objet se fait dans une fenêtre en pop-up...
Dans la ref. J/AJ/141/166, l'utilisation du \use{vNote} permet l'affichage dans une nouvelle fenêtre mais sous la forme des notes.
\vizAddFKflag{ vars eb flares }{ n_HAT }{X}{}{ +HAT }{\use{vNote} {\bf X} indicates an X-ray source, {\bf x} cross-match}
\vizPK{ vars eb flares }{ HAT }
\vizFK{ xray cross }{ HAT }

X ou x grace à la commande \vizSQL :
\vizSQL{ vars eb flares }{ set n_HAT='x' where n_HAT='X' and HAT not in (select HAT from @{.xray})}
Autre exemple de PK, FK, AddFKFlag + SQL dans le cat. J/ApJ/736/133 :
\vizPK{ table1 }{ SSTGC }
\vizAddFKflag{ table1 }{ Y }{Y}{}{ +SSTGC }{\ucd{DATA_LINK} \
{\bf Y} indicates YSOs and possible YSOs, \
{\bf s} indicates known stars}
\vizFKlink{ table[234567] }{ SSTGC }{ IRS sample data (table 1)}
\vizSQL{ table1 }{ set @{:Y}='s' where SSTGC in (425399, 564417, 619964, 660708, 696367) }

Statut de "known stars" pour 5 objets indiqué.
Un autre moyen de faire le lien depuis la table PK est d'utiliser le \vizPKlink qui permet, en plus, d'ajouter une explication à la colonne sur le lien :
Par exemple, Cat. J/ApJ/698/324 :
\vizPKlink{ table1 }{ IRDC }{ YSOs and clumps found in this cloud }
\vizFK{ table[26] }{ IRDC }

Retour au sommaire

* \vizLink :
Exemple dans J/ApJ/736/L25 :
\vizLink{ * }{ B11 }{B11}{\vMore{-source=J/ApJ/728/117/tablea1,J/ApJ/736/19/table1,J/ApJ/736/19/table2,J/ApJ/736/19/table4\
\&KOI=~@{KOI@.1}}{@{}}}{Display the data from Borucki et al. 2011, Cat. J/ApJ/728/117 and J/ApJ/736/19}

Lien sur la première partie du KOI.
Lien vers une page extérieure, exemple dans J/ApJ/731/17 :
\vizLink{ table2 }{ Stripe82 }{Stripe82}{ \aW{Stripe82_800x600}{http://cas.sdss.org/stripe82/en/tools/explore/obj.asp?ra=@{_RA}&dec=@{_DE}}{@{}} }
{Display the SDSS Stripe82 online data for this object}

Exemple dans J/ApJS/153/523 :
- lien avec condition ("ifmatch") + lien sur 2 tables d'un même catalogue (",") :

\vizLink{ table1 }{ Lee+99 }{ Lee+99 }{ \
  \ifmatch{1}{@{Source}} \
  \vMore{-source=J/ApJ/526/788/table2,table1\&Name=@{[LM99]}}{@{}} \
  \else{@{}}\fi } \
  {Data from starless cores survey, Lee et al., 1999, Cat. J/ApJS/526/788 }

Autre exemple dans J/ApJ/679/86 :
- lien avec conditions pour deux cas particuliers avec une valeur précise de Plate-MJD-Fiber (pour le même SDSS) alors que les autres SDSS sont recherchés par positions.

\vizLink{ table1 }{ Sloan }{Sloan}{
      \ifmatch{a}@{f_SDSS} \
     \glutag{SDSS.sp3,w 0267 51608 405|@{}} \
       \elsif{b}@{f_SDSS} \
     \glutag{SDSS.sp3,w 0480 51989 120|@{}} \
       \else \glutag{SDSS.pos,w @{@posglu}|@{}} \fi}
    {Display the SDSS data for this AGN}

- Lien avec deux conditions (Cat. J/ApJ/719/550) :

 \vizLink{ table1 }{2M}{2M}{\ifmatch{*.*}{@{Ksmag}}\ifnum{@{Ksmag}}<15 \vMore{-source=2246\&-c=@{@poseq},rs=3}{@{}}\else{@{}}\fi\else{@{}}\fi}{Display the 2MASS point sources catalog if Ksmag<15 (Cat. II/246)}

- Lien vers un catalogue en interrogeant 2 positions (coo) différentes via la syntaxe "<<". Cf. Cat. J/AJ/144/102 :

\vizLink{ table1 }{2M}{2M}{\vMore{-source=2246\&-c.rs=5\&-out.form=H,h\&\
   -out.add=_q\&-c=<<;@{@pos};@{RA2deg}@{DE2deg}}{@{}}}\
  {Display the 2MASS data (Cutri et al. 2003, Cat. II/246)}

Le -out.from=H,h permet d'afficher le résultat de l'interrogation en HTML dans une seule et même table.
Le -out.add=_q permet d'afficher une colonne supplémentaire avec "1" et "2" (~recno d'interrogation).


- Lorsque le catalogue contient des sources radio avec des flux, on peut faire un lien vers SPECFIND. Par exemple, Cat. J/AJ/142/35 :

\vizLink{ table10 }{SED}{SED}{\ifmatch{*[1-9]*}{@{Flux}}\
   \SPECFIND{-c=@{@pos},rs=30}{nu=22GHz\&S=@{Flux}}{@{}}\
   \else{@{}}\fi}\
   {Plot the spectrum with SPECFIND (Vollmer et al. 2009, Cat. VIII/85)}

Ici, la valeur par défaut de "nu" est 22GHz et celles de "S" prennent les valeurs de la col. Flux.


- Lien pour afficher certaines colonnes d'une autre table (généralement pour equivalent widths).
Exemple du Cat. J/ApJ/595/1154 :

\vizLink{ table4 }{}{ EWs }{\ifmatch{*,@{*HIP},*}{,434,484,2463,3985,4993,5445,5458,17649,43228,58514,62235,65852,74491,88977,91182,94931,96248,106095,107337,}\
  \vMore{-source=@{@cat}/table3\&-out.max=999\&-out=Ion,Wave,VESTA,H@{*HIP}}{@{}}\else{@{}}\fi}{EWs: Dislay the Equivalent Width from table3}


Ou exemple du Cat. J/A+A/390/235 :

\vizLink{ stars }{}{ EqWid }{ \vMore{-source=@{@cat}/tablea1\&-out=\htarg{#1,#2,#@{*recno}+2}}{@{}}}{EqWid: Display the Equivalent Width for that star }

Ou exemple du Cat. J/ApJ/798/110 via un recno tout bête :

\vizLink{ table3 }{EWs}{EWs}{ \vMore{-source=@{@cat}/table2\&-out=Ion,lambda,\
  ExPot,log(gf),EW@{*recno},f_EW@{*recno},logAbd@{*recno},sigma@{*recno}\
  \&-out.max=999\&EW@{*recno}=!=}{@{}} }\
  {Display the equivalent width measurements for this star}

Le "=!=" permet de n'afficher que les lignes où une valeur d'equivalent width est présente.

-Lien pour afficher tous les catalogues dans VizieR autour d'une position et dans un rayon donné.

Exemple avec le J/AJ/145/134 :

\vizLink{ table3 }{M}{M}{ \vMore{-c=@{@pos}\&-c.rs=1.5}{@{}}}
{ Display what exists in VizieR at this position (within 1.5)}

Retour au sommaire

* \vizMore :

Exemple simple de lien sur un autre catalogue par coo, avec affichage de la séparation d'avec le centre recherché (J/ApJS/223/20) :

\vizMore{ * }{ objID }{ \yMore{Display the SDSS-DR9 photometric catalog (V/139) within 0.5"}\
{-source=V/139/sdss9\&mode=1\&-c=@{@poseq},rs=0.5&-out.add=_r}{@{}} }

L'option -out.add=_r permet d'afficher la séparation entre la position de recherche et la position dans le catalogue.

Exemple dans J/AJ/135/1225 :
- Lien vers le fichier refs.dat file à partir d'une colonne "Ref" ou plusieurs ref sont séparées par une "," :

\vizMore{table[24]}{Ref}{ \vRef{-source=@{@cat}/refs\&Ref=,@{Ref}}{@{}} }

Autre exemple dans B/wd, lien sur les ref entre parenthèses dans le texte de la table notes :

\vizMore{ notes }{ Notes }{ \sed{s!(\([0-9]*[A-Z]*\))!(\\vRef{\
-source=@{@cat}/refs\&RefCode=\1}{\1})!g}{@{}} }


- Lien vers 2 catalogues selon le numero et XID-1000 (cf. J/ApJS/203/15) :

 \vizMore{ table5 }{ XID }{ \ifnum{@{XID}}<1000 \yMore{Link to Lehmer+}{-source=J/ApJS/161/21/ecdfs\&[LBA2005]=\sed{s/^0*//}@{XID@2-}}{@{}}\ 
   \else \yMore{Link to Xue+}{-source=J/ApJS/195/10/catalog\&ID=@{XID}}{@{}} \fi } 

- Un exemple de lien qui s'ouvre dans une nouvelle fenêtre pour afficher les Index i ET j avec les configurations atomiques dans le cas de "collision strengths" (Cat. J/ApJ/738/5) :

\vizMore{ table3 }{ i j }{\vPop{-source=@{@cat}/table1\&Index=@{*i},@{*j}}{@{}}}

Plus simplement la commande \vizMore{ table2.dat }{ Ion }{ \Ion{@{}}} permet d'afficher le numéro ou l'ion correspondant au numéro. (Voir CR Reunion VizieR du 25/03/2014

Dans l'exemple de J/ApJS/203/15, @{XID@2-} indique de prendre la valeur de la colonne XID à partir du 2è caractère jusqu'à la fin. @{XID@.2} aurait signifié de prendre la 2è partie de la col. XID à partir du séparateur ".".
Lorsqu'il y a des parenthèses ou des crochets, l'écriture est légèrement différente puisqu'il faut toujours ouvrir et fermer ses caractères. On aurait donc : @{XID@(1)} pour indiquer que l'on prend ce qu'il y a entre la première série de parenthèses.
Par exemple, dans le catalogue J/ApJS/207/36, on aurait pu avoir la commande :
\vizMore{ table1 }{ CName }{ \ifmatch{*[(]*[)]*}{@{CName}}\
\vMore{-source=J/PASJ/63/S677/table1\&Seq=@{CName@(1)}}{@{}}\else{@{}}\fi}

pour faire un lien sur les chiffres entre parenthèses depuis la col. CName. Dans ce cas, le Seq correspond bien au numéro à l'intérieur de la parenthèse mais le lien se fait sur tout le contenu de la colonne (en l'occurrence, le 1er nom et la parenthèse)...
Pour faire le lien uniquement sur le chiffre, on écrit donc :
\vizMore{ table1 }{ CName }{ \sed{s!(\([0-9]*\))!(\\vMore{-source=J/PASJ/63/S677/table1\&Seq=\1}{\1})!g}{@{}} }
Voir aussi l'exemple du catalogue J/ApJS/158/193 qui fait des liens sur les notes (chiffres entre parenthèses) et la Note 4 du \vizMore du document de François

Exemple du Cat. J/ApJ/685/1005 pour faire un lien vers Simbad avec plusieurs conditions (fonctionne dans le \vizSimbad aussi) :

\vizMore{ table3 }{ Reg }{ \ifmatch{H*}{@{Reg}}\object{NAME HH 80-81} \elsifmatch{G*}{@{Reg}}\object{GAL 192.16-03.82} \elsifmatch{W*}{@{Reg}}\object{[HRB81] W75N(Bb)}\else\object{@{}}\fi}

Quand on a plusieurs colonnes sur lesquelles portent une condition, on peut utiliser @col pour rappeler l'ensemble des colonnes. Par exemple Cat. J/ApJ/765/87 :

\vizMore{ table1 }{ * [FSH]cts [FSH]CR }{ \ifnum{@{e_@col}}>0{@{}} \else{\fg{grey50}@{}}\fi}

- Dans le cas où l'on a des flags binaires qui s'additionnent pour former différentes explications, cf. Cat. J/ApJ/729/87, la commande \showFlag permet d'afficher une table de note avec la combinaison des explications.
Extrait du .status :

\vizExplain{ table[12] }{Flag}{\
  \pFile{_640x550}{@{@cat}/flags.htx}{Binary flag}; \
  see section 3 for details}
\vizMore{ table[12] }{ Flag }{ \showFlag{@{@cat}/flags}{@{}}}

Penser à créer le fichier "flags.htx"... Attention, celui-ci NE DOIT PAS comporter de " " dans les explications... Les remplacer par des ' ' (sinon le lien s'affiche mais ne donne rien)...

- Autre exemple de flags binaires dans le catalogue J/ApJ/808/16. Attention, l'explication n'indiquait que le "binary digit", soit le chiffre "n" qui sert d'exposant derrière le 2 (dans 2^n^). Il y a deux fichiers de flags.htx dans ce catalogue pour les 2 colonnes de flags différentes.

Le .status:

\vizExplain{ table1 }{TFlag}{+ \
\pFile{_640x300}{@{@cat}/flags_t2.htx}{Binary flag}; \
see text for more explanations}
\vizMore{ table1 }{ TFlag }{ \showFlag{@{@cat}/flags_t2}{@{}} }
\vizExplain{ table1 }{AFlag}{+ \
\pFile{_640x300}{@{@cat}/flags.htx}{Binary flag}; \
see text for more explanations}
\vizMore{ table1 }{ AFlag }{ \showFlag{@{@cat}/flags}{@{}} }

Exemple de fichier flags.htx :

(...)

\begin{flags}{flags}{.}{width=640,height=400,toolbar=no,scrollbars=yes,resizable=yes}
\flag{1}{WARNING on effective temperature (see PARAMFLAG[0] for details) (TEFF_WARN)}
\flag{2}{WARNING on log g (see PARAMFLAG[1] for details) (LOGG_WARN)}
\flag{4}{WARNING on vmicro (see PARAMFLAG[2] for details) (VMICRO_WARN)}
\flag{8}{WARNING on metals (see PARAMFLAG[3] for details) (METALS_WARN)}
\flag{16}{WARNING on [alpha/Fe] (see PARAMFLAG[4] for details) (ALPHAFE_WARN)}
\flag{32}{WARNING on [C/Fe] (see PARAMFLAG[5] for details) (CFE_WARN)}
\flag{64}{WARNING on [N/Fe] (see PARAMFLAG[6] for details) (NFE_WARN)}
(...)

\flag{268435456}{}
\flag{536870912}{}
\flag{1073741824}{}
\flag{2147483648}{(NO_ASPCAP_RESULT)}
\end{flags}

Penser à bien laisser les flags vides pour avoir le bon code. Le point en 2e parametre du begin permet de ne pas afficher tous les flags à chaque fois mais seulement ceux qui sont actifs.

\vizExplain :
Exemple dans J/ApJ/679/140, où l'on veut remplacer la description du nom dans Vizier par une explication pour chaque table alors que celle du Readme est fusionnée (SDSS or COSMOS name) :

\vizExplain{ table1 }{ Name }{ SDSS name}
\vizExplain{ table3 }{ Name }{ COSMOS name}

Ici le blanc permet de remplacer complètement le commentaire. Pour conserver l'explication du Readme et ajouter un commentaire, il faudrait mettre un "+" à la place du blanc.

2 autres exemples dans J/ApJS/188/473 :
\vizExplain{ table4 }{Vclass}{+ (\vFile{B/gcvs/vartype.txt}{classification})} Permet d'afficher dans la fenêtre de la colonne Vclass, un hyperlien sur "classification" qui ouvre dans une nouvelle fenêtre la page vartype.txt du B/gcvs.

Pour afficher un lien dans le titre de la table directement :

\vizExplain{ table4 }{ }{+ (See also online supplementary data at \
http://cxc.harvard.edu/vguide/index.php?link=data_table.php\&navlink=variables\&sublink=all\&T=NQ)} 

Pour afficher une image dans un titre de table avec un lien html (Cat. J/ApJ/745/31) :

\vizExplain{ table2 }{}{+ \aW{_640x768}{http://iopscience.iop.org\
  /0004-637X/745/1/31/fulltext/apj412594f2.html}{(link to Fig.2)}}

On peut utiliser le \vizExplain pour remplacer le Short Title d'un catalogue. Il suffit de laisser vide le premier label. Attention, dans ce cas, le titre est remplacé qu'il y ait un "+" ou non... (si on met "+", il y a un "+" dans le titre)... \vizExplain{}{}{Nouveau titre}. Pour ajouter un commentaire au Short Title, il faut utiliser la commande \vizComment{}{}{ajout}.

On peut également utiliser le \vizExplain pour indiquer les noms originaux des colonnes dans VizieR.
Le nom original s'écrit dans le ReadMe, entre parenthèses à la fin de l'explication, et juste avant le numéro de la note s'il y en a une.
Dans le .status, on utilise la commande suivante pour que les noms originaux apparaissent en vert dans VizieR :

\vizExplain{ table[156] }{}{+ (\originalcolumnnames) }

Attention, dans une même table, on ne peut pas utiliser un nom de label (soit dans le ReadMe, soit via un AddCount, ...etc) identique à un nom de colonne original (si ceux-ci ont été ajoutés bien sûr).
Par ailleurs, l'utilisation des noms de colonnes originaux nécessite une précaution lors d'un vizPK/vizFK ou d'un vizSQL pour créer une colonne de liens. En effet, si dans une table on inscrit le nom original pour le label servant de lien, alors il faut aussi l'indiquer dans les tables liées.
Par exemple, dans le catalogue J/AJ/150/175 (en local), les noms originaux ont été mis dans la Table 1. Initialement, ils n'étaient pas marqués dans les Tables 5 et 6. Mais pour que les colonnes "CO" (qui utilise un vizPK) et "L" (qui utilise un vizSQL) de la Table 1 fonctionnent, il faut noter le nom original aussi dans les Tables 5 et 6 (au moins pour le label "SSTYSV" puisque c'est celui qui réalise le lien).

N.B. : un nom de colonne original ne peut pas comporter de caractères spéciaux et ne doit pas commencer par un chiffre. Le 2v donne une erreur bizarre dans ces cas là...

On peut aussi ajouter une contrainte par défaut à un catalogue. Par exemple dans J/ApJ/842/6, on affiche par défaut les lignes où Ng>0 pour les tables 4 et 5 et pmRA n'est pas vide pour la table 3 :

\vizExplain{ table[45] }{Ng}{+ \vizQual{!=0} }
\vizExplain{ table3 }{pmRA}{+ \vizQual{!=} }

\vizMerge :
Fusion "verticale" de tables ayant la même description mais des objets différents.
Exemple : J/AJ/131/49 :
\vizMerge{table[12]}{data}{SDSS QSOs also observed by HST (table1) or not (table2)} Exécute le collage de la table1 sous la table2 (contenu expliqué dans la dernière acolade) et renomme cette nouvelle table "data".
Il faut pouvoir distinguer les deux tables dans Vizier, on ajoute donc une colonne "n_SDSSJ" (après la colonne "SDSSJ") avec les valeurs 1 ou 2 selon le numéro de la table :
\vizAddColumn{table*}{n_SDSSJ}{,1,2}{}{-SDSSJ}{\ucd{CODE_MISC} {\bf 1} for a QSO also observed by HST (table1), {\bf 2} for a QSO only observed by SDSS (table2)}
Pour l'indication des valeurs à mettre dans la nouvelle colonne, il est obligatoire de commencer par la virgule. La séparation des valeurs se faire par la virgule. Ne pas laisser de "blanc" entre la virgule et les valeurs.

* \vizPaste :
Fusion "horizontale" de tables donnant des données différentes (complémentaires) pour les mêmes objets (même ordre, même nombre, même noms).
Exemple : J/ApJS/190/1
\vizPaste{ table1 table17 }{ sample }{ Sample of 454 solar-type stars (table 1 and 17 of the paper) } Paste de la table1 et 17 mais la table 17 étant triée sur la colonne HD alors que la table 1 est triée sur la colonne HIP, on fait un tri de la table17 pour la remettre dans le même ordre que la table 1 dans Vizier (sur le champ commençant à la colonne 8) :
\vizConvert{ table17 }{ sort -t\; -k 1.8 }
Autre exemple : J/ApJ/679/720
\vizPaste{ table[123] }{ phot }{ IRAC and MIPS photometry of Hyades stars (tables 1 to 3 of the paper) } Ici, le problème est que la table 2 comprends 25 objets en moins. Il faut ajouter des lignes blanches à la table pour pouvoir faire le Paste mais cela n'est pas très beau pour la table qui reste séparée dans le FTP...
On peut utiliser : \vizConvert{ table2 }{ gawk -f table2.awk} avec le programme table2.awk suivant pour créer la table à la volée :

#
BEGIN {
    while (("fcat table2.dat"  | getline)>0) {
        id = substr($0,1,9);
        rec[id] = $0
    }
    n=0;
    while (("fcat table1.dat" | getline)>0) {
        id = substr($0,1,9);
        if (id in rec) print rec[id]
        else print substr($0,1,27);
    }
}

Retour au sommaire

vizAddColumn :
Depuis un fichier ayant le meme nombre de lignes que la table :
\vizAddColumn{ table1 }{ SDSS }{.sdss}{}{ -z }{\ucd{ID_MAIN} IAU SDSS-DR7 designation (JHHMMSS.ss+DDMMSS.s) } cf. J/ApJ/705/L76 (fichier = "sdss")

Si la colonne ajoutée contient uniquement des chiffres intégraux, il faut le spécifier dans le AddColumn, par exemple (J/ApJ/748/134): \vizAddColumn{ table1 }{ Trig }{.trig}{dbtype=i2 fmt=5d}{ -Name }\
{\ucd{ID_NUMBER} Trigger number from the 4th BATSE catalog (Cat. IX/20)}


Depuis un script :
Par exemple Cat. J/MNRAS/418/2054: calcul des redshifts des galaxies à partir des redshifts des groupes et des recession velocities des galaxies :
\vizAddColumn{ tableb }{ z }{.compute_z}{dbtype=i2 dbunit=10-4 type=E fmt=6.4f}{ RV }{\ucd{REDSHIFT_HC}Redshift, computed from the redshift of the group and the recession velocity in table1 (z=z_G_+V/[c(1+z_G)])}
Avec le fichier "compute_z" :

#!/bin/sh
################################################
# Compute z for galaxies from
#       z = z0 + V/(c*(1+z0))
################################################

# Input: table1 ; empty line; table2
( tabmap -data -tsv "Name z"  table1.dat; echo ""; \
  tabmap -data -tsv "Name RV" tableb.dat ) | gawk '\
  BEGIN{ FS="\t"; c=299792.458} # Speed of light
  /^$/{ p++; next }             # blank line p 0->1
  { if(p<1) { z0[$1]=$2; next } # keep redshift of group
    z = z0[$1]+($2/(c*(1+z0[$1]))) ;
    #printf "#%s z0=%s => z=%g\n", $0, z0[$1], z > "/dev/stderr";
    printf "%.4f\n", z }'

  

vizAddCount :
Par exemple, pour le Cat. J/ApJ/698/324, depuis la table de nuages moléculaires, on affiche le nombre d'YSOs qui sont enfants du nuage :
\vizAddCount{ table1 }{ N2 }{table2 IRDC=@{IRDC}}{}{+/-col}{\ucd{NUMBER} Number of YSOs found in this dark cloud (table2)}

vizAddXcount :
Donne le nombre d'objet(s) trouvé(s) dans le rayon de recherche (rs en arcsec), dans une col. supplémentaire (après la col. "re" dans l'exemple ci-dessous) et fait un lien vers ces objets s'il y en a >0.
Exemple dans J/ApJ/705/1533 :
\vizAddXcount{ table2 }{Cat}{II/261/sv,J/AJ/132/1729/bvi,J/ApJS/172/615/table9 rs=3.0}{}{ +re }{Number of cross-matches within 3.0" with GOODS (Cat. II/261), HUDF (Cat. J/AJ/132/1729) and GEMS (Cat. J/ApJS/172/615)}
Penser à bien préciser le nom de la table s'il y en a plusieurs dans un catalogue...

vizObj :
Pour afficher les mesures de la table correspondants aux objets de la section "object" :
\vizObj{ (\vMore{-source=@{@cat}\&-out.max=999\&HR=\sed{s/HR //}{@{@=1}}}{Interferometric measurements}) } Cf. J/ApJ/683/424
-out.max : limite maximum du nombre de lignes à afficher en résultat
Ici, substitution du "HR " par rien pour récupérer les numéros correspondants dans la table.
Autre exemple plus simple : \vizObj{ (\vMore{-source=@{@cat}}{X-ray and radio observations}) } Cf. J/ApJ/716/L109
Autre exemple : J/ApJ/737/L32
\vizObj{ (\vMore{-source=@{@cat}\&-out=Ion,lambda,ExPot,log(gf),EWS,logNS,EW@{@3},logN@{@3}\&-out.max=999}{abundances})}
Affiche les colonnes sélectionnées pour les différents objets.

Retour au sommaire

vizConvert :
Pour trier deux tables ayant à peu près le même nombre d'objets et, surtout, les mêmes objets, en vue de faire un paste :
\vizConvert{ table10 }{ taborder -c Name table6 } Cf/ J/ApJ/710/1142 :
-c spécifie sur quelle colonne trier la table. table6 est la master_table : ordre de T6 suivi (s'il y a un nombre de ligne différent c'est la plus grosse table).
Attention, dans le cas où une table à moins de lignes, comme on rajoute des valeurs vides, il faut penser à ajouter un flag VO_ISNULL pour autoriser les valeurs nulles !!
Par exemple : \vizSet{ table2 }{ X/2M Off2M Jmag Hmag Kmag }{ flags|=VO_ISNULL } dans J/ApJ/715/671
N.B. : Ne pas mettre une seule "*" pour signifier "toutes les colonnes". L'étoile appelle une troncature sur les colonnes précisées ensuite. Si on ne met rien, le programme ne comprend pas. Exemple pour J/ApJ/746/101 : \vizSet{ table12 }{ * Mass Age }{ flags|=VO_ISNULL } et non pas \vizSet{ table12 }{ * }{ flags|=VO_ISNULL } ou les null values ne sont pas prises en compte.

Lorsque la dernière colonne d'une table à un nombre de caractères qui dépasse la limite = 255, on peut utiliser la commande *reformat comme dans le Cat. J/AJ/142/170:
\vizConvert{ table2 }{ reformat -c -f -I16 -w255 }
Ici, il y a 16 caractères à recopier avant la 2è ligne de la col. "Comm" qui est tronquée au niveau d'un blanc avant le 255e caractère (-w donne la largeur de la col.). C'est fait automatiquement désormais.

Permet de faire des *merge+paste en collant 2 tables :
\vizConvert{ table3 }{ fcat table3.dat table4.dat } ajoute la table4 à la table3. Idem pour table6 à la suite de la table5. On ignore ensuite les tables 4 et 6 : \vizIgnoreTables{ table[46] } % Included via vizConvert
Cf. exemple dans J/ApJ/698/1989 : table4 mise à la suite de table3 (=merge), table6 mise à la suite de table5 puis \vizPaste sur table3 et table5.
\vizPaste{ table[35] }{ ngc2451 }{ UBVRIJHK {\em (tables 3-4)} and Spitzer {\em (tables 5-6)} photometry of members of NGC 2451A+B}

On peut faire les transformations habituelles avec trcol, acut, sort, substitutions, etc. :
Par exemple, \vizConvert{ table[23] }{ trcol -t69,82 '=' ' ' } dans J/ApJ/591/640
ou encore : \vizConvert{ table3 }{ acut -c1-81 -c82-99's/ //g' | trim } dans J/ApJ/611/323
ou avec sed : \vizConvert{ table2 }{ sed 's/ 99[.]00/ /g' } dans J/ApJ/727/14

Et apparemment, on peut même faire un petit script en awk !!
Cf. J/ApJ/533/744 :
\vizConvert{ table1 }{ gawk 'NR<=24{getline coo < "table1.pos"; \
while (substr(coo,1,1)=="#") getline coo < "table1.pos"; \
print substr($0,1,25) substr(coo,1,20) substr($0,46); next}{print}' }

vizNote :
\vizNote{ table5 }{ (2) EarlyA }{+\end{noteasatable}} dans J/ApJ/685/463 : Revient à la ligne après "EarlyA" et passe en texte plein.
\vizNote{ table2 }{ (1) section 3.2 }{+\begin{noteasatable}} dans J/ApJ/682/445 : Alligne les "=" après "section 3.2" et fait les liens sur la col. Note.

Pour ajouter des listes (avec puces rondes) : cf. J/ApJ/716/1217 :
\vizNote{ table2 }{ (3) }{ +\begin{itemize}} %{+\begin{noteasatable}} : début de la liste
\vizNote{ table2 }{ (3) =1.91. }{ +\end{itemize}} %{+\begin{noteasatable}} : fin de la liste. Saute une ligne ensuite

Exemple avec "=" qui remplace une ligne dans J/ApJ/657/1046 :
\vizNote{ table2 }{ (1) }{ =Note (1): See \ remplace la note du ReadMe
\vPop{-source=@{@cat}/table1}{table 1} \ ouvre la table1 dans une fenêtre pop-up
for the definition of the bands for line and continuum indices}

Exemple avec "&" qui remplace le texte mis dans l'accolade précédente. Ici, c'est même un lien vMore qui remplace le texte (J/ApJ/641/410) ! :
\vizNote{ * }{ (3) 3510}{&\vMORE{-source=B/chandra\&ObsID=3510}{3510}} : remplace le 3510 de la note par un lien vers l'ObsID 3510 dans B/Chandra.

ATTENTION, le texte à remplacer ne doit pas comporter de tirets. Par exemple (J/ApJ/839/113):
\vizNote{ table4 }{ (1) place-holder value of -1.00}{& blank value} ne fonctionne que si on enlève "place-holder" dans le ReadMe et qu'on utilise la commande : \vizNote{ table4 }{ (1) value of "-1.00"}{& blank value}

Exemple avec "!" qui remplace toute la note. Cf. J/ApJ/631/906 :
\vizNote{ table[34] }{ (2) }{! Note (2): the {\bf!} symbol denotes clump giants; letters denote the same event found in multiple objects.\n\br \ : \n\br : saute une ligne
For non-microlensing events ({\bf n} in column {\em nMACHO}), these events are due to blending of flux from a real event and should be ignored for any analysis.} Les balises \bf et \em font comme d'habitude : gras et gras+italique respectivement.

On peut aussi mettre une balise +\begin{pre} pour conserver le texte tel qu'il est mais avec les lettres grecques toujours converties.
Exemple : J/A+A/463/1227 - \vizNote{ append }{ (1) - point sources}{\begin{pre}} dès "- point sources"
\vizNote{ append }{ (1) following the definitions}{\end{pre}} : et jusqu'à avant "following the definitions", le texte est conservé tel quel mais avec certains caractères traduits (comme propto)...

Avec la macro "\par", on peut également sauter une ligne pour un nouveau paragraphe dans la note. Exemple du Cat. J/AJ/143/61 :
\vizNote{ table2 }{ (4) literature.}{+\par}

On peut ajouter un lien vers une image (exemple : Cat. J/ApJ/704/898) :
\vizNote{ table3 }{ (1) + }{ \VIMG{@{@cat}/figure9.jpg}{Figure 9}{width=442 weight=442} }
Dans le même exemple, le lien vers l'image depuis un vizComment donne :
\vizComment{ * }{}{ \pFile{_760x600}{@{@cat}/figure9.jpg}{Fig.9} shows the smoothed contour plots of Hercules and adjacent field for the 3, 4, 5, 7, 10, 15, and 20{sigma} levels}

#LienZero ATTENTION : Pour qu'un lien sur "0" fonctionne dans une note, il faut que le format soit en "A" (caractères libres) ou bien s'il n'y a que des chiffres et que le format est en "I" (chiffres entiers), il faut ajouter un "?" devant la description de la colonne dans le ReadMe (même s'il n'y a pas de valeur nulle dans la colonne).

vizComment :
Similaire au VizNote sur une colonne donnée ou sur une table (si la liste des colonnes est vide). Cf. ex. J/ApJ/710/1498 - Le vizComment ajoute l'explication à la note sur la colonne. Le vizExplain change l'explication de la colonne :

\vizComment{ table[34] }{ * B*mag }{ If the uncertainty is null, \
   the magnitude is an {\fg{red3}upper limit} value. }
\vizExplain{ table3 }{ e_BWmag }{Uncertainty in BWmag; \
   if null, BWmag is an {\fg{red3}upper limit}}
\vizMore{ table3 }{ BWmag }{ \ifmatch{*.*}{@{e_BWmag}}{@{}}\
   \else {\fg{red3}@{BWmag}} \fi}


On peut mettre un texte un peu long si on crée un fichier dans le répertoire /home/cds/httpd/Pages/VizieR et en utilisant la commande \inputViz.


Cf. Cat. J/ApJ/735/86 : \vizComment{ * }{}{ \inputViz{intro/newfirm.htx}} (avec le fichier newfirm.htx dans le répertoire "intro" de l'url ci-dessus). Le lien vers l'image est conservé.
Voir aussi la page de doc de François (lien dans le titre de ce paragraphe).


On peut également ajouter ce fichier via la commande \pFile : cf. J/ApJS/209/28 :
\vizComment{ }{}{+ (\pFile{_620x300}{/VizieR/intro/mystix.htx}{MYStIX catalogs})}
Dans le même catalogue : \vizExplain{ * }{ Reg }{+ \iflay\else (\pFile{_600x300}{/VizieR/intro/mystix-reg.htx}{list of regions})\fi}
En plus d'un commentaire sur une table ou une colonne, on peut ajouter un commentaire au Short Title (si la liste des tables est vide). (Voir aussi le \vizExplain )

Retour au sommaire

vizSet :
Exemple dans Cat. J/ApJ/573/366 pour mettre la colonne 2MASS à la fin de la table :
\vizSet{ table6 }{ 2MASS }{atEnd}
Autre exemple dans Cat. J/A+A/556/A56 pour que l'unité aparaisse bien comme mmag et pas seulement mag :
\vizSet{ freqs }{ Amp }{ unit=mmag }
Autre exemple pour changer le format d'une colonne dans le Cat. J/A+A/342/313 :
\vizSet{ 15um 7um }{ Freq FWHM }{ type=E dbtype=E fmt=8.1e }
\vizSet{ 15um }{ 15um e_15um E_15um }{ unit=Jy fmt=9.6f }

Pour régler les problèmes d'overflow lorsqu'on a une luminosité en 10-7W (J/ApJ/845/172), on ajoute 10+30W au dbunit :
\vizSet{ table1 }{ * *LLya }{ dbunit=10+30W }

Les valeurs VO_ définies dans http://cdsarc.u-strasbg.fr/local/cgi-bin/Show-plain?/home/francois/src/vizier/asu.h sont également utilisables. Par exemple pour définir une position principale :
cf. J/ApJ/705/14 :
\vizSet{ table1 }{ RAdeg DEdeg }{ flags&=~VO_MAINPOS atEnd }
(\vizSet{ table1 }{ z }{ fmt=6.4f dbunit=10-4 dbtype=i2 }
\vizSet{ table1 }{ scale }{ fmt=6.0f dbunit=pc/arcsec }
\vizSet{ table1 }{ SimbadName }{ atEnd } )

Ou encore :
\vizSet{ table4 }{ RAAh DEA- }{ flags|=VO_MAINPOS } (Cat. J/ApJ/718/587)
\vizSet{ table1 }{ GLON GLAT }{ flags&=~VO_MAINPOS} (Cat. J/ApJ/734/13)

Autre exemple dans J/ApJS/223/20:

\vizSet{ * }{ RAdeg DEdeg }{ precoo=6 }
\vizSet{ * }{ Ell S }{ dbunit=10-4 dbtype=i2 fmt=6.4f }
\vizSet{ spec }{ Star }{ dbunit=10-4 dbtype=i2 fmt=6.4f }
\vizSet{ spec }{ * *z }{ decimals=6 }

Pour les coordonnées, le precoo à 6 affiche 5 décimales (ce qui est le maximum de décimales sur la table spectre), et si tu demandes de calculer les positions J2000 en sexagésimal, ça affiche les coordonnées calculées avec 2 décimales en _RA et 1 décimale en _DE; si tu choisis precoo=7 il y aura une décimale de plus (6 en degrés, 3+2 en sexagésimal)

Pour les dbunit=10-4, ça veut dire que dans la base la valeur est stockée en dix-millième, et par exemple 0.1234 est stockée comme le nombre 1234. Avec le choix dbunit=10-4, la valeur stockée sera donc un nombre compris entre 0 et 10000. Avec dbtype=i2, ce nombre ne nécessite que 2 octets (qui peut représenter un nombre compris entre -32767 et +32767) et prend donc 4x moins de place que le défault (8 octets pour un nombre avec 6 décimales).
Enfin la précision d'un redshift du SDSS ne dépasse pas les 6 décimales (précision de 0.3km/s).

Exemple de merge dns J/ApJ/841/37 :
Dans le cas de merge avec différentes table.sim avec des noms de longueurs variables, Vizier prend la longueur maximale de la première table et tronque les suivantes à cette valeur. Pour augmenter la longueur de la colonne SimbadName à 22 catactères, il faut utiliser le \vizSet suivant :

\vizSet{ table[123] }{ SimbadName }{ type=a22 }

vizSQL :
Exemple dans Cat. J/ApJ/717/1067 pour indiquer si l'objet de la T1 est un sous-ensemble de la T3 ou de la T4 :
\vizPK{ table1 }{ Name }
\vizAddFKflag{ table1 }{ M }{M}{}{ -Name }{\ucd{DATA_LINK} {\bf S} indicates a spectral classification (table 4); {\bf O} optical photometry (table 3)}
\vizFK{ table[34] }{ Name }
+
\vizSQL{ table1 }{ set @{:M}='S' where @{:Name} in (select @{:Name} from @{.table4}); \
set @{:M}='O' where @{:M}='M' and @{:Name} in (select @{:Name} from @{.table3}) }

Autre exemple dans Cat. J/ApJS/207/10 pour enlever les valeurs = 0.00 dans les colonnes de magnitudes (lorsqu'il y avait aussi des valeurs à 99.999 déjà enlevées via l'indication ?=99.999 dans le ReadMe) :
\vizSQL{ table5 }{set F435smag=null where F435smag=0 ; \
set e_F435smag=null where e_F435smag=0 ; \
set F555smag=null where F555smag=0 ; \
set e_F555smag=null where e_F555smag=0 ; \
set F658smag=null where F658smag=0 ; \
set e_F658smag=null where e_F658smag=0 ; \
set F775smag=null where F775smag=0 ; \
set e_F775smag=null where e_F775smag=0 ; \
set F850smag=null where F850smag=0 ; \
set e_F850smag=null where e_F850smag=0 }

vizCSV :
Exemple dans Cat. J/ApJ/625/156 :
\vizCSV{ table1 }{ Com }
Permet de faire un lien sur chaque élément de la colonne "Com" séparé par une virgule (pour la Note (3)).

vizFilter :
Sert généralement à définir un filtre lorsqu'il n'est pas reconnu automatiquement; par exemple pour J/ApJ/682/985 :

\vizUCD{ photcat }{ FU38 }{ =PHOT_FLUX_U }
\vizUCD{ photcat }{ FRc }{ =PHOT_FLUX_R }
\vizUCD{ photcat }{ FB435 }{ =PHOT_FLUX_B }
\vizUCD{ photcat }{ FH }{ =PHOT_FLUX_IR_H }
\vizFilter{ photcat }{ FU38 }{ WFI:U38 }
\vizFilter{ photcat }{ FRc }{ WFI:Rc }
\vizFilter{ photcat }{ FB435 }{ HST/ACS:F435W }
\vizFilter{ photcat }{ FH }{ ISAAC:H }
(...)

Dans quels cas, ajouter le \vizFilter (cf. procédure définie lors de la Réu du 20/04/2016):
Si le programme pose la question "Add Filter?" :

  • Vérifier dans METAfilter si le filtre n'existe pas déjà et si oui, renseigner le \vizFilter pour que le programme le retrouve correctement ( system:filter écrit exactement de la même manière que dans la table METAfilter).
  • Si le filtre n'est pas dans METAfilter, vérifier sur le site http://svo2.cab.inta-csic.es/svo/theory/fps3/ (Filter Profile Service - SVO) et voir avec Pierre si on peut mettre à jour la table METAfilter.
  • Par défaut, on peut répondre "non" à la question "Add Filter" pour pouvoir insérer notre catalogue.
Si le programme ne pose pas de question, il fait tout de même une liste des filtres qu'il a retrouvé. Il faut donc :
  • Vérifier systématiquement que la liste des filtres reconnus soit correcte lors du 2v .
Complément d'information lors de la réunion du Réu du 04/05/2016 :

Les points importants qui font varier le calcul des flux sont :

  • Le système de magnitude est-il déjà AB (cf. http://en.wikipedia.org/wiki/AB_magnitude) ou bien Vega ?
    => L'explication du ReadMe indique toujours clairement une magnitude en système AB (lorsque le papier le dit explicitement). Par défaut, le calcul des flux pour le Photometry viewer prend en compte le système AB donné dans l'explication, sinon il condère qu'on est en système Vega et fait les conversions nécessaires.
  • La largeur effective des filtres
Y a-t-il un moyen simple de vérifier qu'une magnitude est basée sur le système Vega ou AB ?

=> A priori, si on peut comparer les magnitudes, la mag AB sera 1.25 fois plus grande que celle en Vega à partir de l'IR proche (la différence augmente ensuite, mais pour l'IR lointain on ne peut pas tellement comparer avec SIMBAD)... Donc pas forcément concluant pour une source variable...

Lorsque le 2v nous renvoit le message :

++++1 values used in SED filters are =0.
----Is it Correct?; Continue[o/n/a] ?

Que fait-on ?

=> Il faut vérifier que la valeur "0" correspond bien à une valeur nulle (normalement un flux ou une mag n'est pas égal à zéro sauf s'il s'agit de Vega...) et la supprimer.
Soit via un \vizSQL pour convertir la valeur "0" en null. Par exemple : \vizSQL{ table5 }{set F435smag=null where F435smag=0 }
Soit en modifiant la table directement mais cela implique de conserver une version .v00 de la table donc solution moins préférable.

Remarques :

  • Pour le \vizSQL , le zéro est toujours un zéro, peu importe son format d'origine (E10.3 ou F6.4, etc.) - ce qui est fort pratique.
  • Si le flux est en radio, il peut y avoir des flux à zéro...
N.B. : un flux en Jy est toujours un "flux density" (ils sont utilisés pour le Photometry Viewer). Lorsqu'on ajoute /Hz, /AA ou /beam, le flux devient intégré et il n'est plus pris en compte par le Photometry viewer.

Remarque : la table METAcola permet de voir quels filtres ont été reconnus : tous les photid = 0 indiquent que les flux ont été rentrés sans explication...

Lorsque la longueur d'onde d'un flux est défini dans une colone à part (ou un filtre de magnitude ou une Frequence pour un spectre), il faut le préciser dans le vizFilter à l'aide d'une astérisque (Cf. J/ApJ/712/942) :
\vizUCD{ table[12] }{ flux }{ =PHOT_FLUX_UNDEF }
\vizFilter{ table[12] }{ flux }{ *lambda }

ou J/ApJ/668/331 :
\vizUCD{ table1 }{ Sp }{ =SPECT_FLUX_VALUE }
\vizFilter{ table1 }{ Sp }{ *Freq }

Si les magnitudes viennent de modèles, il ne faut pas qu'elles soient reconnues pour le SED plot, il faut alors utiliser la commande :
\vizFilter{ table3 }{ Hlim }{ --- } % is NOT a magnitude for plot
(Exemple du J/ApJS/206/10)

Pour l'instant, les filtres automatiquement ignorés sont ceux dont l'explication contient les mots "polariz", "polaris", "redden", "stokes", "extinct", "correct", "absolute", "excess". L'UCD "phot.mag;arith.diff" pour les couleurs est également ignoré ainsi que l'unité Jy/beam.

Retour au sommaire

IV. Requêtes sur Vizier

1. La commande asu :
Voir asu -help pour les différentes options possibles.
Exemple dans le Cat. J/ApJ/748/49, avec le fichier "coo" = liste de positions en JHHMM+DDMM.
On veut rechercher les coo du 1LAC = Cat. J/ApJ/715/429. Un petit problème : on ne peut faire qu'une table à la fois...
Exemple de commande :
asu -f '%v%u|' -source=J/ApJ/715/429/table1 -out.add=_q,_1 -c.rm=60 -c='<<'coo > result_file
Va chercher dans un rayon de recherche de 60' (-c.rm) les valeurs de la table 1 de J/ApJ/715/429 qui correspondent au fichier d'entrée "coo" (-c='<<'file). Le -f '%v|' sépare les valeurs avec un "|", le %u ajoute les unités derrière les valeurs. Un '%*v|' supprime les blancs inutiles.
Le -out.add ajoute une numéro séquentiel de requête (_q) et la 1ère valeur du input (_1 ; ici = JHHMM+DDMM).
Lorsque rien ne correspond, seule la valeur de l'input est reprise.
Lorsqu'il y a plusieurs résultats, le même numéro de requête et input est repris.

La commande findcat :

Permet d'interroger VizieR et le FTP par mot-clef en recherchant dans le Short Title? et les mots-clefs. L'option findcat \u 2MASS , par exemple, permet de faire des recherches dans le \UsualName.

On a aussi la commande qcat.new qui permet de faire des recherches sur les titres des tables par exemple :

qcat.new -s -t 2MASS | less permet de rechercher les catalogues selon la manière classique (Title - Keywords??) avec, en plus, "2MASS" dans les titres des tables et les labels de colonnes...

V. Ajout de graphiques dans Vizier

Cf. Page d'aide pour générer des graph dans Vizier

1. Modification du ".status" :
Pour faire le lien vers les graphiques dans Vizier (qui sont des courbes de lumière, de vitesses ou des spectres), on utilise les commandes du fichier ".status".
Il y a 3 emplacements possibles pour un lien :
* S'il y a 1 seul objet ou quelques uns, le lien peut se faire à partir du titre de la table. On utilise alors le \vizExplain :
\vizExplain{table1}{}{+\vizContent{timeSerie} (\vExec{Vgraph}{@{@catab}}{}{plot}) } cf. J/ApJ/678/1127
Le \vizContent est une macro qui sert à préciser le types de données que l'on peut récupérer par un lien (image, fits, timeSerie...). Il permet de lister les catalogues qui contiennent des tracés, pour cet exemple.
\vExec est également une macro qui permet d'exécuter le programme "Vgraph" qui doit être dans le répertoire du catalogue.
Cf. exemples de macro dans le paragraphe \vizMore du manuel Vizier.
$catab est une variable prédéfinie pour le programme Vgraph. Elle correspond à la table courante du répertoire.
Le "+" permet d'ajouter du texte au titre de la table. Cf exemples de \vizExplain.
Ici, au titre de la table est donc ajouté un lien qui a pour nom "plot" et qui va ouvrir le graph. Une section "timeSerie" apparaît également dans Vizier.

* S'il y a 1 seul objet ou quelques uns, il peut également y avoir une section "Object" déclarée dans le Readme. Dans ce cas, le lien peut se faire à partir de cette section dans Vizier. (Ce lien peut s'ajouter à celui du titre).
\vizObj{ (\vGraph{@{@cat}/table2}{}{Plot}) } cf. J/ApJ/678/1127

* Enfin s'il y a une table d'objets, le lien peut se faire via un \vizLink pour chaque objet.
\vizLink{tablea3}{}{LC}{ \vizContent{timeSerie} \vExec{Vgraph}{@{@cat}/@{HD}}{}{@{}} }{Plot: Plot the light curve} Cf. J/ApJ/679/1490
Ce qui suit le @{@cat} (qui est le catalogue courant) est la variable $theTab, très importante pour le programme Vgraph.
On peut, via la commande \vizLink, ne faire un lien que pour certains objets, par exemple dans le cat. J/ApJ/682/1205 :

\vizLink{table3}{LC}{LC}{\vizContent{timeSerie}\
   \ifmatch{F*}{@{Name}}\
  \vExec{Vgraph}{@{@cat}/@{Name}}{}{@{}}\
   \else{@{}}\fi}\
  {Plot: Plot the light curves}

2. Le fichier .graph pour tracer le graphique :

Le fichier est découpé en 3 parties :
a. #Arguments = définitions des variables
b. #Plot introduction = définition des titres du graphique ($Vgraph non defined)
c. #Plot = définition des paramètres à récupérer pour le tracé ($Vgraph defined)

Certaines variables d'environnement sont déjà définies pour le programme :
$theCat = catalogue courant
$theTab = variable définie dans le .status (cf. ce qui suit le @{@cat}/). Il s'agit, lorsqu'il y a plusieurs objets, du nom de l'objet; Cf. J/ApJ/679/1490 ou bien, s'il y a très peu d'objet, du nom de la table où se trouvent les paramètres pour le tracé; Cf. J/ApJ/678/1127. Si la variable n'est pas modifiée (cas où il n'y a qu'un objet et une seule table, par exemple), il s'agit de la table du répertoire courant.
$Vgraph = contient le type de document à générer.

Le programme est exécuté 2 fois :
* Le 1er appel du fichier utilise la commande "cgigraph" (partie b.) qui génère un menu et le cadre qui va contenir le graph.
cgigraph -ps -img:"Postscript figure" -txt:"Data as a table" -form -htx P=$P -graph sont les différentes options le plus couramment attribuées à cgigraph.
"Data as a table" permet de faire le lien sur les valeurs qui ont servies à la construction du graph.
* Au 2e appel du fichier, le tracé est généré via le programme graph.

a. Définir les variables ! Notamment set Star :
set Star = "GRB 070610", cas pour un seul objet. Cf. J/ApJ/678/1127
ou set Star = `echo $theTab|tr '_' ' '`, cas où plusieurs objets sont définis dans la variables $theTab et où il faut transformer les " " qui ont été transformés par le programme en "_", en " " de nouveaux... Cf. J/ApJS/190/418

b. Définir le titre du graph et les axes :
plotx défini les limites de variation en sur l'axe des abscisses x et set X la légende de l'axe.
Idem pour ploty et set Y qui définissent l'axe des ordonnées y. Pour les limites, le format est "min max incr"; incr = - permet d'inverser la graduation. Cf. cas pour les magnitudes :

set Y ='mag'
set ploty = "-y - - -"

Pour le titre, on peut écrire, par exemple, pour 1 objet dont on trace la courbe de lumière en i', cf. J/ApJ/678/1127 :

echo1 "\section*{ \object{GRB 070610} light curve in "
echo1 "\quad {\bf\fg{red3}i'} filter \quad (P=$P)}"

Le \object permet de faire le lien vers Simbad sur l'objet. \quad insère des blancs. \fg défini la couleur.

ou s'il y a plusieurs objets et qu'un $Star est défini, cf. J/ApJS/190/418 :

echo1 "\section*{ Light curves in {\fg{blue3}B} {\fg{green3}V} "
echo1 "{\fg{red2}R} filters for \object{$Star} $Ptit}"

c. Définir les paramètres à utiliser pour le tracé du graph :
-source= défini la table où se trouvent les valeurs.
-out= défini les variables utilisées dans le programme : $1 $2 $3 etc. dans l'ordre des paramètres donnés.
SN===$Star (dans le cas de J/ApJS/190/418) spécifie la colonne où aller récupérer les valeurs.
La partie graph -T $Vgraph -C -I e -L "$Star" défini que le graph (-T $Vgrahp) est en couleurs (-C), contient des barres d'erreurs (-I e) et qu'il faut afficher une légende au graph (-L "$Star).
Il existe d'autres options telles que :
-S qui change le symbole utilisé pour les points du tracé (Par défaut, les points sont des "*". 0 = pas de symbole. Puis de 1 à 5, on a dot, +, *, o, ...)
-m chanque le style de la ligne de tracé (trai continu, discontinu...)
La commande "asu" est utilisée dans le cas où valeurs utilisées pour le graph sont récupérées de Vizier sinon on utilise "fcat"

Il n'y a qu'un seul fichier ".graph" par catalogue même s'il y a plusieurs courbes à tracer (par exemple, à la fois des courbes de lumières et des courbes de vitesses) ! Dans ce cas, il faut donc imbriquer une série de if, else, endif.

En sélectionnant 2 colonnes puis |graph -T tek, par exemple pour un spectre fits : fits2a spec.fits | graph -T tek, on obtient un aperçu du graphe dans une nouvelle fenêtre.

Retour au sommaire

Le plus simple pour tracer un graph est de partir d'un exemple ressemblant. Il y a une liste d'exemples ici.

En voici d'autres :
* Cas le plus simple : 1 seul objet, 1 seule table, sans filtres ni menu :
- Tracé de la mag i' avec e_i'mag, sans période, sur le jour d'observation (en days), pour un seul objet (tabmap/asu) : J/ApJ/678/1127
\vizExplain{ table2 }{ }{+ \vizContent{timeSerie}(\vGraph{@{@catab}}{}{Light Curve})
grep -v '[<>]' permet de ne pas tenir compte des valeurs limites.


- Tracé de la vitesse, avec erreur, sur la phase pour un seul objet (tabmap) : J/ApJ/682/L117
\vizExplain{ table2 }{}{+ \vizContent{timeSerie}(\vGraph{@{@cat}/table2}{}{Velocity curve})}
\vizObj{ (\vGraph{@{@cat}/table2}{}{Velocity curve}) }


- Tracé des vitesses A et B selon phase (tabmap/fcat) : J/ApJ/688/1345
\vizExplain{ table2 }{ }{ \vizContent{timeSerie}(\vGraph{@{@cat}/table2}{}{velocity curve})}
\vizObj{ (\vGraph{@{@cat}/table2}{}{Velocity curve}) }

- Dans le cas d'un spectre composite, on n'a pas d'objet mais le tracé du spectre et des erreurs à part. cf. Cat. J/ApJ/732/110/ :
\vizExplain{ table1 }{ }{+\vizContent{spectrum} (\wGraph{@{@catab}}{-l\&y}{spectrum})}

- Dans le Cat. J/ApJ/731/123, on a le tracé du transit avec les flares et spot points en plus (selon la Col. Flare/No Flare, Spot/No Spot) !

\vizExplain{ table6 }{ }{+ \vizContent{timeSerie}(\wGraph{@{@catab}}{}{Transit curve})} \vizObj{ (\wGraph{@{@cat}/table6}{}{Transit curve}) }


- Dans le Cat. J/ApJ/728/125, le tracé du transit change de couleur en fonction de la date :
\vizExplain{table3}{}{+\vizContent{timeSerie}(\wGraph{@{@catab}}{P=1.689868}{transit curve}) }
\vizObj{ (\wGraph{@{@cat}/table3}{P=1.689868}{transit curve}) }

* 1 seul objet, 1 seule table, avec filtres et menu par filtre :
- Tracé des courbes R;V;z;clear avec erreurs en fonction de HJD (tabmap && asu) : J/ApJ/694/1559
\vizExplain{table1}{}{+\vizContent{timeSerie} (\vGraph{@{@catab}}{P=2.64386}{transit cuve})}
\vizObj{ (\vGraph{@{@cat}/table1}{P=2.64386}{transit cuve}) }


- Tracé des courbes UVW2;UVM2;UVW1 (carrés) ; UBV (ronds) et "all" en fonction des filtres (tabmap) : J/ApJ/702/226
\vizObj{ (\vGraph{@{@cat}/table5}{}{Light curve}) }
\vizExplain{table5}{}{+\vizContent{timeSerie}(\vGraph{@{@cat}/table5}{}{light curve}) }


- Tracé des courbes BVRI (ronds), gri et clear (carrés) dans le Cat. J/ApJ/736/159 :
\vizExplain{table1}{}{+\vizContent{timeSerie}(\wGraph{@{@catab}}{}{Light curves})}
\vizObj{ (\wGraph{@{@cat}/table1}{}{Light curve}) }


- Tracé des courbes Ic;Rc;V;Ic+Rc;all via le programme lc-mag.csh dans le Cat. J/ApJ/733/L8 :
\vizExplain{ table1 }{}{+ \vizContent{timeSerie}(\wGraph{@{@cat}/table1}{}{Light curve})}
\vizObj{ (\wGraph{@{@cat}/table1}{}{Light curve}) }

Le menu se fait en fonction de l'instrument et le graphe avec le programme lc-mag.csh dans le Cat. J/ApJ/736/12 :
\vizExplain{table1}{}{+\vizContent{timeSerie} (\wGraph{@{@catab}}{P=1.580404}{transit light curves})}
\vizObj{ (\wGraph{@{@cat}/table1}{P=1.580404}{transit light curves}) }

* 1 seul objet, plusieurs tables, sans filtres, avec menu :
- Tracé des courbes J;H;Ks ou JHKs (avec incrémentation de 1 : "o++"), une mag et HJD par table, sans erreur. (fcat && asu) : J/ApJ/699/1196
\vizObj{ (\vGraph{@{@cat}/all}{P=9.779556}{light curve}) }
\vizExplain{ * }{ }{+ \vizContent{timeSerie}(\vGraph{@{@catab}}{P=9.779556}{light curve})}


- Tracé des courbes 510nm;Hbeta avec changement d'unités sur l'axe des Y en fonction du Flux et menu pour passer d'un flux à l'autre. (asu) : J/ApJ/702/1353
\vizObj{ (\wGraph{@{@cat}/table1}{}{Plot}) }
\vizExplain{table1}{}{+\vizContent{timeSerie} (light curve at \wGraph{@{@catab}}{}{510nm} and \wGraph{@{@catab}/Hbeta}{}{H{beta}})}


-Tracé de la V-band (Table 1) et des courbes Halpha, Hbeta, Hgamma, Hdelta ou Hall (2è table) dans le Cat. J/ApJ/732/121 :
\vizObj{ (\wGraph{@{@cat}/table3}{}{H-line variations}) }
\vizExplain{table2}{}{+\vizContent{timeSerie}(\wGraph{@{@cat}/table2}{}{V-band light curve}) }
\vizExplain{table3}{}{+\vizContent{timeSerie}(\wGraph{@{@cat}/table3}{}{H-line variations}) }

* 1 seul objet, plusieurs tables, avec menu pour passer d'une table à l'autre :
- Tracé d'une courbe en X-ray, R, 15GHz, 37GHz et 230GHz selon 5 tables dans le Cat. J/ApJ/734/43 :


* 1 seul objet, plusieurs tables, avec filtres, avec menu :
- Tracé des courbes i, z, i+z (1 table avec Filt) ou Vel (2è table) dans le cat. J/ApJ/735/24 :
\vizObj{ (\wGraph{@{@cat}/table2}{P=2.810595}{Velocity curve}) }
\vizExplain{table2}{}{+\vizContent{timeSerie}(\wGraph{@{@cat}/table2}{P=2.810595}{light curve}) }
\vizExplain{table1}{}{+\vizContent{timeSerie}(\wGraph{@{@cat}/table1}{P=2.810595}{velocity curve}) }


- 4 tables dont 2 avec filtres et 2 sans > Tracé de g',r',z', les 3 d'une part et tracé de U,B,V,U+B+V, UVW2, UVM2, UVW1, all d'autre part via le programme lc-mag dans le Cat. J/ApJ/729/143 :
\vizObj{ (\wGraph{@{@cat}/table4}{}{Light curve in g'r'i'}) }
\vizExplain{table*}{}{+ \vizContent{timeSerie}(\wGraph{@{@tab}}{}{light curve}) }

* Quelques objets, 1 seule table, sans filtres, avec menu pour les objets :
- Vitesse (sans erreur) pour 2 objets et menu pour passer d'un objet à l'autre (fcat) : J/ApJ/681/562
\vizExplain{ table1 }{ }{+ \vizContent{timeSerie}(\vGraph{@{@cat}/352}{}{Velocity curve})}
\vizObj{ (\vGraph{@{@cat}/@{@=2}}{}{Velocity curve}) }

* Quelques objets, 1 objet par table, sans filtre, sans menu :
Tracé de la mag i pour 2 objets (1 par table) dans le Cat. J/ApJ/733/116 :
\vizExplain{ table3 }{ }{+ \vizContent{timeSerie}(\wGraph{@{@cat}/HAT-P-28}{P=3.2572}{transit curve}) }
\vizExplain{ table4 }{ }{+ \vizContent{timeSerie}(\wGraph{@{@cat}/HAT-P-29}{P=5.7232}{transit curve}) }
\vizObj{ (\wGraph{@{@cat}/@{@=1}}{P=\ifmatch{*28*}{@{@=1}}3.2572\else{5.7232}\fi}{transit curve})}

* Quelques objets, plusieurs tables, sans filtres, avec menu pour les objets :
- Vitesse (sans erreur; table 2) + Bmag, Vmag, Umag, UBV (table 3) pour 3 objets avec menu pour passer d'un objet (et data) à l'autre (tabmap) : J/ApJ/679/1490
\vizExplain{ table3 }{}{+ \vizContent{timeSerie}(\vGraph{@{@cat}/table3/32068}{}{Light Curve of {zeta} Aur})}
\vizExplain{ table2 }{}{+ \vizContent{timeSerie}(\vGraph{@{@cat}/table2/32068}{}{Velocity Curve of {zeta} Aur})}
\vizObj{ (\vGraph{@{@cat}/table2/@{@=2}}{}{Velocity curve}) }

* Quelques objets, plusieurs tables, avec filtres, avec menu :
- Dans le Cat. J/ApJ/726/52, tracé par objet (il y en a 2 avec 2 tables par objet) de RV, BS, S (1ère table) et i, g, g+i (2è table) :
\vizExplain{ table4 }{}{+ \vizContent{timeSerie}(\wGraph{@{@tab}}{P=5.5080}{Velocity Curve of HAT-P-18})}
\vizObj{ (\wGraph{@{@cat}/table4/@{@=2}}{P=5.5080}{Light curve}) }
\vizExplain{ table5 }{}{+ \vizContent{timeSerie}(\wGraph{@{@tab}}{P=4.0088}{Velocity Curve of HAT-P-19})}
\vizObj{ (\wGraph{@{@cat}/table5/@{@=2}}{P=4.0088}{Light curve}) }
\vizExplain{ table7 }{}{+ \vizContent{timeSerie}(\wGraph{@{@tab}}{P=4.0088}{Light Curve of HAT-P-19})}
\vizExplain{ table6 }{}{+ \vizContent{timeSerie}(\wGraph{@{@tab}}{P=5.5080}{Light Curve of HAT-P-18})}


- Dans le Cat. J/ApJ/741/102 : 21 transits pour 1 objets. Menu pour chaque transit (listés à part dans une autre table que celles des mesures).
\vizObj{(\wGraph{@{@cat}}{}{transit curve})} \vizLink{ table1 }{LC +Filt}{LC}{ \vizContent{timeSerie}\wGraph{@{@cat}/@{TrID}}{}{@{}}}{transit curve}


* Plusieurs objets, 1 seule table, sans filtres ni menu :
- Vitesse avec erreurs en fonction de la JD pour 10 étoiles (tabmap && asu) : J/ApJ/693/1084
\vizLink{stars}{Plot +Star}{Plot}{\vizContent{timeSerie}\vGraph{@{@cat}/stars/@{Star}}{}{@{}}}{Plot of the velocities }

Exemple de SED dans J/ApJ/738/69 avec le programme sed4.csh :
\vizLink{ table1 }{SED -l_Bmag }{SED }{ \wGraph{@{@cat}/@{*ID}}{-l\&x\&-l\&y}{@{}}}{\vizContent{spectrum/SED}Visible-to-IR SED plot for this galaxy}

Exemple de courbe d'extinction avec les erreurs en bleu et la valeur en rouge : Cat. J/ApJ/737/73
\vizExplain{ table8 }{ }{+ (\vizContent{spectrum/absorption}\wGraph{@{@cat}}{-l\&x\&-x0=1\&-x1=20}{extinction curve})}

* Plusieurs objets, plusieurs tables, sans filtres, sans menu :
- tracé des courbes V et I correspondants à F555W et F814W respectivement dans les tables [56] avec erreurs, MJD-V, MJD-I et Per (tabmap) : J/ApJS/183/109
\vizLink{ table[789] }{LC }{LC}{ \vizContent{timeSerie}\ifnum{@{NGC}}<3300\vGraph{@{@cat}/@{NGC}/@{*[RML2009]}}{P=@{*Per}}{@{}}\else{@{}}\fi}{Display the VI light curves}

- Autre exemple de SED dans le Cat. J/ApJ/727/14 avec sed4.csh :
\vizLink{ table2 }{SED}{SED}{ \wGraph{@{@cat}/@{Y03}}{-l\&x\&-l\&y\&-x0=0.3\&-x1=70}{@{}}}{SED plot of this galaxy}

- Autre exemple de SED dans le Cat. J/ApJ/730/19 :

\vizLink{ table[135]}{SED +f_z}{SED}{\wGraph{@{@tab}/@{IRAS}}{-l\&x\&-l\&y\&-x0=1\&-x1=200}{@{}}}{ Infra-red SED plot of this source }

Le @tab permet de faire le graph sur plusieurs tables en meme temps :

#!/bin/csh
# Standard SED (from asu)

# Define the variables for sed4.csh
set Star = `echo $theTab|acut -d/ -f2`
set Tab =  `echo $theTab|acut -d/ -f1`

set title     = "SED of \object{IRAS $Star}"
set asu_query = ( -source=$theCat/$Tab  IRAS="$Star" )
set colors    = 1=red4
set errflux  = 0.1      # default flux error

# Use standard SED plot
source $Vroot/lib/graph/sed4.csh
exit $status

* Plusieurs objets, 1 seule table, avec filtres, sans menu :
- Tracé des mag BVRI en fonction d'une colonne Filter, avec erreurs, sur JD, sans période, pour une liste d'objets (fcat/asu) : J/ApJS/190/418
\vizLink{ sne }{LC}{ LC }{ \vizContent{timeSerie}\vGraph{@{@cat}/@{SN}}{}{@{}}}{draw the light curve}

* Plusieurs objets, 1 seule table, sans filtre mais avec menu :
- tracé de spectres selon 2 époques dans le Cat. J/ApJ/732/116 :
\vizLink{ table1 }{Sp +Name}{Sp}{\vizContent{spectrum}\wGraph{@{@cat}/@{Ep}/@{Name}}{-l\&y\&-x0=5\&-x1=40}{@{}}}{IR spectra}


- Tracé de B, V, all via le prog lc-mag dans le Cat. J/ApJ/727/9 :
\vizLink{ table2 }{LC}{LC}{ \vizContent{timeSerie}\wGraph{@{@cat}/table4/@{VID}}{P=@{*Per}}{@{}}}{light curves }


- Tracé de [3.6] et [4.5] avec lc-mag dans le Cat. J/ApJ/743/76 :
\vizLink{ table1 }{LC}{LC}{ \vizContent{timeSerie}\wGraph{@{@cat}/@{Name}}{P=@{*Period}}{@{}}}{light curves }
set Star = "$theTab" # Name of star (HVNNNNN [sauf P71_U01 = EV* LMC V0033])
set Simb = "$Star"
if ("$Star" ~ P71*) set Simb = "EV* LMC V0033"
set object = "\objS{$Simb}{$Star}"
permet de faire le lien correct pour le P71_U01. Si trop de différences dans la même colonne le @{SimbadName} peut être intégré au \wGraph à la place du Name.

* Plusieurs objets, 1 seule table, avec filtres et menu :
- tracé des courbes Ic;Rc;g (ronds) i;i';z;z' (carrés) et all en fonction du "time since burst" (fcat) : J/ApJ/693/1484
\vizLink{table3}{LC}{LC}{ \vizContent{timeSerie}\ifmatch{No}{@{Ref}}{@{}}\else\vGraph{@{@cat}/table1/@{GRB}}{-l\&x}{@{}}\fi}{Plot the light curve from table 1 data}

-Tracé des courbes IRAC1, IRAC2 ou all pour ~2000 objets via le prog lc-mag : Cat. J/ApJ/733/50
\vizLink{ stars }{LC}{ LC }{ \vizContent{timeSerie}\wGraph{@{@cat}/@{ISOY}}{}{@{}}}{Show the light curves }

* Plusieurs objets, plusieurs tables, sans filtres, avec menu :
- Tracé des courbes BVI (ronds) et F475W, F814W (carrés) avec menu pour chaque mag et pour BVI ensembles et les 2 F...W ensembles (fcat/tabmap) : J/ApJ/699/1742
\vizLink{ table[78] }{LC +Type}{ LC }{\vizContent{timeSerie}\vGraph{@{@catab}/V@{*ID}}{P=@{*Per}}{@{}}}{Light curves of star}


- tracé des courbes 3.6um;4.5um;5.8um;8.0um;all, avec erreurs selon MJD (asu) : J/ApJ/702/1507
\vizLink{table[12]}{LC +V}{LC}{\vizContent{timeSerie}\ifmatch{V}{@{V}}\wGraph{@{@cat}/table3/@{ID}}{}{@{}}\else{@{}}\fi}{Plot the light curve (if variable)}

* Plusieurs objets, plusieurs tables, avec Filtres, avec menu :
- Tracé des LC "U;B;V;R;I;r;i;all" en fonction des filtres 1;2;3;4;5;13;14 avec ronds ou carrés (fcat pour table 7 et tabmap pour [56]): J/ApJ/700/331
\vizLink{ table1 }{ LCs -Gal }{ LCs }{\vizContent{timeSerie}\wGraph{@{@cat}/table5/@{SN}}{}{@{}} }{ Plot the standard system light curves }
\vizLink{ table1 }{ LCn -Gal }{ LCn }{\vizContent{timeSerie}\wGraph{@{@cat}/table6/@{SN}}{}{@{}} }{ Plot the natural system light curves }
\vizExplain{ table7 }{ }{+ \vizContent{filter}(\wGraph{@{@catab}}{}{sensitivity plot})}

Pour un tracé de spectres, à partir de fichiers FITS par objet. Cf. J/ApJ/748/93 (attention : cas particulier - les columns sont en fait des lignes) :

\vizLink{ table1}{Sp}{Sp}{\vizContent{spectrum/fits}\
  \wGraph{@{@cat}/spectra/@{File}}{}{@{}}}\
  {plot of selected spectra}

Et la commande dans le .graph :
set Star = `echo $theTab|acut -d/ -f2|acut -d. -f1`
set File = `echo $theTab|acut -d/ -f2`
fits2a -par -axis2="0,1" spectra/$File |acut -c10- | graph -T $Vgraph -C $plotarg -L "$Star" -X '\*l [um]' -Y 'Flux [W/cm\sp2\ep/um]'
Voir aussi le Cat. J/A+A/553/A99 avec le même genre de chose (en plus compliqué)...

Exemples de graphes avec lc-mag
Voir la liste des différentes options : Tracés à sourcer
Courbes de lumière pour 1 objet :
J/ApJ/729/143 : Courbes de lumières pour 1 objet : 4 tables dont 2 avec filtres (dont 1 avec filtre UBV, UVW1 etc.).
J/ApJ/733/L8 : filtres Ic,Rc,V + err pour 1 objet
J/other/PZ/28.8 : 1 objet, 1 table, mag UBVRI sans filtre.
J/ApJ/743/118 : Courbes UBVRIJHK pour 1 table, 1 objet, sans filtre.
J/ApJ/742/L18 : 1 objet, 10 filtres (dont UVM1, i', UBVRI...), 1 table
J/AJ/141/65 : 1 objet, 5 tables, une par bande.
J/ApJ/736/12 : 1 objet, relative flux, BJD, err ; 1 table – 3 instruments
Courbes de lumière pour plusieurs objets :
J/ApJ/734/12 : Courbe pour 5 filtres (BVRr'i') et limites pour 53 Novae de la T4
J/ApJ/741/97 : 25 SN avec filtres RV, 1 table
J/ApJ/743/76 : 3.6 et 4.5mag, MJD pour 85 Cepheid. 1 table.
=> Penser à mettre des couleurs pour le Fall (obligatoire) si filtres pas trop connus...
=> + if possible pour le set du nom... ou alors mettre @{SimbadName} dans le .status
Courbes de vitesse :
J/A+A/551/A73 : 3 objets, 3 tables - courbes de vitesses pour les 3 objets (1 par table)

Exemples de graphes avec le pseudo-SQL :

Page d'explication sur la syntaxe.

Voir la page dédiée au .graph_sql et au niveau widget pour tracer des plots PageWidget.

Retour au sommaire

-- EmmanuellePerret - 09 Sep 2010</verbatim></verbatim>

Topic revision: r1 - 2018-10-01 - 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