Quelques notes sur l'installation de VizieR

Table des Matières

  1. Introduction
  2. Organisation des répertoires des catalogues
  3. Configuration
  4. Aides à la Gestion et l'Administration
  5. Préparation du catalogue
  6. Pipe-line d'insertion dans VizieR
  7. Installation d'un Clone de VizieR
  8. Manuel de survie
  9. Recréation partielle
  10. sybase/createDB/metacre.sqlCréation des tables de base
Documents annexes: Utilitaires divers (manual pages)
    Dernière mise à jour: 2022-10-24


1  Introduction

VizieR est un système qui permet de générer automatiquement des tables relationnelles à partir des descriptions standardisées; il est compatible avec le système ASU, et utilise pleinement la documentation standardisée des catalogues

En particulier, un certain nombre de conventions supplémentaires sont utilisées concernant l'accès à des fichiers de données (éventuellement stockées dans un sous-directory), comment référencer des sections du ReadMe , etc. Le coeur de VizieR est la méta-database, un ensemble de tables relationnelles stockées sous Sybase, dans la base de données metaviz@SYBASE (option -m du programme vizin). Les données sont stockées dans une autre base de données, éventuellement distante (option -b du programme vizin). Au CDS, les données sont stockées par défaut dans l'une des bases viz1@VIZIR (tables les plus importantes) ou viz2@VIZIR.

L'ensemble des tables formant la méta-database peuvent être interrogées par VizieR par http://vizier.cds.unistra.fr/local/cgi-bin/VizieR?-source=META . Les commandes SQL de creation de la méta-database sont dans /home/sybase/local/meta/metacre.sql.

Chaque catalogue est identifié par un catid, un nombre qui est aussi utilisé pour l'affectation d'un bibcode afin qu'ADS puisse répertorier les ReadMe. Le tableau suivant détaille comment ce catid est construit et utilisé comme bibcode (**** représente l'année, cc... le catid, et A la 1ère lettre du nom du 1er auteur):

catid catégorie de catalogues ADS yCat bibcode
0 META (ensemble des tables qui décrivent les catalogues) ****yCat....c....0A
1–99 réservé pour les tables liées à vizier (par exemple 11 pour les SED) ****yCat...cc....0A
1001–9999 catalogues ``traditionnels'' des sections I à IX – par exemple 2246 correspond au catalogue II/246 ****yCat.cccc....0A
102001–102999 catalogues de la catégorie B ****yCat...cccccccA
10010001–990010001 catalogues de la catégorie J; la forme est JJVVVpppp, soit 2 digits pour le journal (1=ApJ, 2=ApJS, 3=A&A, 4=A&AS, 5=AJ, 5=PASP, 6=MNRAS, etc), 3 digits pour le volume, et 4 digits pour la page ou le numéro d'article (à noter que les pages de Letters ou pink commencent à 9000, par ex. le numéro de page est 9012 pour la page L12) ****yCat.cccccccccA
>1000000000 catalogues de la catégorie J/other ****yCatpcccccccccA

entre 0 (qui représente les tables META), de 1001 à 9999 (qui représente les catalogues traditionnels, par ex. 2246 pour II/246), de 102001


2  Organisation des répertoires des catalogues

Les catalogues obéissent aux conventions de la documentation standardisée des catalogues: dans chaque répertoire contant un catalogue, il y a le fichier ReadMe, essentiel pour l'interprétation; il y a également quelques fichiers contenant des informations supplémentaires:


3  Fichiers de Configuration

Les fichiers suivants sont indispensables pour que VizieR puisse tourner:

/usr/local/glu/vizier.dic
définitions nécessaires au glufilter, ne concernent que VizieR.

/usr/httpd/Pages/VizieR/+news.htx (fichier facultatif)
contient un message de hot news à faire apparaître sur les pages de recherche de VizieR (recherche de catalogues uniquement)

/usr/httpd/Pages/VizieR/+menu.htx (fichier facultatif)
contient le menu local pour les clones de VizieR.

/usr/httpd/Pages/vizier.msg (fichier facultatif)
contient un message particulier à faire apparaître sur toutes les pages de VizieR (par exemple en cas de probleme...).
Exemple de message en cas de crash disque: /usr/httpd/Pages/vizier.msg.crash

/usr/httpd/Pages/VizieR/=n (fichier facultatif)
(n représente le numéro du catalogue) contient un message qui sera affiché quand le catalogue est appelé.
Note: ces fichiers ne sont pas lus lorsque le fichier /usr/httpd/Pages/vizier.msg n'existe pas — pour éviter l'ouverture d'une centaine de fichiers en cas de demande d'une longue liste de catalogues...


4  Aides à la Gestion et l'Administration

Quelques procédures Sybase sont utilisées pour gérer la base locale, et relatives aux catalogues:


4.1  Gestion générale

La doc locale de Sybase, version 11.0.2 est installée localement; il existe également une page générale avec liens sur le serveur Sybase des USA.
sp_report
(dans ~sybase/local) qui liste l'ensemble des devices utilisés par Sybases avec leur affectation aux différentes bases de données
dumpdb
(dans ~sybase/local/bin) qui permet de dumper, sur disque ou bande, des bases de données sélectionnées, ou toutes les bases de données (avec l'option -a)
CREATE_ALL
(dans ~sybase/local) contient les instructions pour une recréation complète (à partir de scratch) de toutes les bases de données (il reste à recharger les données ensuite...)


4.2  Gestion spécifique aux catalogues

Les déclarations sont dans metamore. Dans ce qui suit, les conventions suivantes sont utilisées:

add_acro catacro, catname
ajoute un petit nom au catalogue dans la table METAcro
add_adc catname, kwdname
associe un keyword de type ADC (contenus dans la table ADCkwdef) à un catalogue
add_kslot catname, kslot
add_kwdef kwdname [, numéro, explication]
ajoute un nouveau keyword dans la liste METAkeywords
add_kwd catname, kwdname
associe un keyword à un catalogue
add_mission catname, kwdname
associe un keyword Mission à un catalogue
add_wl catname, kwdname
associe un keyword wavelength à un catalogue
add_optical catname
qui insère le keyword Optical lorsqu'aucun keyword relatif au domaine de longueur d'onde n'est associé au catalogue

add_stat catname
ajoute le catalogue dans la table METAstat (statistiques)

rm_catid catid
supprime complètement un catalogue défini par son identification.
Note: les statistiques sont copiées dans la table METAstat_rm — voir la procédure sum_statrm
rm_cells catid
supprime la mention du catalogue défini par son identification dans les index par coordonnées. Ce catalogue ne sera donc pas retrouvé dans la liste des catalogues ayant quelque chose autour d'une position donnée.
mv_catid old_catid, new_catid
renumérote un catalogue, lui assignant un nouveau numéro dans les tables META.

release_now catname
permet l'accès au catalogue (changement de la date release dans la METAtab)
release_at catname, date
permet l'accès au catalogue (changement de la date release dans la METAtab)

set_catrole catname, kwdname, topnum
définit l'importance du catalogue par rapport au keyword. Ça permet par exemple que les catalogues de base relatifs aux missions soient retrouvées en priorité, lorsque le topnum est petit. De façon usuelle, seules les valeurs 0 100 200 255 sont normalement utilisées.
set_kslot catname
recalcule et remplace le kslot d'un catalogue en fonction de ses mot-clés.

sum_statrm catid
rajoute les statistiques du catalogue supprimé par rm_catid(catid_old) au catalogue de numéro catid.


5  Préparation du catalogue

Dans les macros, les noms de table peuvent contenir des jokers; pour les noms de colonnes, un astérisque * indique que les noms qui suivent peuvent contenir des jokers, et le tiret - indique tous les noms sauf...

Résumé des macros
Affinage des Caractéristiques du Catalogue
\cType Définit le type du catalogue (OC, BCC, CCC, GCC, MC)
\cUsualName Définit le nom usuel du catalogue
\cDic Comment retrouver à partir du Dictionnaire (%g)
\vizCatrole Définit le rôle d'un catalogue par rapport à ses mots-clé
Contenu et Présentation du Catalogue
\vizPosition comment calculer la position des objets si elle n'est pas donnée explicitement: utilisation d'une identification type-UAI, d'une identification compréhensible par Simbad, d'une réduction astrométrique, etc...
\vizDisplayColumns précise les colonnes a présenter par défaut, dans le cas où le choix automatique n'est pas satisfaisant.
\vizExplain réécriture d'une explication de table ou colonne, lorsque l'explication du ReadMe n'est pas suffisante
\vizComment Ajout d'un commentaire (relatif au catalogue, à une table, à une colonne)
\vizNote Pour rajouter du texte aux Notes (typiquement du formattage pour éditer une note sous forme tabulaire)
\vizIgnoreTables indique les tables qui sont inutiles (à ne pas rentrer dans VizieR)
\vizIgnoreColumns indique les colonnes qui sont totalement inutiles
\vizAddColumn Ajout d'une colonne dans VizieR
\vizSet précision ou modification de certaines caractéristiques sur la colonne (époque d'observation, unités, type de stockage, format d'édition, ...)
\vizCSV marqueur de colonnes qui contiennent une liste de valeurs
\vizHTML marqueur de colonnes contenant du texte en HTML
\vizTeX marqueur de colonnes contenant du texte en LaTeX
\vizSoft marqueur de colonnes contenant du texte écrit avec les conventions ReadMe /NED
\vizOrder modifie l'ordre des tables, ou d'une colonne (placement près d'une autre colonne)
\vizParam définit un paramètre relatif à une table (utilisé pour les sorties VOTable)
\vizUCD quel est l'UCD à associer à la colonne
\vizFilter quel le filtre exact assocé à la colonne
Organisation et Transformations du Catalogue
\vizMerge Fusion de tables ayant la même structure (union)
\vizPaste Collage vertical de tables représentant des attributs des mêmes objets
\vizDB Choix de bases de données pour les grosses tables, noms particuliers à assigner dans la base de données
\vizProj pour couper verticalement une grosse table en plusieurs tables ayant moins de colonnes (opération de projection)
\vizQbox Cas particuliers de la liste des boîtes coordonnées
\vizFoot Options particulières pour la génération du footprint
\vizConvert Scripts particuliers à exécuter avant de rentrer les tables dans VizieR
\vizSQL Code SQL particulier à exécuter une fois la table rentrée dans Sybase.
\vizIndex Colonnes à indexer (concerne les grosses tables uniquement, typiquement au moins quelques dizaines de milliers de tuples)
Génération de Liens
\vizPK marqueur de clé primaire
\vizFK marqueur de clé externe
\vizPFK marqueur de clé à la fois primaire et externe
\vizPKlink marqueur de clé primaire avec explication de lien
\vizPFKlink marqueur de clé primaire avec explication de lien
\vizFKlink marqueur de clé externe avec explication de lien
\vizAddFKflag Ajout d'une colonne qui contient un lien vers les tuples marqués \vizFK (clé externe correspondant à la clé primaire)
\vizAddCount Ajout d'une colonne qui contient le nombre d'objet dans une (ou plusieurs) autres tables, avec lien vers ces autres tables (quand le nombre n'est pas zero).
\vizAddXcount Ajout d'une colonne qui contient le nombre de cross-matches avec une autre table, avec lien par position, pour qu'un lien par position soit toujours valide
\vizLinkToNote pour installer un lien d'une colonne vers sa note associée
\vizNoLink pour éviter un lien vers sa note associée
\vizMore génération de lien à partir du contenu d'une colonne
\vizLink génération de lien contenu dans une colonne dédiée
\vizSimK marqueur d'une colonne contenant une identification compréhensible par Simbad
\vizCatK marqueur d'une colonne contenant une identification compréhensible par Sesame
\vizSimbad comment construire une identification compréhensible par Simbad
\vizNED comment construire une identification compréhensible par NED
\vizLEDA comment construire une identification compréhensible par LEDA
\vizVizier comment construire une identification compréhensible par VizieR-S (Sesame)
\vizSimbadName comment rajouter une colonne qui contient une identification compréhensible par Simbad
\vizNEDname comment rajouter une colonne qui contient une identification compréhensible par NED
\vizLEDAname comment construire une colonne qui contient une identification compréhensible par LEDA
\vizObj Pour générer des ancres particulières à partir des objets contenus dans la section Objects du ReadMe (par exemple pour un tracé)
\viztime Ajoute des métadonnnées temporelles pour une colonne de temps (voir METAtime)
\viztimeRel Ajoute des métadonnnées temporelles pour une colonne relative a une colonne de temps (elle meme définie avec la macro \viztime (voir METAtimeRel)
\vizEpncore Solar System catalogue flag to add EPN metadata (VOParis and B/planets catalogue) Macros utilisables pour liens
commentaires \yCom permet de mettre des commentaires sur un texte, qui apparaît quand on passe la souris sur le texte
liens catalogues des liens vers les fichiers existant dans le Service Catalogues sont possibles avec les macros suivantes:
  • \aFile: lien direct pour download (par ex. fichier FITS)
  • \pFile: lien qui s'ouvre dans une pop-up (par ex. une image, ou un texte html/htx)
  • \vFile: lien avec conversion (par ex. fichier FITS)
liens vers Simbad/NED des liens vers des bases très utilisées:
  • \object{nom Simbad}: lien direct vers Simbad, par ex. \object{@{}}
  • \objS{nom Simbad}{texte}: lien direct vers Simbad, avec un nom Simbad qui peut être transformé: par exemple si la colonne contient un numéro HD: \objS{HD @{}}{@{}}
  • \objNED{nom NED}{texte}: lien direct vers NED, avec un nom qui peut être transformé à la NED, par exemple si la colonne contient un numéro Zwicky: \objNED{CGCG @{}}{@{}}
  • \objLEDA{nom LEDA}{texte}: lien direct vers LEDA, avec un nom qui peut être transformé, par exemple si la colonne contient un numéro PGC: \objLEDA{PGC @{}}{@{}}
liens externes des liens vers des sites externes peuvent utiliser les macros suivantes:
  • \A{url}{texte} qui est le lien le plus simple, toujours possible, par ex.
    \A{http://site.net.org/cgi-bin/prog?id=@{*}}{@{}}
  • \aW ou \W: chargement dans un pop-up ou une fenêtre existante, par ex.
    \W{_800x600}{http://site.net.org/cgi-bin/prog?id=@{*}}{@{}}
  • \Aglu: utilisation de marque GLU par ex.
    \Aglu{WEBDA.cl "NGC @{*}"}{@{}} pour un lien vers un amas ouvert existant dans WEBDA (il existe aussi \Wglu{_xxy}{glu action et paramètres}{texte}) pour la même opération dans une fenêtre pop-up
  • \Alay: lien étiqueté, par ex.
    \Alay{results from Guy et al. 2012}{http://site.net.org/cgi-bin/prog?id=@{*}}{@{}}
images catalogues on peut insérer des images qui existent dans le service catalogue avec les macros \Vimage ou \image (1 seul argument), \Vimg ou \img (2 arguments) \VIMG ou \IMG (3 arguments), ou encore avec \pFile qui ouvre l'image dans une pop-up. Il est possible de n'insérer une image que dans la page 5, ou bien également dans la page 4 comme pour B/corot/.Summary
images externes on peut insérer des images dont connaît leur URL par des macros similaires à celles des images du service catalogue: \image{url} (simple image), \img{url}{texte} (image avec texte de remplacement) et \IMG{url}{texte}{options}

Avant de pouvoir être entré dans VizieR, un catalogue doit posséder un fichier ReadMe standardisé (voir Standard Description for Astronomical Catalogues pour plus de détails — voir également les conventions supplémentaires) (explication de table dans les notes associées).

Il est possible qu'il faille faire des transformations sur les fichiers avant leur inclusion dans VizieR. La description des fichiers contenue dans le ReadMe devient alors incorrecte; une convention particulière consiste à utiliser en priorité un fichier de nom readme.viz – le fichier ReadMe n'est donc utilisé que si readme.viz n'existe pas. Par exemple pour le CCDM (Cat. I/211) les coordonnées sont calculées, mais le fichier public ne contient pas les coordonnées, le fichier transformé étant décrit dans I/211/readme.viz Bien sûr, les protections de permettent pas de lire readme.viz...

A noter la convention particulière du make_viz: si ce fichier existe et est exécutable, make_viz est exécuté avant l'insertion dans VizieR – cela permet par exemple de générer un fichier readme.viz s'il n'y a pas moyen de faire autrement. Par exemple pour la conversion de _ (underscore) en \_ (backslash-underscore) pour eviter les indices intempestifs (catalogues VII/233 et VII/240); ou encore l'extraction des vitesses radiales dans une table mal foutue (par Guillout et al., J/A+A/504/829/.status). Ou pour une grosse table de rajouter la colonne de lien vizAddFKflag (J/other/PASA/26.439/.status).

Certains détails, comme la liste des champs qui sont affichés par défaut, ou encore comment générer des ancres particulières, ne peuvent être décrites dans le fichier ReadMe , et se trouvent:

Les définitions relatives à VizieR dans ces fichiers commencent géénéralement par \viz. Tout argument représentant une liste de tables peut comprendre les jokers (wild chars) utilisés souramment dans la désignation des fichiers Unix, à savoir l'astérisque (*), le point d'interrogation (?), et les crochets ([ ... ]). Les définitions détaillées sont les suivantes:

\cType{ catalogue_type }
permet de définir la catégorie du catalogue selon les critères définis par C. Jaschek:
  • OC = Observation Catalogue
  • BCC = Bibliographical Compilation Catalogue
  • CCC = Critical Compilation Catalogue
  • GCC = General Compilation Catalogue
  • MC = Model Catalogue

\cUsualName{ acronyms }
permet de définir le \nom usuel du catalogue. On peut ainsi retrouver un catalogue directement par ce nom. Attention, un acronyme ne peut faire qu'un seul mot (pas de blanc)!

\cDic{VizieR table(s)}{ comment construire }
permet de définir comment est construit le nom d'un objet à partir du contenu d'une table; il s'agit de l'équivalent du %g du dictionnaire.

Pour tester les identificateurs générés par \cDic, il est possible de mettre en place un petit programme de test, qui doit se terminer par .tst. Par exemple pour XMM (IX/40/dic9040.tst)

\cServer{ [.+*]name }
permet de définir à quels serveurs le catalogue est rattaché. Il y a actuellement 3 types;
  1. Le serveur AladinX (ancien accès par coordonnées). Ce serveur est désigné par le .(point)
  2. La liste des Surveys, c.à.d. la liste des catalogues qui sont listés par Aladin (cf /usr/httpd/Pages/VizieR/AlaSurveys.tsv indiqués par un +(plus)
  3. La liste des Archives, indiqués par un *(astérisque) (exemple dans B/hst/.Summary) Le fichier se trouve dans /home/cats/bibcat/Aladin.tab

\vizKeyword{}{keyword}
pour ajouter un mot-clé qui ne peut pas être mis par les mot-clés du ReadMe (par exemple J/A+A/376/1113/.status)

\vizCatrole{ keyword=value }
(voir aussi la stored procedure correspondante) permet de quantifier le rôle du catalogue par rapport au keyword: 0 indique un catalogue fondamental par rapport au keyword, et 255 un rôle anecdotique. Les valeurs 100 et 200 sont généralement utilisées comme quantification.

\vizIgnoreTables{ list of tables_to_ignore }
donne la liste des tables qu'il ne faut pas charger.

\vizComment{ list of tables }{ list of columns } {Text of Comments}
définit un commentaire à associer à la colonne
Note: si list of columns est vide, l'explication se rapporte à la table. (à éditer dans la page VizieR correspondant au catalogue)
Note 2: le commentaire peut utiliser la macro \inputViz pour inclure un texte qui se trouve dans le répertoire /usr/httpd/Pages/VizieR (voir par exemple pour l'USNO2 I/252/.Summary). Peut également servir pour inclure des définitions, comme par ex. pour CoRoT dans J/A+A/506/569/.status.
Note 3: il est possible de préciser dans quelle page mettre le commentaire avec la macro \Vphase (qui vaut 3 pour la Search Page, 4, 5 pour les pages résultats), et 6 pour les corrélations.
Note 4: la macro \iflay est une macro qui vaut \iftrue lrosque le commentaire est édité dans un layer (petite étiquette jaune qui apparait lorsqu'on passe la souris) et \iffalse autrement. Ceci permet de mettre par exemple des liens dans une explication en gardant un texte compréhensible dans l'étiquette. Example pour le catalogue de naines blanches III/210/.Summary.
Note 5: le commentaire associé à une table peut également contenir une position par défaut, dans une macro \ignore: par exemple pour la version obsolete de DENIS, dans II/240/.Summary, les versions obsolètes n'ayant plus d'index par coordonnées...
Note 6: dans le cas où le commentaire est associé à une colonne, celui-ci est ajouté en notes — soit une note est créée, soit la note est complétée avec le commentaire. Il est suggéré d'utiliser la couleur DarkGreen pour les commentaires, voir exemple dans le GCVS II/214A/.Summary.

Il est possible éventuellement d'insérer des images contenues dans le Service Catalogues (les images sont des fichiers .gif, .jpg ou .png). Il y a en fait plusieurs macros:

  • \Vimage{@{@cat}/file} correspond à une simple insertion d'image existant dans le service catalogue (utiliser \image{url} pour une image quelconque);
  • \Vimg{@{@cat}/file}{texte_étiquette} insère l'image avec une étiquette qui apparaît quand la souris passe sur l'image (utiliser \img{url}{texte_étiquette} pour une image quelconque);
  • \VIMG{@{@cat}/file}{texte_étiquette}{HTML options} permet d'ajouter des options pour le positionnement etc de l'image dans son 3ème argument (utiliser \IMG{url}{texte_étiquette}{HTML options} pour une image quelconque).

Enfin il est possible de faire des liens vers des sites externes par les macros de lien général:

  • \A{url}{texte}: lien cliquable, s'ouvre dans la même fenêtre;
  • \W{nom_fenêtre}{url}{texte} lien cliquable, s'ouvre dans une fenêtre dont le nom est spécifié (mettre un nom vide pour que chaque clic utilise une nouvelle fenêtre)
  • \Alay{texte_étiquette}{url}{texte}: similaire à \A, mais avec une étiquette qui permet d'ajouter une explication lorsque la souris se trouve sur le texte du lien
  • \Wlay{nom_fenêtre}{texte_étiquette}{url}{texte}: le lien s'ouvre dans une fenêtre dédiée.

\vizMerge{ list of tables }{ name } {Explanation text for the merged table }
[Attention à l'ordre, une liste table* fera que table10 précède table2]
permet la réunion (fusion) de plusieurs tables en une seule dont le nom est donnée par name — il faut que les tables mentionnées aient la même structure. Exemple dans J/A+A/401/959/.status. Il est possible de rajouter une colonne qui marque d'une façon particulière quelle est la table origine de chaque ligne — voir ci-dessous \vizAddColumn avec alternatives.

\vizPaste{ list of tables }{ name } {Explanation text for the pasted table }
[Attention, la liste des tables doit être explicite l'écriture table[12] peut poser des problèmes, il faut écrire table1 table2]
permet le collage (fusion de colonnes) de plusieurs tables en une seule qui s'appellera name — il faut que les tables mentionnées aient le même nombre de lignes, et que chaque ligne des tables originale représente le même objet. De plus, les colonnes ayant le même nom dans les tables avant collage doivent avoir un contenu identique – par exemple si les 2 tables à coller possèdent toutes les 2 une colonne Name, cette colonne doit contenir la même chose dans les 2 tables pour chaque ligne. Exemples dans B/fuse/.Summary, ou bien dans J/A+A/430/549/.status.

Si les ordres des tables diffèrent, il est possible de demander un tri par la macro \vizConvert comme par exemple dans J/ApJ/538/493/.status ou plus simplement à l'aide de taborder comme dans J/ApJ/703/1511/.status.

Pour faire les 2 opérations (\vizPaste et \vizMerge) il est possible de concaténer des tables par \vizConvert, et d'utiliser \vizPaste, comme dans J/ApJS/169/401/.status. Mais quand il faut en plus réordonner des tables, ça devient compliqué, il faut supprimer la variable $theFile (qui devrait prendre les valeurs correspondant aux différents fichiers mergés): un exemple est dans J/ApJS/206/13/.status.

\vizNote{ list of tables }{ Note_id note_line } {Text of additional note}
permet de rajouter du texte dans une note, par exemple pour rajouter des indications de \begin{noteasatable} ou autres macros qui ne sont pas dans la note originale. Note_id note indique quelle est la note (par exemple (2)), et note_line précise la ligne de la note en donnant:
  • (rien): le texte est ajoute à la première ligne de la note;
  • +: le texte est ajouté à la fin de la note;
  • texte: indique une partie du texte qui se trouve dans la ligne à modifier.
  • ^texte: la note doit commencer par le texte spécifié (précédé par un nombre de blancs quelconque)
Le text of additional note commence par
  • + si le texte est à ajouter à la fin de la ligne,
  • = si le texte doit remplacer la ligne
  • ! si le texte doit remplacer toute la note (depuis la ligne courante jusqu'à la fin)
  • & si le texte doit remplacer le texte note_line
par défaut le texte est ajouté en début de ligne.

Exemples dans J/A+A/462/553/.status (toute la note), J/A+A/427/107/.status, ou J/ApJ/602/264/.status; indication de la fin de la table dans J/A+A/428/1043/.status. Ou bien decoupage de la table en 2 morceaux dans III/250/.status. Ou encore a la fois table et texte pre-formatte, dans J/A+A/463/1227/.status. Egalement ajout de liste \begin{itemize} dans J/A+A/471/1069/.status

De plus, le text of additional note peut contenir des substitutions de noms de catalogues, tables, etc... (${$cat}, ${$table}, et ${} qui représente le texte défini dans text of additional note). Ceci permet facilement de transformer des textes pour mettre en gras ou en couleurs... (exemple dans J/MNRAS/376/1251/.status) ou de rajouter une image (par ex. J/A+A/509/A61/.status).

Le texte, s'il est absent, demande d'insérer un \begin{noteasatable}

\vizDB{ list of tables }{ [tablename_in_DB] [login_into_DB] [-norecno] [catid=catid] [dbaid=dbaid]}
définit
  • soit les caractéristiques Sybase: nom facultatif de la table dans la base de données (un tilde ~ indique de conserver la partie du nom de la table dérivé du nom de catalogue), et dans quelle base de données la table se trouve (permet éventuellement de se connecter à des bases extérieures).

    L'option -norecno demande que la table ne contienne pas la colonne recno, compteur de tuple. Dans ce cas, la table doit posséder une clé primaire pour pouvoir retrouver les informations complètes relatives à un tuple (exemple pour le log CFHT: B/cfht/.Summary)

    L'option catid= permet de fixer un numéro de catalogue (exemple pour les comètes: B/comets/.Summary).

    L'option dbaid= permet de fixer un numéro de data-base (exemple pour le log XMM: B/xmm/.Summary).

    Note 1: si [tablename_in_DB] est remplacé par *, le nom standard est adopté. Voir par ex. I/141/.Summary (YZC)
    Note 2: si [tablename_in_DB] commence par | les tables mentionnées dans le premier argument sont fusionnées horizontalement (pasted); cela suppose des tables ayant le même nombre de lignes, et les noms de colonnes dupliqués n'apparaissent qu'une fois dans la table fusionnée. Exemple dans III/106/.Summary (voir \vizPaste)
    Problème à voir dans J/AJ/126/3007/.status semble ne pas marcher (metalink problem)
    Note 3: si [tablename_in_DB] ne commence ni par * ni par | ni par -, les tables mentionnées dans le premier argument sont fusionnées (merge). Exemple: I/246/.Summary (ACT), formé de au départ de 48 fichiers, concaténés en un seul, ou encore I/250/.Summary (TRC). (voir \vizMerge)
    Note 4: le tilde ~ peut être utilisé dans le nom pour désigner le nom de catalogue standard; par exemple ~catal appliqué au catalogue 2345 va assigner le nom c2345catal à la table.
    Note 5: cette macro permet également de demander de ne pas inclure ce catalogue dans VizieR, en codant
        \vizDB{ — }{ — }
    (cf J/ApJS/100/125/.status) Ou encore pour les tables non arrivées, on y rajoute en plus le commentaire standard
         \vizComment{}{}{{\bf\fg{red3}(data not received)}}
    par exemple dans J/A+A/441/181/.status. Dans ces commentaires, il peut être utile de rajouter les objets étudiés, comme par exemple dans J/A+A/469/L43/.status:
        

    	\vizComment{}{}{{\bf\fg{red3}(RV data of \object{Gl 581} never mailed by the authors)}}
    	 

  • soit la méthode pour lancer une interrogation externe si tablename_in_DB commence par ! (le point d'exclamation).

    Voir exemple pour USNO Catalogue, dont les définitions se trouvent dans I/252/.Summary

    La commande a exécuter contient des [ ] pour indiquer les paramètres facultatifs, et les accolades { ... | ... } pour indiquer les alternatives dont l'une est obligatoire (par exemple [-m ${Vmag}] ne sera présent que si la colonne Vmag a une contrainte).

    Les noms des colonnes entre ${ }[] sont remplaces par les contraintes specifiees. Il est possible de rajouter une contrainte sur un intervalle de la forme low,high (par exemple dans l'USNO à I/252/.Summary) en commençant le nom de la colonne par ,, par exemple [-lB ${,Bmag}]

    En plus des noms de colonne, les paramètres entre ${ } peuvent utiliser les arguments de ASU, par exemple ${-c} pour les coordonnées du centre, ${-c.rm} pour le rayon en arcmin (-c.rs pour arcsec), etc ...

\vizObj{ Comment générer le lien }
utile lorsque le ReadMe contient des objets, et que l'on veut faire un lien de ces objets (comme par exemple J/A+A/428/877/.status, J/A+A/450/39/.status, ou bien J/AZh/81/925/.status). Dans ces liens ${} représente la colonne texto de la table METAobj, et peut être découpée (${$1} est le 1er mot, ${$=2} est la partie entre le 1er et le 2ème signe =, ${$(1)} est le texte dans la 1ère paire de parenthèses etc...) Autre exemple de choix d'abondances à editer: J/AJ/129/1607/.status. Ou encore tracé de transit de planete (J/A+A/476/1347/.status) ou de variables avec les périodes données entre parenthèses dans J/A+A/463/981/.status

Note: lorsque la dernière colonne de la section Objects est mise entre parenthèses pour représenter un nom de fichier (J/A+A/417/515/.status dans J/A+A/417/515), de table accessible dans vizier (J/MNRAS/377/300/.status dans J/MNRAS/377/300) ou de colonne (J/A+A/440/1153/.status dans J/A+A/440/1153), on peut

\vizQbox{ list of boxes }
précise, pour les gros catalogues, la répartition des objets sur la sphère céleste. Les conventions suivantes sont utilisées:
  • Une valeur 0 indique toute la sphère, 9 à 15 les faces Nord, RA=6h, RA=0h, RA=12h, RA=18h, Sud. Exemple pour le GSC (I/220/.Summary)
  • Il est possible de donner une liste de tables qu'il ne faut pas inclure dans l'index par position. Exemple pour la table9 de J/A+A/425/367/.status
  • Le signe - seul \viQbox{-} demande de ne pas inclure le catalogue dans l'index par positions
  • Un texte \vizQbox{myfile} indique que la liste des qboxes se trouvent dans le fichier myfile Exemple pour DENIS (B/denis/.Summary)

\vizFoot{ list of options }
peut contenir d'éventuelles options pour la génération du footprint du catalogue. Par exemple pour utiliser une échelle log si de très forts contrastes existent, par exemple le catalogue VSX dans B/vsx/.Summary

\vizConvert{ list of files_to_convert } {shell program a exécuter}
demande de filtrer le fichier d'entrée par un programme. Permet de convertir 'on the fly' un fichier pour qu'il puisse etre interprété correctement. 2 méthodes:
  1. Le code est inclus dans \vizConvert, exemple pour convertir les références en CSV dans VII/64/.Summary, ou simplement un tri nécessaire pour un \vizPaste comme dans J/ApJ/538/493/.status (tip: utiliser "fcat" pour indiquer que la commande gère elle-même les données – sans quoi le fichier correspondant à la table est injecté en standard input de la commande de conversion). Exemple dans II/262/.Summary. A noter le programme taborder pour mettre la 2ème table dans le même ordre que la 1ère, exemple dans J/ApJ/703/1511/.status
  2. Le code est inclus dans un fichier externe, lorsque le code commence par un . – exemple pour OGLE qui se concatène les fichiers d'un sous-directory J/MNRAS/348/1439/.status; de meme concatenation des plaques de Fresneau: J/AJ/130/2701/.status.
    Note: Si plusieurs fichiers doivent être concaténés, ça peut poser des problèmes; dans le cas des plaques de Fresneau (J/A+A/469/1221/.status), il faut un fichier readme.viz qui ne décrive qu'un seul fichier.
    Note: le code peut être inclus dans make_viz pour les cas où il faut concaténer des fichiers, voir (J/ApJS/170/251/.status); un autre exemple avec les vitesses radiales dans une table mal foutue par Guillout et al., (J/A+A/504/829/.status). Les variables d'environnement suivantes sont accessibles:
    • $theTab = nom de la table dans la base de données
    • $theFile = nom du fichier contenant les données.

\vizIndex{ list of tables } { list of columns }
indique les colonnes qui doivent être indexées dans Sybase. Par défaut, seules les tables de plus de 50.000 entrées sont indexées, par leur recno, et par leurs coordonnées (α,δ) si elles existent. Seules les colonnes d'emploi fréquent pour les requêtes dans les grandes tables sont vraiment nécesssaires.

\vizIgnoreColumns{ list of tables } { list of columns }
donne la liste des colonnes à ignorer (par exemple des coordonnées dans une 2ème équinoxe...) (rappel: un astérisque * indique que les noms qui suivent peuvent contenir des jokers, et le tiret - demande toutes les colonnes sauf celles indiquées)

\vizAddColumn{ list of tables } { Name } { Value } { Unit | type=... dbtype=... fmt=... ... } { ±colOrder } { explain text }
définit une nouvelle colonne constante qui peut être utile par exemple pour rajouter une année dans II/190/.Summary C'est très utile aussi pour mettre en place des liens qu'on peut activer ou désactiver – dans le B/chandra log, les liens vers l'Archive sont créés comme colonnes constantes, puis modifiées en fonction de la date de release – voir B/chandra/.Summary

Le contenu Unit peut contenir ou bien l'unité, ou bien des spécifications concernant la colonne ainsi créée, telles que le type de données type, le type dans la base dbtype, le format d'affichage fmt, les unités unit et dbunit (voir ces spécifications dans la macro \vizSet ). Ainsi, {km/s} est équivalent à {unit=km/s}.

Lorsque colOrder est blanc (non spécifié), la colonne est ajoutée à la fin (dernière colonne).

Note 1: le texte explain peut contenir la macro \ucd{UCD} pour le choix de l'UCD (UCD1 ou UCD1+).

Note 2: Value peut contenir des alternatives si Value commence par une virgule , . Ces alternatives sont affectées successivement aux tables contenues dans la liste. Ceci permet d'ajouter une colonne dont le contenu indique la table en cas de fusion de tables. Voir exemple dans J/AJ/128/544/.status

Note 3: Value peut indiquer un fichier ou une procédure qui permet de remplir cette colonne, si Value commence par un point . . Le nom qui suit le point (par exemple .myFile) indique que myFile contient les données de cette nouvelle colonne (à raison d'une donnée par ligne, les lignes commençant par % ou # étant ignorées. A noter: si le fichier myFile est exécutable, myFile représente alors un script à exécuter (la variable theFile est définie à l'intérieur du script et contient le nom du fichier à traiter, et theCol contient de nom de la colonne). Si le . est suivi d'un pipe (|) il s'agit d'une commande qui contient en entrée la table (équivalent à la commande fcat table | ...) Enfin, si le . est suivi d'un blanc, il s'agit d'une commande à exécuter, par exemple . grep '^[0-9]' mydata. Examples:

Example avec cross-match (utiliser plutôt la macro \vizAddXcount): pour faire le lien entre 2 tables sur la base de positions, il est possible d'utiliser le script AWK /home/cats/lib/X2.awk qui a pour arguments tab1 (table primaire, en principe la plus grosse), tab2 (table secondaire), col (colonne qui indique le cross-match), val (contenu de la colonne qui indique un cross-match), et r (distance maximale du cross-match en arcmin, ou bien rs en arcsec). Exemple dans J/A+A/455/453/.status.

Calcul de mouvements propres: pour calculer les mouvements propres dans le repère equatorial à partir des mouvements propres en coordonnées galactiques: utilisation de astropos, voir J/AJ/134/1432/.status:

	#!/bin/sh
	##############################################
	# Compute proper motion in Equatorial
	#         (from Galactic proper motion)
	# Arg: 1=RA, 2=Dec
	###############################################
	# Arg#1 = 1 or 2
	fcat table3.dat | astropos -c7-27 I G | astropos -6d -c72-92,44-58 -pmas G J | acut -d, -f2 | gawk -v c="$1" '{print $c}'
	

\vizAddFKflag{ list of tables } { column_name } { Value } { Unit } { ±colOrder } { explain text }
définit une nouvelle colonne destinée à contenir un flag mis à non-blanc qui permet de faire le lien clé primaire ==> clé externe. Cette colonne sera mise à blanc pour les lignes d'une table qui ne référencées dans aucune autre table. Exemple dans J/AJ/108/1256/.status

\vizAddCount{ list of tables } { column_name } { table_cible condition(s) } { Unit } { ±colOrder } { explain text }
définit une nouvelle colonne destinée à contenir un nombre d'objets qui satisfont à une ou plusieurs conditions – typiquement pour indiquer un nombre d'étoiles dans un amas ou un nombre d'observations qui se trouvent dans une autre table.
  • table_cible est le nom de la table (extérieure ou intérieure) (peut être composé de plusieurs tables séparées par des virgules – non testé). On peut utiliser = (signe égal) ou * (astérisque) pour la table elle-même (self-count); ou encore *FK=name pour désigner les tables qui ont name pour clé externe (ex. J/ApJS/206/17/.status
  • condition spécifie comment faire le comptage, sous la forme col2=@{col1}, où col2 désigne la colonne de la table_cible et col1 celle de la table concernée. Si les noms sont indentiques dans les 2 tables, on écrira par exemple Cluster=@{Cluster}
Le lien vers la table_cible est fait si le nombre est positif (\ifnum@{}>0) (ou \ifnum@{}>1 dans le cas de self-count, c.à.d le cas où la table_cible inclut la table d'entrée). Exemple dans J/MNRAS/414/28/.status

Note 1: dans les explications, citer correctement les auteurs, par ex. Borucki et al. 2014 (J/ApJ/736/19) plutôt que Cat. J/ApJ/736/19

Note 2: le texte explain peut contenir la macro \use{vRef} pour le choix de la fenêtre dans laquelle se fait le lien.

\vizAddXcount{ list of tables } { column_name } { table_cible rs=.. [autres_conditions] } { Unit } { ±colOrder } { explain text }
définit une nouvelle colonne destinée à contenir un nombre d'objets qui existe dans une autre table dans une recherche par position:
  • table_cible est le nom de la table (extérieure ou intérieure) (peut être composé de plusieurs tables séparées par des virgules, par ex. J/ApJ/700/103/.status) On peut utiliser = (signe égal) ou \* (astérisque) pour la table elle-même (self-count); ou encore FK=name pour désigner les tables qui ont name pour clé externe
  • rs= spécifie le rayon de recherche, en secondes de degré.
  • éventuellement d'autres conditions pour la recherche (par exemple mode=1 pour le SDSS)
Le lien vers la table_cible est fait si le nombre est positif. Exemple dans J/AJ/131/375/.status

Note 1: dans les explications, citer correctement les auteurs, par ex. Borucki et al. 2014 (J/ApJ/736/19) plutôt que Cat. J/ApJ/736/19

Note 2: le texte explain peut contenir la macro \use{vRef} pour le choix de la fenêtre dans laquelle se fait le lien.

\vizOrder{ list of tables } { Name } { ±colOrder }
  • changement de l'ordre des tables: si Name et ±colOrder sont vides (comme dans J/ApJS/145/83/.status) l'ordre des tables dans VizieR est delui donné dans list of tables
  • sinon, on place la colonne Name juste avant ou juste après une colonne spécifiée par colOrder.

Note 1: On peut utiliser une astérisque pour demander que par exemple toutes les erreurs suivent les valeurs auxquelles elles se rapportent: exemple dans J/MNRAS/372/1259/.status

Note2: On peut préciser les colonnes avec des wildchars (* [] ?) si l'on précède le(s) nom(s) de colonnes par un *. Exemple dans J/AJ/145/31/.status

\vizParam{ list of tables } { Name } { Value } { Unit } { group } { explain text }
définit un paramètre qui apparait dans une sortie VOTable. Si aucun nom de table n'apparait, il s'agit d'un paramètre associé à la ressource. Exemple pour les précisions de la position I/283A/.Summary.

\vizProj{projection_name}{ large_table } { list of columns to keep in the projection }
permet de séparer une grosse table en tables plus petites (lorsqu'il y a trop de colonnes). Exemple pour le 2MASS-Extended sources VII/233/.Summary. Attention, il ne doit pas y avoir de blanc dans les accolades définissant projection_name!

\vizDisplayColumns{ list of tables } { list of columns }
donne la liste des colonnes à afficher par défaut par VizieR. Par défaut, les colonnes les plus à gauche (sans connotation politique!) sont affichées. Rappel: un astérisque * indique que les noms qui suivent peuvent contenir des jokers, et le tiret - demande toutes les colonnes sauf celles indiquées.

Remarque: la colonne recno peut très bien être indiquée — par exemple dans J/A+A/451/1159/.status, ou bien le catalog NLTT (I/98A/.Summary).

\vizCSV{ list of tables }{ list of columns }
indique des colonnes qui contiennent une liste de comma-separated-values – par exemple des références non-numériques.

\vizHTML{ list of tables }{ list of columns }
indique des colonnes qui contiennent du texte HTML

\vizTeX{ list of tables }{ list of columns }
indique des colonnes qui contiennent du texte en LaTeX. Attention, s'il s'agit d'interpréter de formules mathématiques, il faut rajouter le $ en début et fin; 2 solutions:
  • agrandir la colonne et ajouter les $... Voir vizSQL
  • sans doute préférable, ne ajouter qu'au moment de l'edition les $ à l'aide de \vizMore, par exemple dans J/A+A/350/955/.status

\vizSoft{ list of tables }{ list of columns }
indique des colonnes qui contiennent du texte en "soft-tex" (LaTeX simplifié utilisé conjointement avec NED, par exemple dans les Abstracts de A&A)

\vizExplain{ list of tables }{ list of columns } { text of explanation }
permet de remplacer le texte d'explication d'une ou plusieurs colonnes par un autre texte. Voir par exemple II/59B/.Summary, ou bien Sky2000 V/102/.Summary.
Voir encore les définitions de pas mal de colonnes dans III/2132/.Summary.

Note 1: si list of columns est vide, l'explication se rapporte à la table. Par exemple, pour ancrer une courbe de lumière à une table, voir J/A+A/374/204/.status

Note 2: si une colonne a une note associée, la note est supprimée à moins que le texte ne commence par * qui indique de conserver la note (ex. I/268/.Summary)

Note 3: si le texte commence par un +, il s'agit d'un rajout à l'explication existante, comme pour ancrer une courbe de lumière dans J/A+AS/101/87/.status. ou encore dans J/A+A/394/505/.status.

Note 4: des substitutions de texte sont permises, comme pour la macro \vizObj: @{@1} est le premier mot, @{@2-4} est le texte formé des mots numéro 2 à 4, @{@(2)} le contenu de la 2ème paire de parenthèses, etc (le @ peut être remplacé par un $). Par exemple pour mettre un nom d'objet dans un \objS pour crééer un lien Simbad, dans J/A+A/534/A58/.status.

Note 5: macro \vizQual est une macro permet de donner une qualification par défaut (valeur de sélection par défaut). Exemple dans le log ISO VI/111/.Summary.

Note 6: macro \linkRole{texte} permet de rajouter un texte d'explication sur le rôle du lien dans les résultats de cette colonne, de la même façon que \vizPKlink ou \vizFKlink. Par exemple \vizExplain{+\linkRole{spectroscopic observations}}

Note 7: comme pour \vizComment, il est possible d'utiliser la macro \iflay (qui vaut true si le texte est présenté dans une étiquette) pour des légendes différentes selon qu'elles sont présentées dans une étiquette (en-tête de colonne d'une page résultats) ou en explication (page de présentation d'une table). Exemple pour J/AJ/135/1766/.status

Note 8: [17-Feb-2014] il est possible (voire recommandé...) de marquer les noms originaux des colonnes. La convention est que ce nom original est mis entre parenthèses dans le ReadMe à la fin des explications (juste avant la note s'il y en a une), et de mettre la macro \originalcolumnnames dans les explications de la table, par exemple \vizExplain{ * }{ }{+ (\originalcolumnnames) } Exemple dans J/ApJS/209/22/.status

\vizSet{ list of tables } { list of columns } { fmt=...   precoo=...   decimals=...   pic=...   fm2=...   unit=...   dbunit=...   dbtype=...   err=...[arcsec]   Ep=...   Eq=...   type=...   flags...   flags&=... }
permet de forcer certaines définitions dans VizieR:
  • les formats d'affichage des résultats dans VizieR sont redéfinis par fmt= (extensions existantes pour le sexagésimal et les chiffres romains). (les chiffres romains peuvent être interprétés, exemple dans VII/103/.Summary).
    A noter: pour les coordonnées, plutôt que de donner les formats, il est possible d'utiliser les conventions de precoo= pour changer la précision d'édition des coordonnées: par exemple valeur precoo=5 edite l'ascension droite en 0.1s (format % 011.1A) et la déclinaison en arcsec (format %+ 09.0a).
  • on peut diminuer le nombre décimales par decimals=: le format (fmt) est alors ajusté en conséquence.
  • une picture, essentiellement pour les dates, lorsque le format dans le ReadMe ne peut pas etre suffisamment precis: exemple avec des dates ayant 6 décimales dans le jour dans J/MNRAS/376/1707/.status
  • un format d'interprétation particulier peut être précisé pour réaligner proprement le contenu d'une colonne avant interrogation; ce format précisé par fm2= est stocké dans la table METAcol, séparé du format par \=. Par exemple pour une interpretation du numéro Tycho: voir I/239/.Summary, attributs des colonnes dans détails de la colonne TYC; ou encore le catalogue d'étoiles variables dans II/250/.Summary.
  • les unités utilisées pour l'affichage (unit) et pour le stockage des données dans la base de données (dbunit). Par exemple, si une erreur est donnée en degres alors que la valeur maximale est de quelques secondes de degré, on pourra avantageusement écrire unit=arcsec.
  • les types de stockage des données dans la base de données par dbtype=:
    • In pour les entiers: I1 (nombre sur 1octet) est uniquement positif de 0 a 255; I2 (nombre sur 2octets) peut prendre toutes les valeurs entières entre -32768 et +32767; I4 (nombre sur 4 octets) peut prendre toutes les valeurs entières entre environ -2,147milliards et +2,147milliards; I8 (nombre sur 8 octets) pour des valeurs encore plus grandes.
    • Rn pour les valeurs flottantes: E ou R4 pour les réels 4 bytes (précision de 6 chiffres significatits), D ou R8 pour les réels 8 bytes (précision de 16 chiffres)
    • A pour les chaînes de caractères de longueur fixe, et a pour les chaînes e caractères de longueur variable; un suffixe l indique la caractéristique left-adjusted — si elle est spéficiée (comme dans J/A+A/530/A93/.status) les colonnes correspondantes sont ajustées à gauche (suppression des blancs précédant le texte). Un suffixe ! peut également être ajouté pour tronquer à la longueur spécifiée (par exemple A1! ne conserve que le 1er caractère de la chaîne)
    A noter l'existence du point d'exclamation (!) pour désigner une troncature. Plus précisemment:
    • i2! (ou i2t) désigne un short int qui est tronqué automatiquement: soit il est mis à null (si la colonne accepte ces valeurs null), soit il est tronqué à 32767. Cela peut etre utile pour les magnitudes, par exemple J/ApJS/178/339/.status.
    • i4! désigne un entier qui est mis à null (si la colonne accepte le null) ou à la valeur maximale admissible 231–1 (par ex. dans le cas de dates qui sont lointaines dans le futur).
  • le type de donnée dans le fichier d'entree peut être modifié par type=, utilisé typiquement pour convertir des tableaux de nombre en une chaîne de caractères; exemple dans I/226/.Summary où un type 22I1 est converti en A22.
  • Cas particulier des date/time: par défaut, les dates sont stockées de la façon suivante:
    • dates simples: en jours juliens (format d'édition: %10J; les unités sont le jour)
    • date/heure avec une précision de l'heure, la minute ou la seconde: secondes écoulées depuis le 1er janvier 2000 (format d'édition: %T; les unités sont la seconde; période couverte: 1940–2060)
    • avec une précision supérieure à la seconde: en jours juliens stockés en double précision (format d'édition %j, par exemple %23.9j pour une édition à la milliseconde)
    Ce format par défaut des dates et heures peut être modifié par exemple par fmt=19t (date Unix en secondes depuis le 1er janvier 1970), période couverte 1910–2030; format d'édition %t, ou bien par un %19.6j (par exemple pour exprimer une date en-dehors de la période couverte par les formats %t et %T).

  • les spécifications des positions principales:
    • precoo= précision sur les coordonnées: valeurs 1=degré (°), 3=arcmin (10–2°), 5=arcsec (10–4°), 6=0.1arcsec (10–5°) 7=10mas (10–6°), 8=1mas.
    • Ep= (époque de la position)
    • Eq= (équinoxe de la position)
    • err= (erreur sur la position, peut être suivie de son unité)

  • les flags des colonnes, qui peuvent être indiqués en hexadécimal si la valeur commence par 0x; Par exemple, 0x8000 pour mettre en couleur les colonnes de coordonnées du CCDM, voir I/211/.Summary Les valeurs VO_ définies dans /home/francois/src/vizier/asu.h sont également utilisables.
  • les champs devant être plutôt à la fin sont indiqués par atEnd, comme par exemple les liens qui ne doivent pas être présentés par défault (exemple dans le GSC, I/220/.Summary
Ce qui suit le signe = peut être mis entre quotes si nécessaire (lorsqu'il y a des blancs dans la définition). Un petit problème particulier pour les caractères % et " qui doivent toujours être précédés d'un backslash (\)
Exemple d'un catalogue avec une telle définition: III/135A/.Summary (HD) ou bien V/69/.Summary
Exemple pour les conversions de nombres trop grands (les nombres supérieurs à 1030 posent des problèmes!!): J/ApJS/92/53/.status

Exemple de nombreuses redéfinitions de formats dans le IRAS Minor Planets, VII/91/.Summary

Note: \vizSet peut s'appliquer à une colonne calculée (par exemple un lien). C'est même la seule méthode pour forcer ou inhiber l'affichage d'un lien: exemple dans VI/103/.Summary. La colonne peut également être plus ou moins complètement redéfinie – voir à cet égard le log Chandra, B/chandra/.Summary

\vizSQL{ list of tables }{SQL instructions}
indique des opérations particulières à effectuer pour le chargement des tables dans VizieR. Par exemple, dans II/59B/.Summary, une colonne contient un facteur d'échelle pour la valeur des flux: cette opération de mise à l'échelle est faite au moment du chargement. Exemple avec des changements sur de nombreux noms: J/A+A/409/933/.status

Les conventions d'écriture de ces instructions sont:

  1. plusieurs instructions SQL sont séparées par le point-virgule (;)
  2. l'instruction Update suivie du nom de la table est ajoutée ou non suivant que le 1er mot de l'instruction est:
    • entièrement en minuscule: ajout de Update suivi du nom de la table (exemple: set X=0)
    • 1ère lettre en Majuscule: le nom de la table est ajouté (exemple: Delete where X=0)
    • entièrement en MAJUSCULES: rien n'est ajouté (exemple: DUMP TRANSACTION)

  3. pour désigner les noms de table, utiliser ${.table} qui remplace le nom de table (par ex. table1) par son nom Sybase (par exemple c1234t1). ${.} représente la table indiquée dans la macro \\vizSQL. On peut désigner une table d'un autre catalogue, par ex. ${.I/239/hip_main} (exemple pour NLTT, I/98A/.Summary)

  4. pour désigner les noms de colonne, utiliser ${:col} qui remplace le nom de colonne (par ex. 2MASS) par son nom Sybase (qui est _MASS). Le nom de colonne d'une autre table est spécifié par ${:table:col}, par ex. II/286/.Summary)

  5. on peut utiliser les backquotes (accent grave `) pour générer des listes, par ex.
    • `list-errata` pour générer une liste à partir du fichier errata.htx (ex.: J/MNRAS/418/863/.status)
    • `list-col` pour générer une liste à partir d'une colonne d'une table.

Note 1: Les % doivent etre précédés par un backslash (sinon ils sont interprétés comme caractère de commentaire dans le fichier .status).

Note 2: L'interprétation de formules mathématiques en TeX dans les colonnes impose de rajouter les $ manquants. Pour ce faire, il faut également élargir la largeur de la colonne par avec \vizSet en ajustant le paramètre dbtype=. Exemple J/AZh/81/33/.status.

Note 3: si la commande SQL commence par une Majuscule, la commande SQL est supposée complète; sinon, le texte 'Update table_name est introduit en tête de la commande SQL.

Note 4: il est possible d'inclure un fichier (dans le cas de commandes nombreuses) en commençant par un point . (qui n'est pas compris dans le nom du fichier) par exemple \vizSQL{table}{.file_to_include.sql} (exemple dans J/ApJS/141/23/.status). A noter:

  • si le fichier mentionné est exécutable, c'est le résultat de l'exécution de ce fichier qui contient les commandes SQL à exécuter, comme pour le log FUSE (B/fuse/.Summary), ou bien l'ajout de liens vers des postscripts dans J/A+A/438/1163/.status, ou bien J/A+A/444/365/.status
  • si le fichier designé commence par une esperluette (&) il s'agit d'un fichier de commande, c.à.d. un programme script (programme awk si le fichier se termine par .awk, sed si le fichier se termine par .sed, etc...
  • si le point est suivi d'un blanc (par exemple J/A+AS/126/479/.status) il s'agit d'une commande shell a executer. Autre exemple où le même script peut être utilisé par plusieurs tables dans J/AJ/131/2722/.status
Les variables d'environnement suivantes sont accessibles dans le script: $tabname (par ex. J/ApJS/141/23/table1), $theTab (par ex. table1), et $dbname (par ex. c21410023t1)

\vizFK{ list of tables }{ list of columns }
donne une liste de colonnes qui représentent chacune une clé externe (foreign key). Cette information permet à VizieR de transformer cette colonne en ancre sur une \vizPK.
Note: \vizFK peut également être utilisé pour indiquer qu'une colonne contient une référence explicitée dans une table refs.dat, tout comme si le nom de la colonne était r_label. La seule contrainte est que le nom de la colonne commence par ref ou Ref. Exemple dans J/ApJS/155/421/.status

\vizPK{ list of tables }{ list of columns }
donne une liste de colonnes qui représentent chacune une clé primaire (primary key). Cette information permet à VizieR de savoir vers quoi diriger les ancres indiquées par \vizFK

\vizPFK{ list of tables }{ list of columns }
donne une liste de colonnes qui représentent à la fois une clé primaire et secondaire. Dans ce cas, les liens générés automatiquement recherchent les tables ayant cette colonne en clé primaire ou secondaire.

\vizFKlink{ list of tables }{ list of columns }{ rôle du lien }
similaire à \vizFK, mais donne en plus une explication du rôle du lien (qui n'apparaît que dans les pages de résultat).

\vizPKlink{ list of tables }{ list of columns }{ rôle du lien }
similaire à \PK, mais créé un lien vers les tables ayant la colonne indiquée en clé externe. Ça créé donc un lien clé primaire -> clé externe. C'est préférable à la macro \vizPFK qui ne donne aucune explication. Example dans J/A+A/476/217/.status

\vizPFKlink{ list of tables }{ list of columns }{ rôle du lien }
similaire à \PK, mais créé un lien vers les tables ayant la colonne indiquée en clé primaire ou externe. Ça créé donc un lien clé primaire -> clé primaire+externe (on a donc un lien sur au moins 2 tables). Example dans J/ApJ/743/76/.status

Utilitaires pour la vérification des clés:
les 2 scripts colstat et mismatch permettent de générer une liste des valeurs uniques et de les vérifier:

  • colstat [-o] colonne[s] table...
    génère la liste des valeurs uniques d'une table, par ex.
    colstat Name,m_Name table1.dat | less
    va donner la liste des noms uniques formés par la concaténation des colonnes [Name et m_Name], chaque nom étant précédé de son nombre d'occurences (1 si le nom n'apparait qu'1 fois dans la table1). Avec l'option –o, un fichier est créé pour chaque table, par ex.
    colstat -o Name,m_Name table*dat*
    va créer un fichier pour chaque table (1 pour table1.dat, 2 pour table2.dat, etc) avec la liste des contenus des colonnes Name et m_Name.
  • mismatch liste_1 liste_2 | less
    compare les 2 listes générées par colstat, en indiquant les lignes de chacune des listes qui n'est pas dans l'autre, par exemple
    mismatch 1 2

\vizSimK{ list of tables }{ list of columns }
indique les colonnes utilisées pour le lien vers Simbad. Note: si plusieurs colonnes sont utilisées, elles sont concaténées. Exemple dans J/PAZh/24/443/.status. Avec également des liens vers des catalogues: J/PASP/109/998/.status.
\vizCatK{ list of tables }{ list of columns }
indique les colonnes utilisées pour un lien vers des autres catalogues – par exemple J/A+AS/139/69/.status . Egalement un exemple avec plusieurs liens, incluant Simbad, dans J/PASP/109/998/.status.

Les définitions des acronymes qui se réfèrent à des catalogues existant dans VizieR se trouvent dans le fichier (de format parfile) /home/cats/bibcat/Dic.par

\vizMore{ list of tables }{ list of columns } { what to generate }
permet la génération d'un texte quelconque (et donc d'une ancre) pour une colonne. Le contenu du 3ème paramètre utilise un petit langage codé dans /home/francois/src/vizier/vizout.c. Ce language contient du texte, et des références possibles aux élements de la table ou du catalogue sous la forme générale ${[=][*|**|***]désignation_colonne[subfield_spec]}.
  • le signe = demande d'écrire la colonne sous la forme:
    \htarg{arg=valeur} (voir par exemple pour NTT, dans I/98A/.Summary)
  • l'astérisque * demande un squeeze des blancs (remplacement des blancs multiples par 1 seul blanc, suppression des blancs initiaux et finaux; par exemple ' 123 4 ' devient '123 4'
  • le double astérisque ** demande de supprimer les blancs finaux uniquement (TAIL TRIM); par exemple ' 123 4 ' devient ' 123 4'
  • le triple astérisque *** demande de supprimer tous les blancs; par exemple ' 123 4 ' devient '1234'
  • Les valeurs de désignation_colonne sont:
    • soit rien, qui représente le contenu de la colonne courante: ${}. La colonne courante avec squeeze des blancs sera indiquée par ${*}, sans ses blancs finaux (TAIL TRIM) sera indiquée par ${**}, et sans aucun blanc par ${***}, La colonne éditée en nombre décimal sera indiquée par ${%d}.
    • soit le nom d'une colonne existante dans la table, par exemple ${Vmag} qui représente le contenu de la colonne de label Vmag
    • soit $col pour indiquer le nom de la colonne courante
    • soit ...$col... qui représente le contenu de la colonne dont le nom est la concaténation d'un préfixe, du nom de la colonne courante, et d'un suffixe. Par exemple ${l_$col} exprime le contenu de la colonne l_mag si la colonne courante est mag. Ainsi si la colonne courante est mag, l'expression l_${$col} contient l_mag, tandis que ${l_$col} contient le contenu de la colonne l_mag. Attention, il faut alors prendre soin d'indiquer que la colonne ${l_$col} doit être sélectionnée avec un \vizSet{...}{...}{... flags|=VO_OSELECT}
    • soit $more pour indiquer le lien associé à la colonne courante
    • soit $notid pour indiquer le numéro de note associée (0 quand il n'y a pas de note)
    • soit $note pour le lien vers la note associée; ça peut servir pour les cas où on veut contrôler les cas où le lien vers la note doit être fait, par ex. I/315/.Summary
    • soit $ucd pour indiquer l'UCD de la colonne courante; $ucdx désigne l'explication de l'UCD
    • soit $fam pour indiquer l'UCD dont le numéro se trouve en contenu de la colonne courante; $famx désigne l'explication relative à l'UCD
    • soit $cat pour indiquer le nom du catalogue courant
    • soit $tab pour indiquer le nom complet de la table courante, par ex. J/A+A/371/579/table1
    • soit $dbtab pour indiquer le nom système de la table courante, par ex. c33710579t1
    • soit $catab pour indiquer le nom avec /./ de la table courante, par ex. J/A+A/371/579/./table1 (le /./ sépare le catalogue de la table)
    • soit $file pour indiquer le nom de fichier associé aux objects (cf vizObj)
    • soit $table pour indiquer le nom de la table courante (e.g. table2)
    • soit $catid pour indiquer le numéro du catalogue courant
    • soit $tabid pour indiquer le numéro de la table courante dans le catalogue
    • soit $pos pour récupérer la position (α,δ en degrés)
    • soit $posglu pour récupérer la position et son type, suivant les conventions GLU;
    • soit $poseq pour récupérer la position et son équinoxe, suivant les conventions ASU.
    • soit #n pour désigner un numéro de colonne (la colonne numéro 0 est en principe le recno); les opérations arithmétiques sont possibles. Exemple dans J/A+A/412/495/.status, ou J/AJ/146/39/.status. Attention, le # a un statut particulier dans le protocole http, il faut qu'il soit converti en argument, ce qui nécessite de l'écrire \htarg{#}
    • soit $PK pour indiquer la colonne qui contient la primary key de la table courante
    • soit enfin le nom d'une variable d'environment sous la forme ${$=nom_var}. L'utilité est de permettre de rajouter dans une ancre des paramètres complémentaires, par exemple pour SPECFIND (VIII/85/.Summary) qui permet de rajouter des points supplémentaires sur le tracé du SED: voir exemple des GPS, J/A+A/489/49/.status.
    • le subfield_spec permet de prendre des extraits d'une colonne, sous la forme $[sep_char]n1[n2][z]
      • le $, obligatoire, indique le début du subfield_spec
      • le sep_char est un caractère (qui ne peut pas être numérique) utilisé comme séparateur dans la recherche de sous-champs. Si aucun séparateur n'est spécifié, l'extrait est fait en prenant les bytes.
        À noter:
        • si le sep_char est l'un des caractères de parenthèse ou crochet ouvrant (([{<>}])), on prend le texte jusqu'à la parenthèse fermante correspondante.
        • si le sep_char est ? (point d'interrogation) il s'agit d'un menu de substitution sous la forme
          ?text=remplacement   par exemple
          ?C=Cluster?F=field?unknown
          c.à.d. si le contenu du champ est C celui-ci est remplacé par Cluster, par field s'il est F, ou bien remplacé par unknown si le champ n'est ni C ni F.
      • n1[n2] indique les limites du sous-champ.
      • z est une lettre qui indique certaines transformations possibles, qui peuvent etre:
        z demande de transformer les blancs en zéros
        b demande de transformer les zéros non significatifs (les zeros situés à gauche) en blancs.
      Par exemple, ${Vmag$2-} représente la colonne Vmag, en sautant son premier caractère.

Note 0: le $ peut être remplacé par un @ ou un accent grave `, pour améliorer la lisibilité dans les éditeurs vim.

Note 1: quand le 3ème argument what to generate commence par un , il représente le paramètre de l'ancre, i.e.    \vMore{what to generate}{${}}

Note 2: la macro peut s'appliquer sur la table (colonne vide) comme dans J/A+A/415/123/.status – elle indique alors comment générer l'ancre vers les données détaillées de chaque ligne.

Note 3: la macro peut s'appliquer sur le catalogue lorsque la liste des tables et des colonnes est vide. Dans ce cas, il s'agit d'une association entre un fichier décrit dans la liste des Objects: et un programme de visualisation – comme dans J/A+A/417/515/.status

Note 4: la macro peut s'appliquer de façon conditionnelle, par exemple avec la macro \Vphase (qui vaut 4, 5 ou 6 pour les pages résultats), exemple avec des images qui peuvent être présentées dans J/A+A/461/11/.status

Un certain nombre de macros peuvent être utiles en conjonction avec ces générations d'ancres:

  • liste de references même alphanumériques, sont interprétables grâce à par =, (si le séparateur est une virgule), voir par exemple J/ApJS/126/133/.status
  • \htarg{ } : convertir un argument aux normes HTML (remplacement des blancs et caractères particuliers par %xx)
  • \sed{s/reg-exp/remplacement/[g]} {argument_à_convertir} Permet des substitutions de textes en utilisant les conventions de sed:
    • dans la 1ère accolade, le caractère / peut être remplacé par un autre caractère qui n'apparait pas le texte, par exemple le !
    • la reg-exp peut contenir du texte à "mettre en mémoire" à l'aide des marqueurs \( et \); ainsi \([1-9][0-9]*\) "isole" un nombre, qui peut être référencé dans la 2ème accolade par \1, \2 ... (il peut y avoir jusqu'à 9 "mémoires")
    • dans le remplacement, le backslash doit être doublé (\\).
    • le g facultatif indique un remplacement "global" (toutes les occurences trouvées); par défaut seule la 1ère est effectuée.
    Permet par exemple de convertir les références entre entre parenthèses (numériques ou non) dans un texte en liens sur les références par \sed{s!(\([^()]*\))![\\vRef{-source=@{@cat}/refs\&Ref=\1}{(\1)}!g}{@{}}
    Voir exemples dans II/219/.Summary (référence entre crochets), ou bien dans les références de J/A+AS/139/277/.status. Egalement la transformation du R dans les notes en un lien vers les remarques dans III/227/.Summary

Exemples de catalogue avec une telle définition:

  • Macro \vizContent qui sert à préciser le type de données que l'on peut se récupérer par le lien — typiquement vizContent{image/fits}, HST achive dans B/hst/.Summary Les types actuellement acceptés sont
    • cube: cube/fits
    • image: image/fits, image/gif, etc
    • spectrum: spectrum, spectrum/fits
    • profile: profils de galaxies, radiosources
    • timeSerie: timeSerie, timeSerie/fits
    • model: evolutionary tracks, etc
    • filter: filter characteristics
    À noter: \tabContent peut être utilisé à la place de \vizContent si le lien ne fonctionne pas (c'est une simple info).

  • Macro \vizTitle qui sert de label pour le titre du bouton correspondant dans Aladin, typiquement pour les archives d'images. Exemples dans le log HST ou Chandra, B/hst/.Summary ou B/chandra/.Summary; pour des images associées au catalogue, par ex. SCUBA J/ApJS/175/277/.status.

  • Macro \vizText qui permet de donner un texte au lien (utilise dans VOTable et asu-xml). Est utilisé typiquement pour des indications de copyright, mais pas uniquement pour ça. Exemple dans B/hst/.Summary pour les Associations WFPC2. A noter que cette macro peut inclure un \inputViz si le texte est long, tout comme la macro \vizComment.

  • Macro \W{name}{url}{texte} qui va ouvrir une ancre dans une fenêtre de nom name (dans une nouvelle fenêtre si le nom est vide ou réduit à l'underscore (_), ou dans une pop-up si name est écrit _ξxηξ et η représentent une taille en pixels de la fenêtre à ouvrir, par ex. _640x480) Quelques conventions utilisées pour les names:
    • image pour une image (FITS par exemple)
    • archive pour l'interrogation d'une archive distante
    • ext pour l'interrogation d'une base de données extérieure
    • LC pour la présentation d'une courbe de lumière

  • Macro \aW{name}{url}{texte} qui permet d'accéder à une ancre extérieure dans une fenêtre auxiliaire de nom name. A noter que la hauteur de la fenêtre extérieure peut être précisée par la syntaxe de name qui s'écrit (nom)_(larg)x(haut) (underscore suivi des dimensions de la fenêtre en pixels). Une nouvelle fenêtre est choisie si name est vide ou commence par un underscore pour préciser les dimensions de la fenêtre pop-up.

    L'écriture dans la fenêtre pop-up des notes se fait par \aW{wNote}{url}{texte}.

    Si l'on veut par exemple ajouter les traits entre les colonnes pour une table de notes, on peut utiliser cette macro au lieu de \vNote, cf J/A+A/473/995/.status: il faut remplacer \vNote{...} par \aW{wNote}{VizieR?-6N&...}

    Exemple d'utilisation: visualisation des images png associées à un catalogue dans des pop-ups, J/A+A/474/891/.status.

    On peut également utiliser la macro \vPop \vPop{asu-params}{texte} qui fait une interrogation dans une nouvelle fenêtre pop-up; méthode utile pour pouvoir comparer des résultats qui viennent de lignes différentes, exemple dans J/ApJ/665/369/.status

  • Macro \vPop{asu_qualification}{texte} Ecriture dans une fenêtre pop-up d'une interrogation à VizieR. L'URL commence en principe par -source=... qui choisit le type d'interrogation -6N (related data). Ce choix par défaut peut être modifié, en commençant la qualification par -5N (affichage détaillé) ou autre.

  • Macro \yCom permet d'afficher des commentaires quand on passe la souris sur le texte. La macro s'écrit    \yCom{commentaire}{${}} Exemple d'utilisation: valeurs particulières de redshift donnent lieu à une explication dans J/AJ/117/102/.status

  • La macro \Ion{@{}} donne une explication des colonnes contenant des noms d'ions entre les formes numériques et ``astronomique'' – par exemple le fer ionisé une fois s'écrit FeII pour les astronomes, et 26.01 sous forme numérique, par ex. J/A+A/489/1255/.status.

    La macro \ionZ permet la transformation des noms des ions entre ces écritures ``astronomique'' et ``numérique'' (mais sans transformation en lien). Exemple de l'utilité d'unbe telle transformation dans J/A+A/480/79/.status, ou une table contient l'écriture ``astronomique'' et l'autre l'écriture ``numérique''; autre exemple dans dans J/AZh/84/997/.status.

  • Macro \object ou \objS pour un lien vers Simbad. Par exemple
    \object{${}} pour un lien vers Simbad si la colonne contient un nom interprétable par Simbad, ou bien
    \objS{HD${}}{${}} si une colonne contient un numéro HD.

  • Macro \showFlag qui permet d'expliquer un flag (défini par des puissances de 2). Par exemple l'explication d'un flag de Sextractor se fait par \showFlag{Sextractor}{@{}} (par ex. J/A+A/488/533/.status) qui va chercher l'explication des flags dans le fichier /usr/httpd/Pages/VizieR/js/Sextractor.htx.

    Des définitions peuvent également se trouver dans un répertoire de catalogue si le 1er argument indique un catalogue, par ex. IX/1/.Summary qui appelle les définitions de IX/1/flags.htx; avec les flags en hexa: II/253A/.Summary qui appelle les définitions de II/253A/phflags.htx

    Il est même possible d'associer des flags (ou ensembles de flags) à une fonction Javascript: exemple de GLIMPSE qui récupère le code qualité 2MASS, cf II/293/qflags.htx.

    Il y a 3 variantes de \showFlag suivant la façon dont le flag est édité:

    • \showFlag qui suppose une édition décimale
    • \showXflag qui suppose une édition hexadécimale
    • \showSflag qui suppose une édition en string hexadécimale (pour les flags en 64 bits, comme SDSS)

  • Macro \Aglu{tag_glu  paramètres...}{texte} permet d'appeler des services (extérieurs ou intérieurs) définis dans le GLU (les tag_glu possibles sont décrits dans le fichier /home/cds/glu/glu.dic; une façon plus conviviale de retrouver ces tags consiste à utiliser le GLU Browser). Attention, si un paramètre contient un ou des blancs, il faut le mettre entre quotes, par ex.
    \Aglu{WEBDA.cl "NGC @{*NGC}"}{@{}}

    Pour une ouverture dans une pop-up, il existe la macro
    \Wglu{_dim_xxdim_y}{tag_glu  paramètres...}{texte}

    Pour le lien SDSS par position, utiliser \Aglu{SDSS.pos @{@posglu}}{@{}} (exemple dans J/AJ/130/1097/.status); pour le lien SDSS par plate-MJD-fiber, utiliser \Aglu{SDSS.sp3,w @{plate} @{MJD} @{Fiber}}{@{}} (exemple dans J/ApJ/662/15/.status); et pour le lien par objID, utiliser \Aglu{SDSS.id,w @{objID}}{@{}} (exemple dans J/ApJS/196/11/.status).

  • Macro \SPECFIND pour un tracé radio de SED. Pour le trace d'un point sur le spectre radio de SPECFIND (Cat. VIII/85), utiliser \SPECFIND{-c=${$pos},rs=..}{nu=..&S=..+/-..}{${}} (exemple dans le VLSS VIII/79A/.Summary). Autre exemple des GPS dans J/A+A/489/49/.status, dans J/AZh/84/227/.status; on peut préciser l'unité (GHz pour la fréquence au lieu du défaut (MHz); on peut préciser l'unité (Jy au lieu du défaut (mJy), cf J/ApJS/170/108/.status.

    Avec \SPECFIND on peut utiliser un script qui va rechercher des fréquences et des flux, par exemple

  • Macro \vExec{program}{${$cat}}{ arguments_à_program}{{${}}} permet d'exécuter le programme program, situé dans le directory du catalogue. Pour présenter le résultat dans une fenêtre auxiliaire, utiliser la macro \xW{window_name}{program}{cat}{ args}{{${}}} (pour le tracé de graphes, des macros simplifiées existent: \vGraph équivalent à \vExec{Vgraph} et \wGraph pour un tracé dans une pop-up). Pour une présentation dans la fenêtre des notes, utiliser wNote comme valeur de name, ou bien utiliser directement \xNote à la place de \vExec.
    Quelques exemples:

    Note: si le nom du programme contient nph- l'execution est immediate, comme pour les scripts apache. Exemple du script qui permet de récupérer des gros fichiers avec traduction de FITS en ASCII, dans VI/120/.nph-list

  • Il est également possible de tracer des graphes, par exemple les Low Resolution Plots d'IRAS. Ainsi, pour LRS de IRAS 00001+4826:

    Une méthode systématique pour le tracé de plots consiste à créer un fichier .graph dans le directory du catalogue – voir détails sur la méthode .graph , avec une liste d'exemples.

  • Macro \vExec{Vgrep}{${$cat}}{ arguments_à_Vgrep}{{${}}} qui permet d'exécuter le programme /usr/httpd/bin/Vgrep, qui extrait des lignes ou des paragraphes d'un fichier, ou ajoute un marqueur pour indiquer à quelle position le fichier doit se positionner.
    Usage: Vgrep [-p|-i|-a marker] [-sx] [-q|-e] exp [cgiprint_options] [file]
    -----  Find lines from a file, and display:
       -p: Display Paragraphs
       -i: Display Indented lines
       -a: print the whole file, but mark the position in the file
       -x: skip (ignore) characters in the expression
       -q: exp is just a string, not a regular expression
       -sx skip (ignore) the x characters in the regular expression
       -e  followed by regular expression or string (see -q)
     cgiprint_options include -tex -tex2 -html ... 
    
    Voir exemple dans IX/15/.Summary (EMSS) pour l'édition de paragraphes, ou encore l'édition immédiate d'un fichier de notes en LaTeX dans J/A+AS/126/479/.status, ou l'édition des lignes indentées dans le catalogue CO, VII/139/.Summary. Autre exemple (recherche dans le ReadMe) pour J/A+A/489/217/.status.

    Peut être bien utile pour l'édition de notes écrites en latex ou en HTX; voir par exemple le catalogue III/170:

    Noter dans le fichier III/170B/notes.htx le test sur \env{PATH_INFO} qui permet se savoir dans qeual cas on se trouve – pour mettre ou pas un lien sur l'étoile ayant une note.

    Le programme Vgrep est lui-même appelable à partir d'un script: voir exemple de J/A+A/412/707/.get2 (défini dans J/A+A/412/707/.status), qui transforme les références entre crochets par une ancre vers une fenêtre Javascript avec les bibcodes etc. Faut-il envisager de mettre systématiquement les définitions de \vRef dans la sortie de \vExec ?

  • Macro \aFile{nom_du_fichier}{texte}: ancre vers un fichier du service Catalogues. Contrairement à \vFile, aucune transformation n'est possible; la seule opération est une décompression si le fichier est compressé (utilisation de nph-Cat)

    Note: nph-Cat permet de retrouver un fichier extérieur au service catalogue, s'il existe dans le répertoire du catalogue un fichier exécutable .url qui fournit sur son standard output l'url du fichier à partir de son nom. Exemple pour récupérer des images de spectre sur le web: J/ApJS/193/28/.url.

  • Macro \pFile{dim}{nom_du_fichier}{texte}: similaire à \aFile, mais le résultat est mis dans une fenêtre pop-up dont le nom ou la dimension est mis en 1er argument. Exemple dans J/ApJS/193/28/.status

  • Macro \yFile{texte_étiquette}{nom_du_fichier}{texte}: ancre vers un fichier du service Catalogues, avec étiquette explicative. Cette macro est similaire à \aFile, elle a seulement cette possibilité d'étiquetage du lien.

  • Macro \vFile{[-source=]nom_du_fichier}{{${}}}: ancre vers ftp://cdsarc.cds.unistra.fr/pub/cats/fichier. Par exemple: J/ApJS/110/213/.status. Le lien peut se faire par le biais d'un programme de $Vroot/cgi/link si le nom de fichier commence par link/, par exemple \vFile{link/elodie\&-fits\&HD225097} (voir dans J/MNRAS/371/879/.status, ou encore dans J/A+A/480/91/.status). Elodie peut égalemnt tracer des spectres, avec l'option-plot, cf J/A+A/489/923/.status.

    Un /./ peut être nécessaire pour séparer le catalogue du nom de fichier, par exemple dans J/A+A/363/1051/.status

    -source= est facultatif; quand il est présent, le fichier doit être décrit dans le ReadMe, l'édition se faisant alors en fonction de la description du catalogue.

    \vFile convertit le Postscript pour les fichiers *.ps. La conversion se fait par ghostscript, mais certains postscripts (en particulier celui généré par IDL) ne sont pas interprétables par ghostscript. Dans ce cas, utiliser un 2àme argument badPS, comme dans J/A+A/376/982/.status
    \vFile peut également générer des extraits de fichiers postscript, comme par example dans J/A+A/383/188/.status: il faut faire suivre le nom de fichier de : avec la page, éventuellement suivi d'un autre : qui indique un offset de page (par exemple conversion de numero de figure en numéro de page).

    \vFile peut également avoir un 2ème argument -c= qui précise la position sur le ciel de l'image: ceci permet de générer une ancre vers AladinJava, comme c'est le cas pour J/A+A/378/30/.status

    \vFile peut également avoir un 2ème argument -rot= qui donne une rotation éventuelle de l'image (exemple pour catalog of open cluster data J/A+A/438/1163/.status) et pour des images png: J/A+A/493/1099/.status.

    \vFile génère des spectres dans le cas de fichiers FITS: exemple dans le III/217/.Summary. Les paramètres utilisés sont ceux du programme graph. Pour avoir les options de Adapt Plot (pouvoir changer les axes et les tailles), utiliser un argument graph, exemple dans J/A+AS/117/93/.status Exemple typique:

    		\vizMore{ table1 }{ FITSfile }{ \vizContent{spectrum/fits}\vFile{${$cat}/./sp/${*}\&graph\&-X '\*l [\oA]'}{${}}}
    		

    \vFile génère aussi des spectres pour des fichiers .dat, il suffit de rajouter un 2ème argument \&graph, exemple dans III/143/.Summary

    \wFile est une macro similaire, mais qui présente le résultat dans une petit fenêtre auxiliaire; elle a 3 arguments:
    \wFile{ window_name}{nom_du_fichier}{text} (voir paramètres de fenêtres)

    À titre d'exemple, edition des courbes des occultations des satellites de Jupiter dans J/A+A/493/1099/.status

  • Macro \vMore{arguments_à_VizieR}{{${}}}: par exemple dans VI/90/.Summary, ou encore lien CCDM->annex1 dans HIC, I/196/.Summary; l'exemple du NTT dans I/98A/.Summary. Un lien conditionnel d'une table sur elle-même existe également dans un catalogue de Reed, voir J/ApJS/115/271/.status Noter que \wMore existe également, qui met le résultat dans une fenêtre de nom More. Enfin il existe \yMore et \yMORE qui présentent en plus une "étiquette" quand on passe la souris dessus; \yMore a 3 arguments, le 1er étant le texte qui apparait lorsque la souris passe sur le lien, le 2eme et le 3eme étant les mêmes que les 1er et 2eme arguments de \vMore ou \wMore. Par exemple dans J/AJ/131/2274/.status. \yNote existe également, elle est utilisée pour tous les titres des colonnes dans les résultats de VizieR, mais attention l'ordre des arguments est différent: \yMore{condition}{${}}{texte-étiquette}; voir exemple combiné note vers une table / note vers une footnote dans B/wds/.Summary.

    Note: pour faire un lien vers plusieurs objets de VizieR par position, \vMore peut inclure une liste de positions — par exemple des paires de galaxies su SDSS dans J/MNRAS/390/383/.status.

  • Macro \vSim{arguments_à_VizieR}{{${}}}: pour un lien vers un catalogue similaire \CatK (appel de VizieR-S). \wSim a une action similaire, mais met le résultat dans une fenêtre de nom More.

  • Macro \vRef{arguments_à_VizieR}{{${}}}: similaire a \vMore, mais pour une édition de référence (dans une petite fenêtre auxiliaire). Même possibilité avec \vNote pour d'édition d'une note.

  • Avec un lien sur le catalogue des PNe V/84 dans J/A+AS/125/289/.status

  • Avec un lien glu pour le catalogue FIRST: VIII/48/.Summary

  • Macro \vMORE{arguments_à_VizieR}{{${}}}: à la différence de \vMore, \vMORE donne une page détaillée, avec tous les parameètres (appel de VizieR-5).
    Exemple d'un lien sur le HR dans III/77/.Summary; autre exemple d'un lien sur une étoile Hipparcos dans un papier de M.O. Menessier J/A+A/326/722/.status. Ou encore un lien sur IRAS à partir d'un sous-ensemble de la colonne IRAS dans J/A+AS/104/315/.status Et, pourquoi pas, un lien vers le catalogue d'étoiles C de Stephenson dans J/A+A/332/L53/.status Le lien vers Hipparcos du TCR (Tycho Reference Catalog) dans I/250/.Summary est un autre exemple. Il peut être nécessaire d'utiliser l'option -corr pour choisir les tables pour lesquelles la colonne existe (-corr=name=...), voir par exemple dans J/ApJ/760/86 ou J/A+AS/132/13/.status.

  • Avec une execution distante pour trouver si un numéro Hipparcos se trouve dans la liste des Errata: utilisation de \exec{! wwwget -strip ...} Devrait pouvoir avantageusement être remplacé dans le futur par \include{http://...} (exemple dans I/239/.Summary) – utiliser l'étoile HIP 114110 .

  • arguments_à_VizieR suit les règles asu, qui sont détaillées dans la notice d'interrogation de vizier vizquery.

\vizPosition{ Table }{ } { name=...   *name=...   *vizSim...   source=   fmt=...   error=...   precoo=...   precRA=...   precDE=...   null=...   |   proj=...   scale=...   CD=...    c=...   x=...   y=...   mag=...   PA=   Eq=...   Ep=...   x0=...   y0=...   c.r=...   refmag=...   refcat=...   ref*=   WCS= } { Explanations }
permet de spécifier l'erreur (σ) sur la position, et/ou de calculer des positions _RA et _DE, ou simplement de préciser la precision (en arcsec par défault) des positions. (Voir liste des catalogues à problèmes pour lesquels le calcul des positions n'a pas pu être fait).

  • soit à partir de SIMBAD si l'option   *vizSimbad  ou *name  est présente.

    • *name: la position équatoriale (degrés décimaux ou sexagésimal) ou bien un nom compréhensibles par Simbad, se trouvent dans un fichier dont le nom est donné (par exemple *name=table1.sim). Le nombre de lignes de ce fichier doit normalement égaler celui du fichier à charger; il est toutefois possible de mettre des lignes de commentaires commençant par #, et d'ajouter un commentaire dans chaque ligne en le faisant précéder du point-virgule ; Exemple dans J/ApJ/504/27/.status ou J/AZh/78/675/.status
      Note 1: nom générique possible pour le fichier, par exemple *.pos comme dans J/ApJS/142/153/.status
      Note 2: si le fichier designé commence par une esperluette (&) il s'agit d'un fichier de commande, c.à.d. un programme script (programme awk si le fichier se termine par .awk, sed si le fichier se termine par .sed, etc...
      Note 3: si le fichier designé est exécutable (comme dans J/ApJ/619/270/.status, script de calcul des positions dans /ftp/cats/J/ApJ/619/270/compute_pos, ou J/ApJ/647/13/.status ou J/ApJS/190/203/.status) alors le fichier est exécuté pour obtenir les positions (Remarque: les variables d'environnement catid, theCat, theTab et theFile sont définies avant d'appeler les programmes) Autre exemple: utilisation d'une table de VizieR pour mettre les positions à l'aide du programme asu et d'un script awk, cf J/A+A/446/19/.status, ou encore J/A+A/478/507/.status. C'est également plus efficace que l'option source=... dans le cas des gros catalogues (exemple avec findkic dans J/ApJS/199/30/.getKIC).
      Exemple d'un script de calcul de position à partir d'une position et d'un offset:
      #!/bin/sh
      # Calcul des coordonnees a partir de 
      # $1 = nom IRAS dont la position est dans la table1 
      #      (coordonnees en bytes 12-33 de la table1)
      # $2 = multiplicity component
      # $3 = oRA, offset en arcsec
      # $4 = oDE, offset en arcsec
      cat $theTab | gawk 'BEGIN{  PI=4.*atan2(1.,1.0);
          cmd = "fcat table1.dat | astropos -c12-33 -4d J J " ;
          while((cmd | getline)>0) { 
              i=index($0, ";"); split(substr($0,i+1), a);
      	RA[$1] = a[1]; DE[$1] = a[2]
        }}
        {
          dra = $3/cos(DE[$1]*PI/180.)/3600.;
          dde = $4/3600.;
          printf "%8.4f %+08.4f ; %s %+d %+d\n", RA[$1]+dra, DE[$1]+dde, $1, $3, $4;
        }'
      			

      Script J/ApJS/122/51:
      #!/bin/sh
      # How to compute
      test -z "$theFile" && theFile="$1"
      tabmap -data -tsv "Cl oRA oDE" $theFile | gawk -f /usr/local/too/coolib.awk --source 'BEGIN{FS = "\t"; 
          get_cl = "fcat table2.dat | acut -c2-11 -c40-59"; 
          print "#..." get_cl; 
          while ((get_cl|getline)>0) P[substr($0,1,10)] = substr($0,11)}
        { radec(P[$1], o); s[1]=o[1]; s[2]=o[2]; osep(o,$2,$3); 
          printf "%08.4f%+08.4f ; %s %s%s%s\n", o[1],o[2], $1,P[$1],$2,$3}'
      			

    • *vizSimbad: Il faut dans ce cas que la façon de construire un nom compréhensible par Simbad soit précisé par \vizSimbad (ou à la rigueur par \vizSimK) Exemple dans J/A+A/363/239/.status ou dans J/AJ/120/2638/.status. L'option null= permet d'accepter les cas d'etoiles sans position – en mettant a NULL les positions dont la précision est inférieure à la limite (échelle de 1 à 8 pour degré ⟶ mas, en passant par 5 pour arcsec)
      Note: Si certaines identifications ne sont pas compréhensibles par simbad, il est possible d'en corriger quelques-unes en faisant suivre *vizSimbad par un =, qui précise les noms à changer:
      • soit dans un fichier avec *vizSimbad=file_name
      • soit directement si *vizSimbad= est à la fin d'une ligne.
      Exemple dans J/A+A/417/651/.status.
    Le paramètre precoo= précise la précision des coordonnées à conserver (défault = 6 = 0.1arcsec); les paramètres precRA= et precDE= permettent de spécifier les précisions individuellement sur RA et Dec.

  • soit à partir de NED avec l'option *vizNED (semblable à l'option *vizSimbad)

  • soit à partir d'une table de VizieR avec l'option source= qui indique la table de VizieR qui contient les coordonnees. Il faut en plus préciser quel est l'identifiant dans cette table qui permet de retrouver les positions. Exemple dans J/MNRAS/345/1/.status ou dans J/A+A/423/469/.status
    Note: pour les gros catalogues ça risque d'être lent; pour convertir numero objID du SDSS en position, c'est plus rapide avec le programme findsdss7, par ex. J/ApJS/196/11/.status qui récupère les positions avec le script
    J/ApJS/196/11/sdss7pos

    Ou bien à partir des identifications spectroscopic SDSS (plate-MJD-fiber) avec findsdss-sp, par ex. pour J/ApJS/186/427 (version SDSS-DR7): tabmap -map '@{*spID}' table2.dat | findsdss-sp -7 -f - Pour la version la plus récente, ne pas spécifier de version, par ex. tabmap -data "P-M-F" table.dat | findsdss-sp - si la table contient une colonne intitulée P-M-F avec l'identification spectro, ou encore tabmap -data -map '@{*Plate}-@{MJD}-@{*Fiber}' table.dat | findsdss-sp - si la table contient les 3 colonnes intitulées Plate, MJD et Fiber.

  • soit à partir d'un nom UAI, si l'option name=colonne_name est présente, exemple dans J/A+A/363/62/.status (à noter que le format n'est pas obligatoire, il est recherché dans les explications de la colonne désignée par name= sinon). L'option null= est également applicable. (exemple dans J/A+A/370/78/.status). Dans le format, la lettre f indique une fraction, par exemple HHMMf pour des dixièmes de minutes. Exemple aussi pour le WDS: J/A+A/396/933/.status.
    Note 1: marche aussi avec les coordonnées galactiques, par exemple J/A+A/417/107/.status.
    Note 2: un nom commençant par B ou J implique une équinoxe, et la précession correspondante est appliquée. Ceci permet de convertir des noms en position lorsque les noms peuvent impliquer les 2 équinoxes (exemple dans J/AJ/123/2402/.status pour la table4)
    Note 3: la colonne nom UAI doit exister (i.e. ne peut être une colonne calculée). Il est toutefois possible d'utiliser le même fichier pour ajouter à la fois une colonne contenant un nom UAI et les coordonnees, cf J/ApJS/201/23/.status, et le fichier sdsst3 qui contient les noms.

  • soit à partir d'étoiles de référence, si l'option ref*= est présente, exemple dans J/A+A/371/908/.status ou J/A+A/381/884/.status. Les étoiles utilisables pour la calibration astrométrique doivent être données à raison d'une par ligne, avec un signe = pour séparer la position (α,δ) de la donnée (x,y); la ligne peut contenir des commentaires précédés de % ou # ou ; Un nombre minimal de 8 étoiles de référence est nécessaire. Les étoiles de référence peuvent être contenues dans un fichiers si ref*= est suivi d'un nom de fichier.

    A noter le programme getxy qui permet de transformer une liste du type    ID: RA Dec
    dans le format RA Dec = Xpos Ypos . Pour l'utilisation de getxy, il faut préciser les colonnes contenant l'ID, et les colonnes positions x et y:
    getxy table [ID=Seq] [x=Xpos] [y=Ypos] [Eq=J2000] [file]

  • soit à partir d'une recherche automatisée d'étoiles de référence dans un catalogue astrométrique fiable (UCAC2 = Cat. I/289 dans l'optique, 2MASS = Cat. II/246 dans l'infra-rouge proche). Les informations nécessaires doivent comprendre le centre (c=...), le rayon ou la boîte de recherche (c.r=...), les colonnes contenant les (x,y) (x=...   y=...) et les magnitudes (mag=...), la colonne de magnitudes à utiliser dans le catalogue standard (tabmag=...), et enfin le nom du catalogue de référence (refcat=...). La méthode cherche maximaliser le nombre de coïncidences entre les objets de la table et ceux du catalogue de référence, il est donc important que les objets de la table et du catalogue de référence possèdent des magnitudes, de préférence dans le même domaine de longueur d'onde.

    Un exemple est donné dans J/ApJ/628/729/.status. Les valeurs par défaut des paramètres sont c.rm=7.5, refmag=*PHOT* (soit UCmag dans l'UCAC2, Jmag dans 2MASS). Ces calculs peuvent aussi être exécutés par le programme xypos:

    Usage: xypos ucac2|ucac4|2mass|tycho2|usnoa|usnob|gsc2.3|ppm..|refcat=..
        [-dc] [-p] c=centre [scale=...] [x=Xcol] [y=Ycol] mag=[Mcol] [ep=Epoch]
        [score=min] [sigma=...] [discard=...] [-f-] [-filter program] table|file
    Defauts are x=Xpos|1 y=Ypos|2 mag=Vmag|3 refmag=*PHOT*
       -dc: use c as delimiter in input file (TSV or CSV input)
        -p: print the correspondances ( RA Dec = x y)
     discard: retry after removing the outliers at ...sigma (e.g. 5)
         -f-: data are given in standard input, structured as 'table'
     -filter: filter out the (x,y) input list, e.g. via a grep
       table: name of the table described in ReadMe;
       |file: input is a TSV or CSV (delimiter required with -d)
    Usage: ccd [-v] [-p] [-t=#] [-f RaDec_file | refcat=...  refmag=... ]
           [scale=min,max] [score=min] [sigma=min,max] [-c=...] [-c.r[b]=...]
           [-ep=...] [-mag[=2]] [-discard[=...]] [asu-constraints...] [xy_file]
    
    Find the position of sources defined by (x,y) pairs. 2 modes of reduction:
    
    1. From a list of reference sources, i.e. sources having RA, Dec, X and Y.
       This is the default mode (neither '-f' nor 'refcat' argument. 
       The reference stars are specified as a list:
       RA Dec = x y ; mag and comments
       in the 'xy_file' (default is the standard input)
       Lines missing the '=' sign are assumed to contain only X and Y -- 
       the positions are computed for these lines.
    
    2. From a list of positions (RA,Dec), either given in a file specified by the
       -f argument (-f - indicates the standard input), or retrieved from some 
       reference catalog (refcat specified, e.g. refcat=I/322 for UCAC4).
       The list of (x,y) pairs for which the position
       is given in the
       input file (-f argument, default=stdin); this list is separated from the
       (RA,Dec) list by a blank line. A header line may precede the (x,y) list,
       to specify the columns (X Y mag and Vmag, Rmag, etc are recognized). 
       In this option:
       - the (x,y) pairs are assumed to be ordered by increasing magnitude;
         (only when the header line is not given in the input)
       - refmag specifies which magnitude to use in refcat (leftmost mag)
       - the center of the field (-c=) is required.
       - the optional scale or scale range is in arcsec/pix.
       - the optional score gives the minimal score expected
       - the optional sigma gives the maximal sigma expected, in arcsec/pix
       - t specifies the number of reference positions and (x,y) pairs to examine
       - the other options represent ASU constraints to specify the radius (-c.r)
         or box (-c.b), the equinox (-c.eq=), the max. number of reference stars
         (-out.max), or catalog-specific constraints (otype='*')
    
    Options:
      -v: verbose option (details of tentative identifications)
      -f: the list of corresponding sources is in a file (default stdin).
      -p: print out the correspondances ( RA Dec = x y)
      -t: maximal number of points to use in the test phase (default 36)
      -mag: specifies the column with a magnitude, if any (separator=semi-colon)
      -discard: specifies threshold (in sigma) of points to discard (4.5)
    
    If the -f option is absent, the list of reference positions is given in the
    standard input, and is terminated by a blank line. Lines following this blank
    line are assumed to contain just (x,y) pairs for which positions are computed
    
    Example of a full program to compare a table with the UCAC2 (I/289) catalog:
    
    tabmap -ascii -data -map 'Xpos Ypos ; Vmag' table.dat | sort -n -t  -k 2 | ccd refcat=I/289 -c=236.51433-37.78614 
    
    
    

  • soit à partir de colonnes donnant un x et un y, d'un centre specifié par c=, avec
    • soit la matrice CD (par exemple dans V/27/.Summary, qui exprime les transformations de pixels en angles exprimés en radians — diffère donc du WCS qui utilise les degrés)
    • soit une échelle scale (en radians/pix par défaut; écrire l'unité sinon, par ex. scale=0.346arcsec/pix) et un angle de rotation PA qui indique la position de l'axe y par rapport au Nord (par défaut égal à zéro, c.à.d. x croissant vers l'Est et y croissant vers le Nord)
    • soit encore l'utilisation des paramètres WCS comme dans J/A+A/351/526/.status; les paramètres WCS sont ceux qui peuvent être obtenus par Aladin.

    Example avec concaténation de plusieurs tables, chacune faisant partie d'un amas: if faut individualiser chaque table par un make_viz (exemple pour J/MNRAS/417/1559), puis préciser les CDs de chaque table (J/MNRAS/417/1559/.status)

  • si des colonnes donnent un x et un y à partir d'un centre qui peut être défini pour chaque ligne, il devient possible de calculer les positions. Exemple typique: offsets de SNe par rapport au centre d'une galaxie, qand le nom ou la position de la galaxie est donnée dans une colonne. La façon de spécifier ce centre variable se fait par *c= qui utilise des conventions similaires à la macro \vizAddColumn:
    • soit en précisant le nom de la colonne contenant la position du centre (ou son nom, alors résolu par Simbad); par exemple si la colonne Galaxy contient le nom de la galaxie centrale, on pourra écrire: *c=Galaxy x=oRA y=oDE Eq=J2000
    • soit la position du centre se trouve dans une autre table (du même catalogue ou d'un catalogue existant dans VizieR): il faut alors préciser ce centre sous la forme *c=table:colonne, par exemple les clumps dans des nuages J/ApJ/698/324/.status. Pour un centre donné par un numéro Hipparcos, il est possible d'écrire *c=I/311/hip2:HIP
    • soit la position du centre est donnée sous forme d'une liste d'alternatives, lorsque les positions commencent par une virgule , (exemple dans J/A+A/532/A147/.status)
    • soit la position du centre est donnée dans une liste provenant d'un fichier ou d'une commande si les positions commencent par un point .

  • soit un choix d'une position alternative avec

    \vizPosition{ Table }{ colonnes_position } { }{ }

    comme par exemple le choix de la coordonnée galactique plutôt que la coordinnée équatoriale dans II/190/.Summary

Noter que la deuxième accolade doit être vide, et que la 4ème accolade peut être vide – un texte par défaut est alors pris. Mais attention, le paramètre Eq= doit être présent!!

Exemple pour J/AJ/116/1757/.status, ou bien encore dans J/ApJ/505/50/.status

Exemple avec x0 et y0 précisés dans J/AJ/117/1313

Par défaut, proj= prend la valeur tan. Les autres valeurs possibles sont   tan2 (stg)   sin   sin2   zea   arc (schmidt)   aitoff   gls   mercator   lambert   tsc   qsc

Le label peut être négatif, auquel cas la direction est changée de sens (voir par exemple VII/42A/.Summary)

TODO: "Merge" de tables avec chacune une solution différente pour calculer les positions ne fonctionne pas; par exemple il faudrait pouvoir fusionner les tables donnant la photométrie dans J/A+A/507/1375 (J/A+A/507/1375/.status)

\vizSimbadName{ Table } {[±colOrder]   Fichier ou Script }
Permet de rajouter dans la table une colonne qui contient une identification compréhensible par Simbad. Contrairement à la macro \vizSimbad, \vizSimbadName créé une colonne de plus dans la table, et la remplit avec l'aide d'un vizSimbadName. L'argument facultatif ±colOrder permet de préciser où installer le lien (juste avant ou juste après la colonne colOrder). Exemple dans J/AJ/123/3356/.status. Pour l'installation à partir d'un script awk, qui transforme les identifications, voir dans J/ApJ/365/471/.status – le caractère | situé en début indique que la commande s'applique sur le fichier courant. A noter que la variable theTab est remplie avant l'appel au script, ce qui est une autre méthode pour utiliser la table courante – exemple dans J/ApJ/620/1010/.status Pour ne remplacer que quelques identifications incorrectes, à l'aide d'un petit script J/AJ/128/1177/.status

Note 1: le signe égal (=) peut être utilisé pour séparer dans chaque ligne le nom à garder de commentaires éventuels, ex. J/AJ/133/2222/.status (fichier table1.sim)

Note 2: il est possible de modifier l'affichage du lien Simbad par la macro \vizMore: par exemple si certains objets ne sont pas encore dans Simbad les éditer en grisé (colour grey50) comme pour J/AJ/133/715/.status.

Note 3: il est possible de fixer la taille de la colonne SimbadName par \vizSet si la taille par défaut de la colonne n'est pas correcte (la taille est estimée à celle de l'identificateur le plus long). Exemple dans J/A+A/528/A48/.status.

\vizLink{ Table }{ column_label [+/-column]}{ column_contents } { Link_generation } {Explanations }

permet de générer des liens quelconques, en créant une colonne ``virtuelle'' de nom column_label, placée juste avant ou juste après column (à la fin par défaut), dont le contenu est constant et vaut ``column_contents''. Le titre de la colonne peut aussi être donné par le premier mot des explications (si ce premier mot se termine par un double-point) s'il n'est pas défini (lorsque la deuxième accolade est vide); par défaut le titre vaut ``Link''.

Exemple pour liens vers les images de l'archive HST, voir B/hst/.Summary

Voir exemple lien vers catalogue externe de Green VII/211/.Summary ou bien la récupération de la table de spectrophotométrie dans III/126/.Summary. Lien vers ACT dans J/A+AS/136/531/.status

Egalement lien vers les observations des mesures de Tobins, dans J/MNRAS/304/733/.status
Lien vers Simbad dans J/A+AS/137/113/.status
Lien vers WDS dans J/A+AS/139/69/.status
Lien vers FIRST dans J/AJ/118/1435/.status
Lien vers TASS dans II/230/.Summary

Tracé de spectres synthétiques: J/A+AS/126/267/.status

Insertion d'images: Dans la "Detailed page" (phase 5), il est possible d'insérer des images ou le résultat de plot, avec l'aide de la macro \ignore{-5=.3c \img{...}{...}}, qui permet d'afficher une page 5 particulière. Les conventions sont les suivantes:

  • le premier mot (.3c dans l'exemple) indique que les 4 colonnes de l'édition détaillée sont remplacées ainsi: la colonne de gauche (représentée par le point) reste inchangée, les 3 colonnes suivantes sont regroupées avec centrage.
    Note: une couleur peut éventuellement être ajoutée, par ex. \ignore{-5=.3C\bgmore ...}
  • le 2eme mot indique ce qu'il faut mettre dans ces colonnes regroupées, ici une image (macro \img) avec comme arguments la source de l'image et le texte de remplacement.
Dans l'exemple de J/A+A/474/891/.status, la source de l'image est ${$more${2}}, ce qui demande de prendre le 2ème argument entre accolades du lien associé a la colonne. Un exemple similaire dans J/A+A/501/539/.status avec des images radio. Encore plus fort: dans ce catalogue la combinaison \Vimg{@{@cat}/\sed{s/.*,//}{@{@more@{3}}}} pour ne conserver que la 2eme image de celles données dans la 3eme accolade du more.

Autre exemple d'une image pop-up en page4, et image insérée dans la page 5: J/AJ/136/2136/.status. À noter l'utilisation de \pFile pour l'image en pop-up.

Si les images sont petites, il est possible de les insérer dans la page de résultats (macros \image ou \Vimage) par exemple J/A+A/481/123/.status.

3 macros sont utilisables pour la génération d'images reliées à VizieR:

  • \Vimage{ ... } (1 seul argument): ... doit être remplacé par le fichier complet de l'image
  • \Vimg{ ... }{ alt} (2 arguments); le 2ème alt argument est le texte qui remplace éventuellement l'image et qui apparaît dans une bulle
  • \VIMG{ ... }{ alt}{opt} (3 arguments); le 3ème argument opt optien des options éventuelles (cadrages, épaisseur des bords, etc)
Exemple de présentation de 2 images par un click dans J/A+A/501/539/.status, qui appelle J/A+A/501/539/show_images.

Création d'icônes: pour mise dans une table, il est suggéré de créer des icônes pour illustrer, sans les axes, et en images suffisament petites (40pix de hauteur). Pour réaliser une telle icône à partir du programme graph, prendre les arguments
plotarg=" -f 0.05 -g 0 -h 1.0 -w 1.0 -u 0.0 -r 0.0 -m 1" (pour un trait continu). Comme exemples:

\vizLinkToNote{ Table } { list of columns }
Demande de construire un lien depuis la colonne vers la note associée, pour pouvoir présenter les explications relatives à une note ou un flag. Ce lien est fait automatiquement à partir des colonnes représentant une référence (r_xxx), ou un flag (f_xxx), et il n'est donc pas nécessaire de l'indiquer dans ce cas. Ce lien est également généré lorsque le texte de la note contient le mot ``magique'' follow, suivi d'une énumération de cas. Exemple dans J/A+A/427/107/.status,

Règle pour le lien:

  • si la colonne est alphabétique, le lien n'est fait que si la colonne n'est pas vide (forcément!)
  • si la colonne est numérique, le lien est fait pour les valeurs non nulles (donc le 0 n'a pas de lien). Si toutefois une valeur null est permise (avec un ?) le lien de la valeur 0 est bien fait. (par exemple J/A+A/534/A110/.status)

\vizNoLink{ Table } { list of columns }
Demande de ne pas construire de lien depuis la colonne vers la note associée.

\vizSimbad{ Table } {[±colOrder]   Comment Construire }
Permet d'utiliser des champs quelconques dans une table, exemple dans J/A+AS/139/29/.status, ou bien dans II/227/.Summary. Avec des transformations d'expressions régulières, voir J/A+A/369/527/.status. L'argument facultatif ±colOrder permet de préciser où installer le lien (juste avant ou juste après la colonne colOrder).

\vizNED{ Table } {[±colOrder]   Comment Construire }
Permet d'utiliser des champs quelconques dans une table pour construire un lien vers NED. Exemple dans J/A+A/422/941/.status. L'argument facultatif ±colOrder permet de préciser où installer le lien.

\vizNEDname{ Table } {[±colOrder]   Fichier ou Script }
Permet de rajouter une colonne contnant un nom compréhensible par NED. Similaire à \vizSimbadName.

\vizLEDA{ Table } {[±colOrder]   Comment Construire }
Permet d'utiliser des champs quelconques dans une table pour construire un lien vers la base LEDA. Exemple dans J/A+A/422/941/.status. L'argument facultatif ±colOrder permet de préciser où installer le lien.

\vizVizier{ Table } { [±colOrder]    Comment Construire }
Permet d'utiliser des champs quelconques dans une table, pour générer un lien vers les données originales contenues dans VizieR à partir d'un identificateur (appel à VizieR-S). Exemple (IRAS) dans J/A+AS/129/87/.status Autre exemple, lien amas Abell dans J/ApJS/130/237/.status

\vizUCD{ list of tables }{ list of columns } { Additions for UCDs}
Permet d'assigner correctement les UCDs (UCD1 et UCD1+) (Unified Column Descriptors) calculé à partir du contenu en label, unité et explications. Les possibilités pour les additions sont:
  • soit un UCD (UCD1 ou UCD1+) assigné directement si précédé par un =, par exemple   =ID_MAIN ou =meta.bib. A noter que dans l'écriture des UCD1, on peut remplacer l'underscore (_) par un point (.) pour avoir des textes plus lisibles.
  • soit par un texte qui est pris en compte pour l'assignation de l'UCD, au même titre que les explications du ReadMe – par exemple en ajoutant Johnson ou notspecific pour précisier le système de magnitudes.
  • il est possible de supprimer ou remplacer la prise en compte de l'unité (!u) ou du label (!l):
    • suppression: par exemple
      \vizUCD{table}{col}{!l Absolute magnitude}
      supprime l'utilisation du label pour assigner l'UCD, et ajoute les mots Absolute magnitude pour aider à l'assignation
    • remplacement: par exemple
      \vizUCD{table}{col}{!l=f_data}
      indique que le label pourrait être plutôt désigné sous le nom f_data pour son classement.
    Par exemple VIII/64/.Summary

\vizFilter{ list of tables }{ list of columns } {[ photometric system:filter | *wavelength_column | - - - ]}
La définition du système photométrique et éventuellement le filtre dans ce système peut être indiqué par cette macro (le : sépare le système du filter) par ex. pour le système EIS (J/A+A/379/740/.status)

Pour indiquer qu'un flux (ou magnitude) correspond à une longueur d'onde (ou une fréquence): indiquer le nom de la colonne correspondante par * suivi du nom de colonne. Par exemple: J/PASJ/62/273/.status.

Les tirets --- indiquent que la colonne doit être ignorée pour le tracé de SED (exemple dans J/ApJS/206/10/.status, où la magnitude limite est malencontreusement considérée comme un flux possible)

La liste des systèmes photométriques et filtres se trouve dans la table METAphot.

\viztime{ table }{ column }{ system=... | frame=... | scale=... | offset=... | uncertainty=... | flags=... }
La définition s'applique à une colonne de temps:
  • system: le nom du système tel qu'il existe dans la table METAtimeSystem. Le système regroupe frame+scale. (Lorsque le frame ou le scale n'est pas présent, l'incertitude liée à l'absence du le système est exprimée par une erreur systèmatique).
  • frame: la position de référence telle qu'elle existe dans la table METAtimeFrameRef(ex: BARYCENTER, HELIOCENTER, GEOCENTER, ...)
    Le programme vérifie lors de l'ingestion la compatibilité scale+frame.
  • scale: le nom de l'echelle de temps telle qu'elle existe dans la table METAtimeScaleRef (ex: TT, TAI, TDB, UTC, ...).
    Le programme vérifie lors de l'ingestion la compatibilité scale+frame.
  • offset: offset exprimé en jours depuis la date de référence.
  • uncertainty: erreur de mesure général sur la table (en secondes)
  • flags: flag additionel - ex: START , END
  • rep: itime representation (ex: JD,ISO)

Exemple: I/345 META , I/345 .Summary

Détection automatique à partir de la description des colonnes dans le ReadMe :

  • détection d'une colonne temps de temps à partir du nom de la colonne
    (Date, Time, Epoch, *JD*) et si l'unité est de type 'd' ou 's' ou 'JD' ou 'datime' ou 'Y-M-D,h:m:s'
  • détection de l'offset et du scale dans la description de la colonne ou dans des parentheèses dans la description de la colonne. Exemple:
    • colonne name BJD (scale=BARYCENTRIC, representation JD)
    • HJD-2400000 (scale=HELIOCENTRIC, representation JD, offset=2400000)
    • MJD (representation=MJD)
    • etc
    Exemple J/AJ/155/119

\viztimeRel{ table }{ column }{ table }{ column }
La définition s'applique aux colonnes qui sont liées à une colonne de temps (définie avec la macro \viztime). L'idée est d'indiquer l'axe des ordonnés dans un plot de séries temporelles.
Les premiers paramètres table column définissent la colonne qui peut être utilisée pour l'axe des ordonnés.
Les paramètres table column suivant définissent la colonne temporelle.

Exemple: I/345 META , I/345 .Summary

\vizEpncore{granule_gid=.. | target_name=.. | target_region=.. | target_class=.. | ...}
Voir EPN description.

Exemple: J/ApJ/775/121 .status


6  Pipe-line d'introduction

6.1  newcat

Permet de créer un nouveau catalogue: créer son répertoire, et mettre en place les fichiers associés:

Pour préparer les catalogues issus de l'AAS (préparés par Greg Schwarz), il existe la commande greg_file

6.2  make_public

Avant d'insérer le catalogue dans vizier, il faut le mettre public. Ça se fait avec la commande make_public . (en étant dans le répertoire du catalogue).

6.3  toviz

Voir le programme vizin, lui-même appelé par toviz. L'appel est encore simplifié avec la macro:   2v   qui met dans vizier le catalogue correspondant au répertoire dans lequel on se trouve.

6.4  make__obsolete

(voir aussi la discussion en réunion du mardi)

Un catalogue peut être superseded par une nouvelle version. Rendre un catalogue obsolète consiste en:

Les 2 étapes s'exécutent avec le programme

make_obsolete old_catalog new_catalog

par ex. si l'on se trouve dans le répertoire du vieux catalogue, utiliser make_obsolete . nouveau_catalogue


7  Installation d'un Clone de VizieR

7.1  Installation du squelette

D'une manière générale, le directory /home/francois/EXPORT contient les fichiers de base pour la génération d'un clone. L'arboresence de ce directory, recopié sur le clone dont l'utilisateur est supposé être cds, comprend les sous-répertoires suivants:

Opérations à faire:

  1. (facultatif) Exporter les outils catalogue qui se trouvent dans /usr/clones/Cats : faire un import pour les générer, recopier les fichiers *.tar.gz

  2. Créer l'arborescence de fichiers à copier en faisant un make dans le directory /home/francois/EXPORT ; recopier cette arborescence par exemple à l'aide de
    aclient 130.79.128.13 1649 catar /home/francois/EXPORT/. | tar xvf - . Il faut bien sûr que aclienbt ait été installé auparavant – ça peut se faire avec cdsclient.tar.gz

  3. Pour compiler les programmes, on pourra utiliser
    #### NOTE: /tmp/export.tar.gz copied to ~francois/tmp/export.tar.gz
    ######################################################################
    cd ~/src
    for d in sk sys as4 parfile acut anafile html sgml stdb vizier vizclone; do
      mv $d $d.old
    done
    rcat /tmp/export.tar.gz | tar xvfz -
    rcat /tmp/C.tar | tar xvf -
    
    for d in sk sys as4 parfile acut anafile html sgml stdb vizier vizclone; do
        here=`pwd`; cd $d
        if test -x configure; then
            ./configure -prefix $HOME
        fi
        make
        make install
        cd $here
    done
    

    Note: sur Linux, la compilation nécessite gcc -fwritable-strings. Certains directories contiennent un configure et Makefile.in (faire un ./configure -prefix=$HOME), d'autres un simple Makefile mais avec les variables:
    local_CFLAGS par ex. defini -fwritable-strings sur Linux
    local_LIBSYS par ex. defini –lsocket -lnsl sur Sun

  4. Fichier particulierement important: .clone qui contient les définitions relatives a la liaison VizieR / Clone. Exemple:
    setenv USER cds
    setenv CLONE "-Ucds -PmyPwd"
    setenv VIZIR "-I$HOME/interfaces -SVIZIR -Uasu -Pasu4VizieR"
    setenv RNAME adac               # Name used at CDS (in /usr/clones)
    setenv RLOG1 j                  # Letter used as prefix in archives
    if ($?LANG) then		# Recommended !
        unsetenv LANG
    endif
    
    
    VIZIR indique la façon de se connecter au serveur Sybase principal VizieR. A noter que si cette variable n'est pas définie (par exemple en commentant par un # la définition de VIZIR), la copie des tables se fait par aclient/aserver: l'interrogation est faite a distance, les fichiers de résulats sont compressés avant d'être envoyés.

    RNAME est le nom du sous-directory (derrière /usr/clones) dans lequel sont préparés les fichiers nécessaires au clone.

    Enfin, la variable d'environnement Vroot doit normalement donner la racine de l'installation HTTPD du clone (généralement ~cds/httpd)

7.2  Sous-directory httpd

Ce sous-directory est désigné par $Vroot dans les programmes (variable d'environnement définie dans les fichiers de configuration de HTTPD).

L'arborescence de ce sous-directory est similaire à ce qui se trouve sur la machine vizier, dans le répertoire /usr/httpd. Il y a toutefois un certain nombre de fichiers inportants à configurer:

7.3  Installation du directory /usr/clones/xx

Ce répertoire permet de cloner les fichiers modifiés depuis l'appel précédent; son ossature se trouve dans /usr/clones/skel.tar.gz. Pour générer un nouveau répertoire de clone:

cd /usr/clones
gtar -xvpz --same-owner -f skel.tar.gz     #
génère skel avec les bonnes protections
mv skel xx

Il faut encore rajouter une nouvelle ligne dans /usr/clones/Makefile pour que, toutes les nuits, les fichiers nouveaux relatifs à ce clone soient ajoutés dans le tar correspondant.

7.4  Installation du directory /home/archives./xx

Ce répertoire est destiné a sauvaegarder les logs d'exécution des requêtes sur le clone. Copier les fichiers d'un autre répertoire semblable, et faire les petites modifications qui s'imposent.