Difference: SimbadClean (1 vs. 29)

Revision 292020-12-23 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
Changed:
<
<
    • Options : -h simrd -U smbmgr -d simbad4b
>
>
    • Options : -h simrd -U smbmgr -d simbad -p 5433
 
  1. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  2. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  3. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  4. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  5. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
Changed:
<
<
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)
>
>
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)
2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C
 
Deleted:
<
<
2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C
 3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
Changed:
<
<
  • Extraire la liste des liens dans la base :
>
>
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
Deleted:
<
<
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
 
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):
Added:
>
>
exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/
 
Changed:
<
<
exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/
>
>
exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27
 
Deleted:
<
<
exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27
 
  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
Changed:
<
<
  • Dans la table bib_ref : nbpages = last_page - page +1
>
>
  • Dans la table bib_ref : nbpages = last_page - page +1
 
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
Changed:
<
<
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
>
>
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
 7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
Changed:
<
<
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
>
>
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
 
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:
Changed:
<
<
>
>
select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;
Deleted:
<
<
select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;
 

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1472028623" name="clean_author.sql" path="clean_author.sql" size="13967" user="JorisVigneron" version="7"
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="changements de select des table pour éviter les tables temporaires + TAP" date="1523881003" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4522" user="AnaisOBERTO" version="6"
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1472219907" name="Cat_clean.sql" path="Cat_clean.sql" size="1135" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="exo.sh" attr="" comment="" date="1472220336" name="exo.sh" path="exo.sh" size="1351" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="exo2.sh" attr="" comment="" date="1472220336" name="exo2.sh" path="exo2.sh" size="1347" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="clean_bibcode.2018.list" attr="" comment="Liste des bibcodes non résolus" date="1523881437" name="clean_bibcode.2018.list" path="clean_bibcode.2018.list" size="56718" user="AnaisOBERTO" version="1"

Revision 282018-04-16 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1472028623" name="clean_author.sql" path="clean_author.sql" size="13967" user="JorisVigneron" version="7"
Changed:
<
<
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="changements de quelques affichages" date="1472046252" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4401" user="AnaisOBERTO" version="5"
>
>
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="changements de select des table pour éviter les tables temporaires + TAP" date="1523881003" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4522" user="AnaisOBERTO" version="6"
 
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1472219907" name="Cat_clean.sql" path="Cat_clean.sql" size="1135" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="exo.sh" attr="" comment="" date="1472220336" name="exo.sh" path="exo.sh" size="1351" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="exo2.sh" attr="" comment="" date="1472220336" name="exo2.sh" path="exo2.sh" size="1347" user="JorisVigneron" version="1"
Added:
>
>
META FILEATTACHMENT attachment="clean_bibcode.2018.list" attr="" comment="Liste des bibcodes non résolus" date="1523881437" name="clean_bibcode.2018.list" path="clean_bibcode.2018.list" size="56718" user="AnaisOBERTO" version="1"
 

Revision 272016-08-26 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1472028623" name="clean_author.sql" path="clean_author.sql" size="13967" user="JorisVigneron" version="7"
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="changements de quelques affichages" date="1472046252" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4401" user="AnaisOBERTO" version="5"
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
Changed:
<
<
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1471333273" name="Cat_clean.sql" path="Cat_clean.sql" size="1489" user="JorisVigneron" version="2"
>
>
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1472219907" name="Cat_clean.sql" path="Cat_clean.sql" size="1135" user="JorisVigneron" version="3"
Added:
>
>
META FILEATTACHMENT attachment="exo.sh" attr="" comment="" date="1472220336" name="exo.sh" path="exo.sh" size="1351" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="exo2.sh" attr="" comment="" date="1472220336" name="exo2.sh" path="exo2.sh" size="1347" user="JorisVigneron" version="1"
 

Revision 262016-08-24 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1472028623" name="clean_author.sql" path="clean_author.sql" size="13967" user="JorisVigneron" version="7"
Changed:
<
<
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1471950796" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4401" user="JorisVigneron" version="4"
>
>
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="changements de quelques affichages" date="1472046252" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4401" user="AnaisOBERTO" version="5"
 
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1471333273" name="Cat_clean.sql" path="Cat_clean.sql" size="1489" user="JorisVigneron" version="2"

Revision 252016-08-24 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
Changed:
<
<
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1471942177" name="clean_author.sql" path="clean_author.sql" size="14157" user="JorisVigneron" version="6"
>
>
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1472028623" name="clean_author.sql" path="clean_author.sql" size="13967" user="JorisVigneron" version="7"
 
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1471950796" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4401" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1471333273" name="Cat_clean.sql" path="Cat_clean.sql" size="1489" user="JorisVigneron" version="2"

Revision 242016-08-23 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1471942177" name="clean_author.sql" path="clean_author.sql" size="14157" user="JorisVigneron" version="6"
Changed:
<
<
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1471333285" name="clean_bibcode.sql" path="clean_bibcode.sql" size="3787" user="JorisVigneron" version="3"
>
>
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1471950796" name="clean_bibcode.sql" path="clean_bibcode.sql" size="4401" user="JorisVigneron" version="4"
 
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1471333273" name="Cat_clean.sql" path="Cat_clean.sql" size="1489" user="JorisVigneron" version="2"

Revision 232016-08-23 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
Changed:
<
<
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1471333273" name="clean_author.sql" path="clean_author.sql" size="14158" user="JorisVigneron" version="4"
>
>
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1471942177" name="clean_author.sql" path="clean_author.sql" size="14157" user="JorisVigneron" version="6"
 
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1471333285" name="clean_bibcode.sql" path="clean_bibcode.sql" size="3787" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1471333273" name="Cat_clean.sql" path="Cat_clean.sql" size="1489" user="JorisVigneron" version="2"

Revision 222016-08-16 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
Changed:
<
<
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="ajout des SELECT exactement sur les UPDATE" date="1470991689" name="clean_author.sql" path="clean_author.sql" size="11960" user="AnaisOBERTO" version="3"
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="qq Corrections" date="1470837200" name="clean_bibcode.sql" path="clean_bibcode.sql" size="2345" user="AnaisOBERTO" version="2"
>
>
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1471333273" name="clean_author.sql" path="clean_author.sql" size="14158" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1471333285" name="clean_bibcode.sql" path="clean_bibcode.sql" size="3787" user="JorisVigneron" version="3"
 
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
Changed:
<
<
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1470925421" name="Cat_clean.sql" path="Cat_clean.sql" size="1144" user="JorisVigneron" version="1"
>
>
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1471333273" name="Cat_clean.sql" path="Cat_clean.sql" size="1489" user="JorisVigneron" version="2"
 

Revision 212016-08-12 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
Changed:
<
<
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1470658560" name="clean_author.sql" path="clean_author.sql" size="8954" user="JorisVigneron" version="1"
>
>
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="ajout des SELECT exactement sur les UPDATE" date="1470991689" name="clean_author.sql" path="clean_author.sql" size="11960" user="AnaisOBERTO" version="3"
 
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="qq Corrections" date="1470837200" name="clean_bibcode.sql" path="clean_bibcode.sql" size="2345" user="AnaisOBERTO" version="2"
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1470925421" name="Cat_clean.sql" path="Cat_clean.sql" size="1144" user="JorisVigneron" version="1"

Revision 202016-08-11 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

3) Normaliser le champ flag des références:

  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1470658560" name="clean_author.sql" path="clean_author.sql" size="8954" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="qq Corrections" date="1470837200" name="clean_bibcode.sql" path="clean_bibcode.sql" size="2345" user="AnaisOBERTO" version="2"
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
Added:
>
>
META FILEATTACHMENT attachment="Cat_clean.sql" attr="" comment="" date="1470925421" name="Cat_clean.sql" path="Cat_clean.sql" size="1144" user="JorisVigneron" version="1"
 

Revision 192016-08-10 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
Changed:
<
<
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
>
>
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors afficher le bibcode +
Added:
>
>
    • si la table est basic_data alors afficher la valeur de la colonne id_princ (faire un SELECT qui va bien)
    • si la table n'est pas basic_data alors afficher toutes les valeurs de la ligne concernée (si possible mise en forme comme SQL avec des pipes)
 
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
Changed:
<
<
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
>
>
  • Si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref :
Added:
>
>
    • essayer de retrouver le bon bibcode en recherchant sans le dernier caractère, s'il y a qu'un seul bibcode au résultat de la requête : alors faire le remplacement, par exemple : (Attention, si le nombre de lignes de retour du SELECT ci dessous est 0, alors ne rien faire, et si plus que 1, ne rien faire non plus)

2003yCat.2246....0. --> select bibcode from bib_ref where bibcode like '2003yCat.2246....0%'; --> 2003yCat.2246....0C

 3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1470658560" name="clean_author.sql" path="clean_author.sql" size="8954" user="JorisVigneron" version="1"
Changed:
<
<
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1470752508" name="clean_bibcode.sql" path="clean_bibcode.sql" size="1958" user="JorisVigneron" version="1"
>
>
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="qq Corrections" date="1470837200" name="clean_bibcode.sql" path="clean_bibcode.sql" size="2345" user="AnaisOBERTO" version="2"
 
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"

Revision 182016-08-10 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1470658560" name="clean_author.sql" path="clean_author.sql" size="8954" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1470752508" name="clean_bibcode.sql" path="clean_bibcode.sql" size="1958" user="JorisVigneron" version="1"
Added:
>
>
META FILEATTACHMENT attachment="fill_nbpages.sql" attr="" comment="" date="1470828827" name="fill_nbpages.sql" path="fill_nbpages.sql" size="1601" user="JorisVigneron" version="1"
 

Revision 172016-08-09 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base : select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):

exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1470658560" name="clean_author.sql" path="clean_author.sql" size="8954" user="JorisVigneron" version="1"
Added:
>
>
META FILEATTACHMENT attachment="clean_bibcode.sql" attr="" comment="" date="1470752508" name="clean_bibcode.sql" path="clean_bibcode.sql" size="1958" user="JorisVigneron" version="1"
 

Revision 162016-08-08 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base :
Changed:
<
<
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter, voir exemple):
http://exoplanet.eu/catalog/HD%2073526_c/
>
>
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter):
Added:
>
>
exoplanet{HD 7356}{c} -> http://exoplanet.eu/catalog/HD%2073526_c/

exosun{eps Eridani} -> http://exoplanet.eu/catalog/?f=star_name=%27eps%20Eridani%27

 
  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
Added:
>
>
6) Remplissage de la colonne nbpages
  • Dans la table bib_ref : nbpages = last_page - page +1
    • Vérifier qu'on a une valeur pour les 2 champs pour faire le calcul (compter et afficher le nombre des différents cas possibles)
    • Vérifier qu'on a pas une valeur négative => alors lister les bibcodes concernés
7) Nettoyage des mesures désuètes : iras, irc, sao, cl.g, gj
  • Dans les catalogues IRAS, IRC, SAO, CL_G, GJ :
    • Supprimer les liens avec la table basic_data dans la table has_measurement sur ces tables:

select cat_name from has_measurements join cat on oidcatref=oidcat where oid4ref = 3952164 ;

 

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1470658560" name="clean_author.sql" path="clean_author.sql" size="8954" user="JorisVigneron" version="1"

Revision 152016-08-08 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base :
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter, voir exemple):
http://exoplanet.eu/catalog/HD%2073526_c/
  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
Added:
>
>
META FILEATTACHMENT attachment="clean_author.sql" attr="" comment="" date="1470658560" name="clean_author.sql" path="clean_author.sql" size="8954" user="JorisVigneron" version="1"
 

Revision 142016-08-08 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base :
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter, voir exemple):
http://exoplanet.eu/catalog/HD%2073526_c/
  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
Changed:
<
<
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="ajout de noms de colonnes + verification à chaque pas" date="1470399332" name="flags_clean.sql" path="flags_clean.sql" size="2452" user="AnaisOBERTO" version="3"
>
>
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470643142" name="flags_clean.sql" path="flags_clean.sql" size="2630" user="JorisVigneron" version="4"
 

Revision 132016-08-05 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base :
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter, voir exemple):
http://exoplanet.eu/catalog/HD%2073526_c/
  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
Changed:
<
<
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470393385" name="flags_clean.sql" path="flags_clean.sql" size="1587" user="JorisVigneron" version="2"
>
>
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="ajout de noms de colonnes + verification à chaque pas" date="1470399332" name="flags_clean.sql" path="flags_clean.sql" size="2452" user="AnaisOBERTO" version="3"
 

Revision 122016-08-05 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
  • Extraire la liste des liens dans la base :
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter, voir exemple):
http://exoplanet.eu/catalog/HD%2073526_c/
  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
Changed:
<
<
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470038004" name="flags_clean.sql" path="flags_clean.sql" size="1120" user="JorisVigneron" version="1"
>
>
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470393385" name="flags_clean.sql" path="flags_clean.sql" size="1587" user="JorisVigneron" version="2"
 

Revision 112016-08-04 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
Added:
>
>
  • Afficher si le bibcode n'est pas présent dans la colonne bibcode de la table bib_ref.
 3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
Changed:
<
<
>
>
5) Chercher les liens des exoplanètes et vérifier le contenu distant de l'URL.
Added:
>
>
  • Extraire la liste des liens dans la base :
select count(*) from note where notetext like '%exosun%' or notetext like '%exoplanet%';
  • Générer une liste des URLs sous la forme suivante (le nom entre {xxxx} dans le dernier champ de l'URL avec la typo à respecter, voir exemple):
http://exoplanet.eu/catalog/HD%2073526_c/
  • Sortir la liste des noms dont la page distante renvoie "Document Not found", par exemple : http://exoplanet.eu/catalog/Gl%2086_b/
  • Liste des exoplanètes dont il manque le lien : select id_princ ,notetext from note join has_note on oidnote=oidnoteref join basic_data on oid4ref=oid4 where notetext not like '%exosun%' and notetext not like '%exopl%' and otype ='Pl';
 

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470038004" name="flags_clean.sql" path="flags_clean.sql" size="1120" user="JorisVigneron" version="1"

Revision 102016-08-04 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
Changed:
<
<
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470302457" name="COO_clean.sql" path="COO_clean.sql" size="1628" user="JorisVigneron" version="2"
>
>
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470312061" name="COO_clean.sql" path="COO_clean.sql" size="1871" user="JorisVigneron" version="3"
 
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470038004" name="flags_clean.sql" path="flags_clean.sql" size="1120" user="JorisVigneron" version="1"

Revision 92016-08-04 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
Changed:
<
<
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470038004" name="COO_clean.sql" path="COO_clean.sql" size="814" user="JorisVigneron" version="1"
>
>
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470302457" name="COO_clean.sql" path="COO_clean.sql" size="1628" user="JorisVigneron" version="2"
 
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470038004" name="flags_clean.sql" path="flags_clean.sql" size="1120" user="JorisVigneron" version="1"

Revision 82016-08-01 - JorisVigneron

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
    • Idem pour le mot "The" au début avec cette casse
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
  3. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  4. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
Added:
>
>
META FILEATTACHMENT attachment="COO_clean.sql" attr="" comment="" date="1470038004" name="COO_clean.sql" path="COO_clean.sql" size="814" user="JorisVigneron" version="1"
META FILEATTACHMENT attachment="flags_clean.sql" attr="" comment="" date="1470038004" name="flags_clean.sql" path="flags_clean.sql" size="1120" user="JorisVigneron" version="1"
 

Revision 72016-07-08 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures (exemple fichier SQL dans le twiki) :

  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
3) Normaliser le champ flag des références:
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
Changed:
<
<
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normale si c'est le premier : colonne "aut_pos"), il faut donc faire un programme qui les remet.
>
>
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normal si c'est le premier auteur : voir la colonne "aut_pos"), il faut donc faire un programme qui met les parenthèses.
Added:
>
>
    • Idem pour le mot "The" au début avec cette casse
 
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
Changed:
<
<
  1. Noms de famille toujours en majuscules (sauf équipes)
  2. Aucun prénom (juste initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
>
>
  1. Noms de famille toujours en majuscules (sauf pour les équipes où les minuscules sont autorisées)
  2. Il faut garder aucun prénom (on veut juste les initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
 
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"

Revision 62016-07-08 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf
Changed:
<
<
Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript
>
>
Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.
Added:
>
>
Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript
 
Changed:
<
<
Procédures (exemple fichier SQL dans le twiki) :
>
>
Procédures (exemple fichier SQL dans le twiki) :
 
  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
Changed:
<
<
select id_princ from basic_data where coo_err_maja = 180000 limit 5;
>
>
select id_princ from basic_data where coo_err_maja = 180000 limit 5;
  2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL
  • Chercher toutes les colonnes avec un nom "xxxbibcode"
Changed:
<
<
select dbname from "TAP_SCHEMA".columns
>
>
select dbname from "TAP_SCHEMA".columns
 
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
Changed:
<
<
3) Corriger les noms de auteurs , voir la doc du wiki le concernant :
>
>
3) Normaliser le champ flag des références:
Added:
>
>
  • La colonne pub_com_flag de la table bib_ref contient des mots clés : (no object) et (abstract), par exemple :
select distinct(pub_com_flags) from bib_ref where bibcode like '2014%' limit 10;

4) Corriger les noms de auteurs , voir la doc du wiki le concernant : documentation des auteurs. Ce programme sera certainement réutilisé régulièrement.

 
  1. Jr. -> Jr
Changed:
<
<
  1. Les noms des équipes doit toujours être sous la forme :  (The XXXX team)
>
>
  1. Les noms des équipes doit toujours être sous la forme : (The XXXX team)
Added:
>
>
    • Certains des noms d'équipe n'ont pas la parenthèse qui encadre (normale si c'est le premier : colonne "aut_pos"), il faut donc faire un programme qui les remet.
    • Le nom de l'équipe ne doit pas contenir de point '.' pour les acronymes -> les points sont à supprimer simplement (par exemple H.E.S.S.)
 
  1. Noms de famille toujours en majuscules (sauf équipes)
Changed:
<
<
  1. Aucun prénoms (juste initiales)

>
>
  1. Aucun prénom (juste initiales), par exemple : Yu.N. -> Y.N. (attention aux Jr==junior à garder)
    • Le programme doit afficher les différents prénoms qu'il a trouvé à remplacer
Added:
>
>
  • Concrètement dans la base :Table "author", colonne "author", jette un coup d'oeil, par exemple :
select * from author where author like '%u.%';
  • Pour les "équipes" il y a plusieurs mots : collaboration, team, project, consortium ... et peut-être d'autres
 
Changed:
<
<
>
>

 
META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"

Revision 52016-07-08 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Changed:
<
<
Procédures :
>
>
Procédures (exemple fichier SQL dans le twiki) :
 
  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
Changed:
<
<
  1. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;"
>
>
  1. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;" (une fonction ou non, selon ce qu'il y a de plus pratique)
 
  1. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
Changed:
<
<
  1. Tu peux préparer un select au début, et un autre à la fin + comptage etc ... (avant le rollback) pour vérifier que tu as bien ce que tu attends.
>
>
  1. Tu prépares un select + count au début, et à la fin (avant le rollback) pour vérifier que tu as bien ce que tu attends.
 
  1. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  2. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
  • par exemple :
select id_princ from basic_data where coo_err_maja = 180000 limit 5;

2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL

  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
Changed:
<
<
  • Verifier si le mot ne commence pas par une année (19.. ou 20..) alors afficher
  • Si le mot est juste ~ mettre à NULL
>
>
  • Verifier si le mot contenu dans ce champ ne commence pas par une année (19.. ou 20..) alors l'afficher
  • Si le mot est juste "~" (un tilde) ou " " (espace) mettre à NULL
Added:
>
>
3) Corriger les noms de auteurs , voir la doc du wiki le concernant :
  1. Jr. -> Jr
  2. Les noms des équipes doit toujours être sous la forme :  (The XXXX team)
  3. Noms de famille toujours en majuscules (sauf équipes)
  4. Aucun prénoms (juste initiales)
 

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"

Revision 42016-07-07 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf

Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Procédures :

Changed:
<
<
  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
>
>
  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
 
    • Options : -h simrd -U smbmgr -d simbad4b
  1. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;"
  2. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  3. Tu peux préparer un select au début, et un autre à la fin + comptage etc ... (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  4. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  5. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
Changed:
<
<
  • err(RA) = err(DEC) = 30, 300, 3000, ou 180000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

>
>
  • err(RA) = err(DEC) = 30, 300, 3000, 180000, ou 1080000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
Deleted:
<
<
COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL
 doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.
Changed:
<
<
>
>
  • par exemple :
Added:
>
>
select id_princ from basic_data where coo_err_maja = 180000 limit 5;
 
Added:
>
>
2) Remplacer tous les bibcodes ~ (ou autre non bibcode) en NULL
  • Chercher toutes les colonnes avec un nom "xxxbibcode"
select dbname from "TAP_SCHEMA".columns
  • Verifier si le mot ne commence pas par une année (19.. ou 20..) alors afficher
  • Si le mot est juste ~ mettre à NULL
 
Added:
>
>
 

META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"

Revision 32016-07-07 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
Changed:
<
<
1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

* pas de bibcode sur les coordonnées

* err(RA) = err(DEC) = 30, 300, 3000, ou 180000
>
>
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Schéma de la base : simbadDB4.pdf
 
Changed:
<
<

>
>
Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript
 
Changed:
<
<
J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Ci joint aussi le schéma de la base et un exemple


Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript
>
>
Procédures :
Added:
>
>
  1. Tu dois te connecter à la base de données avec le programme psql (client postgresql) (c'est une base de test qui est écrasée toutes les nuits)
    • Options : -h simrd -U smbmgr -d simbad4b
  2. Tu prépares une (ou plusieurs) commande(s) SQL entourées d'un "BEGIN; .... ROLLBACK;"
  3. Tu peux la lancer sur la base avec l'option supplémentaire "-f sqlfile"
  4. Tu peux préparer un select au début, et un autre à la fin + comptage etc ... (avant le rollback) pour vérifier que tu as bien ce que tu attends.
  5. Tu changes le ROLLBACK en COMMIT et vérifier qu'il n'y a pas d'erreurs
  6. Tu m'envoies ton fichier SQL +(dépot ici) avec le rollback et je teste sur la vrai base en prod.

1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

  • pas de bibcode sur les coordonnées
  • err(RA) = err(DEC) = 30, 300, 3000, ou 180000
  • => concrètement dans la base, les colonnes de la table basic_data commencant par "COO_ERR" :

    COO_ERR_MAJA, COO_ERR_MAJA_PREC, COO_ERR_MINA, COO_ERR_MINA_PREC, COO_ERR_ANGL

doivent être mise à "NULL" sous la condition que le champ COO_BIBCODE est aussi NULL ET que les valeurs COO_ERR_ MAJA et COO_ERR_ MINA soitent égales et aux valeurs citées ci dessus.


META FILEATTACHMENT attachment="createTriggerNbObj.sql" attr="" comment="Exemple de procédure" date="1467879326" name="createTriggerNbObj.sql" path="createTriggerNbObj.sql" size="1310" user="AnaisOBERTO" version="1"
META FILEATTACHMENT attachment="z2rv.sql" attr="" comment="Exemple de procédure" date="1467879345" name="z2rv.sql" path="z2rv.sql" size="1018" user="AnaisOBERTO" version="1"
 

Revision 22016-07-06 - AnaisOBERTO

 
META TOPICPARENT name="WebHome"
Changed:
<
<
TBC
>
>
1) Enlever des incertitudes de mesures bidon sur la position dans les cas suivants :

* pas de bibcode sur les coordonnées

* err(RA) = err(DEC) = 30, 300, 3000, ou 180000
Added:
>
>

J'aurai besoin de quelqu'un pour écrire des procédures SQL de nettoyage
de Simbad (suppression/modification de valeurs aberrantes sous notre
validation, j'ai une dizaine de points sous le coude)

Voilà quelques exemples de requetes sur la base si tu as encore un
compte wiki :
http://cds.u-strasbg.fr/twiki/bin/view/Ressources/SimbadSQL
Ci joint aussi le schéma de la base et un exemple


Tu auras certainement besoin d'écrire des scripts en language PGSQL :
https://www.postgresql.org/docs/9.3/static/plpgsql.html

J'en ai déjà plusieurs, sur lesquels tu pourras utiliser comme départ.

Depuis l'extérieur, tu peux lancer des SELECT dans le formulaire là,
mais c'est assez limité :
http://simbad.u-strasbg.fr/simbad/sim-fscript

Revision 12016-07-05 - AndreSchaaff

 
META TOPICPARENT name="WebHome"
TBC
 
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