2 méthodes sont disponibles dans VizieR pour générer des graphes.
Le document traite uniquement de la méthode utilisant le pseudo-SQL pour extraire des données. La méthode peut s'appliquer aux fichiers FITS, TSV, ASCII ou depuis une commande SHELL.
SELECT expression1, expression2, ... FROM ressource WHERE conditions
Où:
expression | : expression arithmétique constituée par des noms de colonnes. Une colonne peut être désignée par son numéro de colonne: $i (i-ème colonne) |
ressource | : le nom de la ressource entouré par des doubles-quotes: un fichier ASCII, TSV, FITS ou une commande SHELL |
conditions | : Condition d'extraction de la donnée |
Exemple:
Sélection des 2 premières colonnes du fichier 'fichier.fits' lorsque la
valeur de la premi\ère colonne est inférieur à 10:
SELECT $1,$2 FROM "fichier.fits" WHERE $1<10Sélection des colonnes RAW, FLUX, ERRFLUX du fichier 'fichier.fits' lorsque la valeur ERRFLUX est inérieur à 0.1:
SELECT RAW, FLUX, ERRFLUX FROM "fichier.fits" WHERE ERRFLUX < 0.1Sélection de 2 colonnes calculés à partir des 2 premi\ères colonnes du fichier 'fichier.fits':
SELECT ($1+2)*10, $1+$2 FROM "fichier.fits"
Notes: on peut:
SELECT $1,$2 FROM "fichier.fits" WHERE $1 < 10 AND $3=0
SELECT f.$1, g.$2 FROM "fichier1.tsv" f, "fichier2.tsv" g WHERE f.$1=g.$1
SELECT $1, $2 FROM "asu -source=II/246/out -c=0+0 -c.rm=1"
SELECT .... from "transpose(fichier.dat)"
\vPlot{catalogue}{fichier_sql}{options}{column_value} | Graphe |
\vplot{catalogue}{fichier_sql}{options}{column_value} | Graphe |
\vPlotTS{catalogue}{fichier_sql}{options}{column_value} | Time serie exécuté sur le serveur (cas 1) |
\vplotTS{catalogue}{fichier_sql}{options}{column_value} | Time serie exécuté sur le serveur (cas 2) |
Explications des arguments:
catalogue | : nom du catalogue (ex: II/246) |
fichier_sql | : nom du fichier SQL (ex: graph) |
options | : liste de paramètres séparés par des & (ex:file=file.dat&id=1) |
Notes concernant les options:
param=value | : modifie les variables ${param} du fichier SQL par value |
Exemple:
\vplotTS{@{@cat}}{graph1}{corot=@{CoRoT}&file=files/@{*FileName}}{}
set Title=...Exemple B/corot graphe
set Period=...Exemple J/AJ/145/39 graphe
set Center=...
set Filter=...
Il s'agit de valeurs identifiées par ${...} du fichier SQL. Elles peuvent
être modifiées par la commande \vPlot du fichier ".statut"
par le paramètre {options}.
La syntaxe du fichier ".status" authorise l'utilisation des valeurs de colonne
(ex: recno=${recno}, dans ce cas la colonne recno).
La définition de la colonne Plot dans le fichier .Summary modifie les valeur corot et file du fichier SQL .graph1 par les valeurs des colonnes de la table.
\vizLink{ astero }{ Plot }{ Plot }{ \vizContent{timeSerie}\vPlotTS{@{@cat}}{.graph1}{corot=@{CoRoT}&file=files/@{FileName}}{plot}}{ Plot the time serie }
Fichier SQL ".graph1"
set Title=CoRoT ${corot} corot:-y:SELECT f.$1.DATEJD, f.$1.RAWFLUX from "${file}" f where RAWSTATUS=0
Note: les variables peuvent être utilisées dans tout le fichier SQL: ce qui comprend les valeurs du titre, période, etc.
Syntaxe
titre1:SELECT ..... titre2:SELECT .....
colonne ajoutée (fichier .Summary)
\vizLink{ exo }{ Plot1 }{ Plot1 }{ \vizContent{timeSerie}\vPlotTS{@{@cat}}{.graphexo}{corot=@{CoRoT}&file=files/@{FileName}}{plot}}{ Plot the time serie }
Fichier SQL ".graphexo"
set Title=CoRoT ${corot} set Filter=red white: select f.$1.$2, f.$1.$8 from "${file}" f where $4=0 red: select f.$1.$2, f.$1.$5 from "${file}" f where $4=0 green: select f.$1.$2, f.$1.$6 from "${file}" f where $4=0 blue: select f.$1.$2, f.$1.$7 from "${file}" f where $4=0
Dans l'exemple ci dessus, l'instruction "set Filter" a pour but de n'afficher que le plot correspondant à la ligne commencant par "red".
la commande set permet de créer un alias.
Exemple III/185 graph (serveur) graph (client)
colonne ajoutée (fichier .Summary)
\vizLink{ stars }{}{Plot}{+\vizContent{timeSerie}\vPlotTS{${$cat}}{.graph1}{HR=${HR}}{plot} }{plot}
Fichier SQL ".graph1"
set asu="asu -source=III/185/table1 -out=JD-2440000,RV,e_RV" Light_curves: SELECT $1 as 'JD-2440000', $2 as 'V[m/s]', $3 as err FROM "${asu} HR==${HR}"
Pour cela, on utilise le paramètre option de la command vplot du fichier .status:
\vPlot{@{@cat}}{.graph_sql}{Name=@{Name}&Per=@{*Per}}{LC}La variable Per est utilisée ensuite dans le fichier SQL:
Set Period=${Per}
Example J/AJ/145/60 graphe
\ifmatch{[0-9]*}{@{*Per}}\vPlotTS{@{@cat}}{.graph_sql}{LRL=@{LRL}&m_LRL=@{m_LRL}&Per=@{*Per}}{LC}\else \vPlotTS{@{@cat}}{.graph_sql}{LRL=@{LRL}&m_LRL=@{m_LRL}&Per=0}{LC}\fi
Example J/AJ/145/66 graphe
Dans l'exemple suivant, le titre est construit a l'aide du nom de l'objet qui est donné par la colone Name. Lorsque la valeur de la colonne Name est un nombre, il s'agit d'un numéro HD.
\ifmatch{[0-9]*}{@{Name}} \vPlotTS{@{@cat}}{.graph_sql}{Name=@{Name}&STAR=HD}{VP}\else \vPlotTS{@{@cat}}{.graph_sql}{Name=@{Name}&STAR=}{VP}\fiExample J/ApJS/210/5 graphe
Syntaxe
titre:SELECT \$1 FROM resource1 titre:SELECT \$2 FROM resource2
Exemple J/A+A/558/A18 graph
colonne ajoutée (fichier .status)
\vizLink{ table2 }{ Plot }{ Plot }{ \vizContent{timeSerie}\vPlotTS{@{@cat}}{.graph1}{file=@{*FileName}}{plot}}{ Plot the time serie) }
Fichier SQL ".graph1"
set fits=fits2a -x 1 -par /home/cats/J/A+A/558/A18/sp/ spectrum: SELECT $1 as 'v(km/s)' from "transpose(${fits}${file}| egrep VLSR)" f spectrum: SELECT $1 as 'T(K)' from "transpose(${fits}${file}| egrep DATA)" g
Syntaxe
set cst=`comande shell` sql:select ${cst}*$1,$2 FROM ....
Exemple: catalogue RAM30m reduced spectra of 59 sources (Gerner+, 2014)
colonne ajoutée (fichier .status)
\vPlot{@{@cat}}{.graph1}{file=@{sp}}{plot}
Dans l'exemple suivant, les valeurs v0 et nu0 sont calculés avec la commande fits.
Fichier SQL ".graph1"
set v0=`fits2a -TOC ${file} | fgrep "VELO-LSR" | acut -c10-20` set nu0=`fits2a -TOC ${file} | fgrep "RESTFREQ" | acut -c10-30` graph:SELECT ${v0}-$1*(299792458/${nu0}/1000),$2 FROM "${file}"
Exemple graphe
Exemple: voir section
L'instruction "fits2a -x 1 -par /home/cats/J/A+A/558/A18/sp/${file}" récupère les données du fichier fits.
L'instruction "${fits}| egrep VLSR" filtre le précédent résultat en n'afichant que la ligne VLSR.
L'instruction "transpose(${fits}| egrep VLSR)" transforme la ligne du résultat précédent en une colonne.
Exemple
set Counter=True graphe_label:select COUNTER as n , $1 from ... qui renvoie quelque chose du genre 1 val1 2 val2 3 val3 ....
La variable COUNTER peut être incluse dans une expression arithmétique:
graphe_label:select COUNTER*2 as n , $1 from ... qui renvoie quelque chose du genre 2 val1 4 val2 6 val3 ....
Autre exemple
... Set Counter=true ... graph:SELECT 36.499-(${f0}+(COUNTER-1)*${df})*(299792458/${nu0}/1000) as 'V[km/s]', $2 as 'T[K]' FROM "${file}"
Exemple J/A+A/564/A99 graphe
Il est possible de forcer l'utilisation d'un label en utilisant le mot clé SQL: AS.
Exemple:
titre: SELECT $1 AS 'titre abscisse', $2 AS 'titre ordonnees
Exemple:
titre:-b:SELECT ....
Les couleurs:
Abv | color |
k | black |
m | magenta |
v | viollet |
b | blue |
c | cyan |
G | dark green |
g | green |
R | dark red |
r | red |
y | orange |
Les tracés:
- | les points sont reliés par des traits |
. | un point |
o | un gros point |
* | une étoile |
+ | un plus |
Le programme vizgraph utilise le même script (vizgraph.py)
que les pages WEB décrites à la section Interrogation WEB.
La commande vizgraph exécute le fichier SQL et retourne le
résultat au format TSV. Le programme permet en outre de visualiser la commande
AWK générée puis exécutée.
Enfin, l'argument '-d' permet d'afficher des messages de debuggage.
Exécution du fichier SQL:
vizgraph fichier_sql
La même commande utilisant un script SQL contenant des variables ${..} à
substituer:
(toutes les chaînes ${param} du fichier SQL sont remplacées par
value)
vizgraph fichier_sql param=value
La commande de base, sans arguments, affiche l'aide en ligne ainsi que les fichiers graphes présents dans le répertoire:
vizgraph
Relation entre l'outil et les métadonnées
Le schéma suivant montre les relations entre le fichier .status, le fichier SQL et l'interrogation WEB.
Example:
vizgraph -i sp .graph_sqlDans l'exemple le programme genere des imagettes a partir des fichiers qui sont sous le repertoire "sp".
Limitations:la creation d'imagette se limite a generer des fichiers a partir de resources de type fichiers (FITS, ASCII, mais PAS de commade ASU). De plus, la creation est possible que s'il existe 1 ressource dans la partie FROM de la requete SQL (donc PAS de jointure).
Options de sorties: le processus cree des imagettes au format PNG. Il est possible de borner l'axe des abscisses dans le fichier SQL:
set Icon-xmax=... set Icon-xmin=...
Example:
set Title=Spectrum ${FITSfile1} set Icon-xmin=4000 set Icon-xmax=7000 spectrum:-g:SELECT $1 as '10e19 W/m2/A',$2 FROM "fits/${FITSfile1}"