Tags:
create new tag
, view all tags

Marche à suivre mise à jour SIMBAD avec COSIM

1.Préparations pour le traitement d’un article


1.a Repérer un article à traiter

Dans SIMBAD, effectuer une recherche par " Reference query ". Dans la barre de recherche " CDS private comment " taper le statut de l’article recherché.

Les différents statuts sont les suivants :

  • =g1= : articles avec tables dans VIZIER à traiter en priorité

  • =g2= : articles avec tables dans VIZIER à traiter mais non prioritaires

  • =g2=+ : articles avec tables dans VIZIER, non prioritaires mais estimés rapides à traiter

  • =s1= : articles sans tables dans VIZIER à traiter en priorité

  • =s2= : articles sans tables dans VIZIER à traiter mais non prioritaires

Les articles sont listé dans l’ordre de publication inversé. De manière générale, il vaut mieux commencer par traiter l’article le plus anciennement publié.


1.b Signaler la prise en charge de l’article

Une fois l’article repéré il faut signaler qu’il est en cours de traitement dans le commentaire de travail.

> maj2

> b BIBcode

> c

Un fichier de texte au format vi s’ouvre. Écrire " En cours XX " à côté du statut dans le commentaire de travail.

XX : initiales du documentaliste


1.c Préparer les données à exploiter

Le commentaire de travail explique ce qu’il y a à faire à partir de cet article et quelles tables exploiter.

Pour pouvoir exploiter cette table, il faut l’extraire dans un fichier. Pour cela, chercher le BIBcode de l’article dans Vizier et ouvrir la table. Cocher les données d’intérêt (en fonction du commentaire de travail) et le format d’extraction " |-Separetes-Values ". Penser à demander un nombre illimité de lignes. Enregistrer la table et la mettre en forme en supprimant les lignes inutiles.

En général, on l’enregistre sous le nom " table" à l’adresse : Documents/catalogues/*_BIBcode.

* étant le statut de l’article.



2.Création du parfile avec awk


Un script de commande est écrit et traité avec awk – un langage notamment utilisé pour l’extraction de data, afin de créer un fichier parfile qui sera le fichier de commandes pour COSIM. Le script initial est généralement enregistré sous le nom « script » dans le document correspondant au BIBcode.

2.a Paragraphe "BEGIN"

Le parfile pour COSIM doit contenir obligatoirement une première ligne contenant le BIBcode, suivie d'une ligne blanche. On écrira si nécessaire les options du script dans ce paragraphe, à la suite de la ligne contenant le BIBcode.

BEGIN{

print ".B BIBcode "

print ""

}

2.b Paragraphes du fichier d'entrée

Les commandes pour COSIM sont écrites dans ce paragraphe. A des fins de clarté du script, et pour ne rien oublier, on peut l'organiser de la façon suivante :

{

a =substr($0,colonne_début_a,nombre_caractères_a)

b=substr($0,colonne_début_b,nombre_caractères_b)

c = a+b

print "%Y " c " précisions et BIBcode "

print ""

}

Le premier sous paragraphe défini t les différentes variables. Dans cet exemple, on définit les variables a et b qui contiennent respectivement les colonnes A et B de la table de départ.

Le second décrit les opérations que awk devra effectuer. Ici, on lui demande de considérer que la variable c correspond au résultat de l’addition des variables a et b.

Le troisième paragraphe est le passage à l'édition des variables, avec des commandes print, dans le format attendu par le programme COSIM. Y est le type de donnée que renseigne c (identifiant, magnitude etc … ). On ajoute à la suite d’éventuelles précisions sur la donnée et le BIBcode de l’article traité.

Les commandes correspondant à chaque type de donnée sont référencée s dans le manuel de COSIM. Les précisions à ajouter pour chaque type de donnée sont disponible s dans les commandes de mise à jour.

2.c Création du parfile

Une fois le script écrit, on crée le fichier parfile.

>awk -f script table >parfile

Si une erreur dans le script le rend incompréhensible, l'opération est arrêtée et un message d'erreur s'affiche.

3.Lecture du parfile par COSIM et analyse des résultats

3.aLecture du parfile par COSIM

Le fichier parfile créé doit ensuite être lu par COSIM.

> cosim parfile

Les fichiers "parfile.stat" et "parfile.out" sont créés.

Le fichier parfile.stat est une vue d’ensemble de la mise à jour que fera COSIM. Le premier paragraphe liste les différents problèmes qui ont été rencontrés, pour que la mise à jour soit optimal il doit être vide. Les paragraphes suivants décrivent les éventuels conflits, identifications inexistantes dans SIMBAD, etc … Le dernier paragraphe résume le nombre d’objets retrouvés par leur identifiant ou leurs coordonnées, les nombre d’objets qui seront créés, et le nombre de mise à jour rejetée.

Le fichier parfile.out est le fichier de commande des mises à jour. On peut y trouver plus de précisions sur les problèmes repérés dans le parfile.stat. On effectue alors les corrections dans le script.


3.bProblèmes rencontrés par COSIM

Voici une petite liste non exhaustive des problèmes fréquemment rencontrés lors du passage du parfile dans COSIM :

  • Incorrect ID : Les formats des noms d’objets dans SIMBAD sont normés et COSIM n’acceptera pas d’y entrer un nom qui n’est pas au bon format . Pour régler le problème il faut corriger les identifiants ; pour cela, il faut s’aider du d ictionnaire de nomenclatur e. Le nom invalide qui a été entré dans la table par l’auteur est enregistré comme identifiant secondaire.

  • Incorrect coo :Attention à bien écrire la commande de print des coordonnées et de bien mettre des espaces entre chaque terme.

3.cRésolution des « Display »

Le calcul des scores par COSIM est expliqué dans l e manuel de COSIM

COSIM met à jour les un objet avec les données entrées lorsqu’il y a un et un seul candidat « GOOD » pour un objet du script. Si tous les candidats sont « BAD », il créé un nouvel objet. Dans les autres cas, les objets sont mis en « display » et c’est au documentaliste de décider de ce qu’il convient de faire. Pour cela, il faut comprendre la raison pour laquelle l’objet a été mis en «display » et chercher comment résoudre le problème.

Pour limiter le nombre de « display » un maximum de données telles que les noms, les coordonnées, les types d’objet etc … doivent être renseignées dans le script. Les recherches à effectuer se font à l’aide du logiciel ALADIN.

Voici une liste non exhaustive de quelques cas de « display » fréquents et l’attitude à adopter.

  • Le nom de l’objet n’est pas connu et plusieurs objets similaires sont proches

Si malgré cela l'objet n'est toujours pas reconnu, on essaie de l’identifier nous-même, en utilisant notamment ALADIN et les données et précisions de l'objet supposé cible (date et précision des coordonnées dans SIMBAD, vitesse de l'objet etc … ) pour l'identifier. Ne pas hésiter à demander de l'aide. Une fois que l'on est certain de l'identité de l'objet cible deux solutions s'offrent à nous.

  • Entrer manuellement le nouvel identifiant de l'objet dans SIMBAD :

> maj2

> o id_cible

> a i id_table

> v

L'objet devrait maintenant être identifié par son identifiant lors de la mise à jour.

  • Attribuer l'identifiant de l'objet cible dans le script de création du parfile, et ajouter l'identifiant de la table en identifiant secondaire.

i f (id~/^id_ table *$/)

print "%I.0 id_cible"

print "%I.R id_table"

else print "%I.0 id_table"

C ette deuxième solution est à privilégier pour pouvoir garder une trace facilement repérable de ce qui a été fait lors de la mise à jour.

  • Les objets trouvés par COSIM sont trop éloignés

Le score des coordonnées calculé par COSIM dépend de la qualité des coordonnées de l’objet dans SIMBAD et de l’objet de la table. Ce calcul est décrit en détail dans le manuel de COSIM. Il arrive que l’objet cible soit donc rejeté à cause de la trop bonne qualité de ses coordonnées SIMBAD par rapport à ses coordonnées dans la table.

On vérifie à l’aide d’ALADIN et en comparant les différentes données des deux objets qu’il s’agit bien du même objet. Si c’est bien le cas, deux solutions existent pour que COSIM reconnaisse l’objet cible.

  • Modifier les valeurs entre lesquelles le score est considéré comme médium. Ces valeurs sont par défaut 0 et 1. Pour que les coordonnées d’un objet cible dont le score est entre a et b soit considéré comme bon, on écrit l’option suivante :

print «.COO a,b »
  • Borner les σ dans le calcul du score des coordonnées. Les valeurs inférieur à la borne minimum prendront la valeur de cette borne, les valeurs supérieurs à la borne maximum prendront la valeur de la borne maximum. Cette option s’écrit de la façon suivante :

print «.SIGMA COO min,max »

Attention, ces options s’appliqueront à tous les objets de la table, il faut d’abord s’assurer que cela ne va pas engendrer d’erreur sur d’autre objets.

  • Possible Merge

COSIM indique que deux objets SIMBAD sont potentiellement un seul et même objet.

Il faut absolument vérifier à l’aide d’ALADIN, des identifiants des données des deux objets, et éventuellement de l’avis d’un astronome. Cette suggestion est souvent faite par COSIM dans le cas des étoiles multiples ou d’objets très proches mais bien distincts. Il est préférable de ne rien faire dans le doute plutôt que de fusionner deux objets par erreur.

Si après vérifications il s’avère que les deux objets sont effectivement à fusionner, la commande suivante est utilisée :

> maj2

> mp id_source , id_cible

Les données de la source seront copiées dans la cible.

Si les deux objets sont distincts, il faut indiquer dans le script à quel objet de SIMBAD COSIM doit associer les données d’un objet donné de la table. Par exemple, si la table contient un objet a correspondant à un objet b dans SIMBAD mais que COSIM ne le reconnaît pas, on écrit la commande suivante dans le script :

if (id~/^a *$/)

print “%I.0 b”

On prend soin de vérifier que a apparaîtra en raw-id et non b. Pour cela, si ce n'était pas déjà fait, on ajoute la ligne "%I.R".

  • Already connected

Ce message signifie qu'un objet cible de SIMBAD est déjà associé à un objet de la table. On vérifie sur ALADIN que les deux objets associés sont bien les même en affichant la table et SIMBAD dans ALADIN Si c'est le cas, on utilise l'option :

Print ".OK ALREADY CONNECTED"

Cette option est à mettre en place une fois que tout le reste du script est vérifié et corrigé, en effet, de nouvelles corrections pourraient apporter de nouveaux "already connected" qu'il faut vérifier.

4.Mise à jour dans SIMBAD

4.aCréation du script “Auteur_bye”

Une fois que tous les objets donnent lieu à des commandes de mise à jour (c'est à dire quand il n'y a plus de "DISPLAY"), on peut créer un script de commande de mise à jour “brouillon”.

> script_maj parfile.out >auteur_bye

4.bVérifications et corrections éventuelles

On vérifie les commandes de ce script et notamment les données qui sont ajoutées et changée dans SIMBAD .

La commande suivante affiche les trois premiers caractères des lignes de commande du script auteur_bye. Elle permet de vérifier le type de mise à jour qui sera fait.

> acut -c1-3 auteur_bye | sort | uniq -c | less

Enfin, la commande ci-dessous affiche les lignes de commandes commençant par c ou a dans le script auteur_bye, afin de voir quelles données seront ajoutées ou supprimée.

> grep ‘^[ca] ‘ auteur_bye | sort | uniq -c | less

Les commandes peuvent être modifiées dans le fichier vi de la manière suivante

1,$ s/à_modifier/modification

Elles peuvent aussi être désactivée en ajoutant en point d’exclamation en début de ligne.

On vérifie ensuite que le script est compréhensible par SIMBAD. On utilise une fenêtre de mise à jour ouverte dans le dossier de la référence.

> maj2

> >+ log_auteur_bye

> < auteur_bye

Une simulation de la mise à jour se fait alors. A la fin de la simulation, les éventuelles erreurs s’affichent. Il s’agit souvent de commandes mal écrites au niveau de leur syntaxe ou de référence déjà présente dans certains objets.

4.cCréation du script "Auteur_maj"

Lorsque l'on est sûr du script Auteur_bye, on y remplace les commandes

bye!

par des commandes

v

A partir de maintenant chaque modification ou ajout sera sauvegardé.

On change le nom du fichier auteur_bye en auteur_maj de la façon suivante :

> mv auteur_bye auteur_maj

4.dMise à jour

Lorsque l’on est sûr de notre script on crée d'abord une sauvegarde de la mise à jour.

> maj2

> >+ log_auteur_maj

Puis, on peut procéder à la mise à jour.

> < Auteur_maj

Les éventuelles erreurs rencontrées sont encore une fois listées à la fin de la procédure.

Il est toujours bon de vérifier dans SIMBAD pour un objet au hasard que les mises à jour ont bien été faites correctement.

5."Validation" de l'article

C ette étape peut être faite directement après le traitement d'une référence ou de manière groupée de temps en temps celons les préférences du documentaliste.

5.a Vérifications

On vérifie une dernière fois que tout s'est bien passé lors de la mise à jour. Notamment en :

  • Relisant le commentaire de travail pour s'assurer qu'on a bien mis à jour toutes les données demandées

  • Vérifiant quelques objets au hasard (la référence a-t-elle été ajoutée, les mises à jour on elles été faites?)

  • Comparant le nombre d'objets attachés à la référence dans SIMBAD et le nombre d'objets cité dans la ou les tables liées à cette référence

5.bPersonnes à prévenir

Par soucis d'organisation pour les équipes à prévenir, il est préférable de ne pas leur envoyer les tâches à faire une par une, mais d'attendre d'en avoir quelques unes et de les envoyer dans un même mail. On peut décrire les tâche à effectuer dans un fichier propre à chaque table.

Si la table ne comportait pas de colonne directement reconnue par SIMBAD et qu'il a fallu mettre en forme les identifiant (par exemple une partie d'un acronyme), on prévient l'équipe VIZIER que le "SIMBAD name " est à ajouter à la table et on explique ou le trouver (par exemple décrire la mise en forme d'une colonne en particulier).

Lorsqu'un acronyme a été complété par l'une des mise à jour faite (vérifier dans le dictionnaire), il faut prévenir l'équipe du dictionnaire.

5.cModification du commentaire de travail

De la même façon que l'on a signalé que l'on prenait l'article en charge, on signale qu'il est traité en modifiant le commentaire de travail. On remplace "=statut= En coursXX" par "(statutXX)".

5.dClassement du fichier

Il faut d'abord compresser les fichier du répertoire en effectuant la commande :

> gzip *

* signifie que tous les fichiers du dossier seront compresser, on peut préciser le nom d'un seul fichier à la place pour ne compresser que celui-là. On peut toujours décompresser les fichiers avec la commande :

> gunzip *

On peut ensuite déplacer le répertoire de la référence dans un répertoire "traité".

6.Tips

6.aUtilisation des champs

Pour gagner du temps, il est possible de définir les variable par champs plutôt que par numéro de colonne. Pour cela, dans le paragraphe "BEGIN", on écrit :

FS = "|"

Le caractère "|" sera le séparateur de champs (par défaut le séparateur de champ est le caractère espace). On peut maintenant définir les variables de la façon suivante :

A = $1

La variable A est défini comme l'ensemble des caractères du champs 1, vides inclus.

6.bAppliquer le programme à partir d'une ligne précise

Pour des raison de lisibilité, on peut souhaiter laisser les titres des variables dans la table. Si le programme est appliqué sur ces lignes ils les reconnaîtra pas comme des objet et s'arrêtera de tourner. On peut donc lui demander de commencer à parti d'une certaine ligne en écrivant avant le début du programme :

(NR>X){

Ainsi, le programme s'appliquera à partir de la ligne X+1.

6.cCharger une table dans ALADIN

Écrire le BIBcode de l'article dans le champs de recherche "sélect" et chercher dans toutes les collections. Les différentes tables disponibles de l'article s'affichent, sélectionner la table désirée et la charger. Supprimer les filtres en cliquant sur l’icône en bas à gauche. Chercher une image disponible (affichée en vert) dans le catalogue d'image).

6.dVisualiser des objets de la table dans ALADIN

S'il y a de nombreux objets de la table à visualiser dans ALADIN, cela peut prendre du temps de les chercher un par un. Il existe la possibilité de chercher une liste d'objets.

Si par exemple, on veut visualiser tous les objets en DISPLAY, on écrit dans le terminal

> grep '^!= DISPLAY :' | less

Coller les lignes dans un fichier et le mettre en forme pour qu'il ne reste plus que les coordonnées des objets. Enregistrer le fichier.

Dans ALADIN sélectionner Outil>Macros… Dans le champs "Type or load macro script" écrire

$1

Puis faire un Ctrl+P et sélectionner le fichier contenant les coordonnées.

Sélectionner la première coordonnée et exécuter les paramètres courants. Pour passer à l'objet suivant exécuter les prochains paramètres.

Topic revision: r4 - 2019-11-15 - CatherineBrunet
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback