Audela |
![]() |
Manuel de l'utilisateur
Libmc est une librairie d'extension Tcl qui ajoute des fonctions utilitaires de mécanique céleste. Ce guide de l'utilisateur s'adresse aux programmeurs de scripts Tcl qui désirent utiliser les fonctions de libmc. Les fonctions faisant appel aux "buffer" de Audela ne peuvent être employées qu'avec la plate forme Audela.
Le chargement de la librairie libmc dans l'interpréteur Tcl se fait simplement par la commande :
load libmc[info sharedlibextension]
Dans l'interpréteur Tcl la commande [info sharedlibextension] signifie à l'interpréteur Tcl d'ajouter, automatiquement, les lettres correspondant au suffixe .dll ou .so en fonction du système d'exploitation.
Si l'interpréteur retourne le message d'erreur : couldn't load file "libmc": invalid argument, c'est que le fichier de librairie libmc (libmc.dll sous Windows et libmc.so sous Linux) n'est pas placé dans le répertoire courant de l'interpréteur (cf. fonctions pwd et cd de Tcl).
Les fonctions de libmc, ajoutées à Tcl, commencent toutes par le préfixe mc_ de façon à les reconnaître. Par exemple, la fonction mc_date2jd convertit une date en jour julien. Le paramètre de la fonction mc_date2jd est une variable Tcl permettant de définir la date sous diverses formes. Par exemple, pour retourner le jour julien de l'instant présent, le paramètre est now. La fonction s'écrira donc :
mc_date2jd now
Si l'interpréteur retourne le message d'erreur : invalid command name "mc_date2jd", c'est que la librairie libmc n'a pas été chargée correctement.
Les fonctions Tcl, ajoutées par MC proposent une vaste étendue de possibilités. En respect avec la syntaxe Tcl, chaque fonction se définit par des paramètres obligatoires, des paramètres facultatifs et des paramètres optionnels. Ces paramètres doivent répondre à certaines contraintes de syntaxe. C'est pour cela que nous commencerons par définir les "types" des paramètres utilisés spécifiquement par MC avant d'aborder la liste des fonctions.
Les paramètres des fonctions de MC sont standardisés pour permettre une utilisation souple. Ainsi, MC définit les types de paramètres suivants :
Par exemple, la syntaxe de la fonction mc_date2jd est : date2jd Date
La définition d'une date peut être faite de plusieurs façons différentes :
N.B. Les mots NOW, NOW0 et NOW1 peuvent être écrits indifféremment en majuscule ou en minuscule.
Le type ListDates de MC signifie une liste Tcl d'éléments de type Date. Par exemple :
{2000 1 1} {2000 1 2} 2451056.4563 {2000-01-03T00:00:00} now
La définition d'un angle peut être faite de plusieurs façons différentes. Ci-dessous, quelques exemples :
Le type ListAngles de MC signifie une liste Tcl d'éléments de type Angle. Par exemple :
{45d34} {-45 38 6.4} {1h30m} {2 r}
La définition d'une planète ou d'une étoile est réalisée sous la forme d'une liste dont les éléments sont définis ainsi :
N.B. Les mots définissant Format et Data peuvent être écrits indifféremment en majuscule ou en minuscule.
Par exemple, la planète Jupiter est définie par la liste :
{jupiter internal}
ou plus simplement par le mot Jupiter puisque Internal est pris par défaut. En revanche, pour l'astéroïde 1997DQ on a :
{1997DQ Bowellfile astorb.dat}
Le type ListPlanets signifie que le paramètre Name peut être une liste de planètes ou bien * si l'on souhaite toutes les planètes définies dans Data. Par exemple :
{ { {1} {6809} {10222} {1997DQ} } Mpcfile mpcorb.txt }
Ou encore, pour définir les neuf planètes du Système Solaire, ainsi que le Soleil et la Lune :
{ * Internal}
que l'on peut simplement écrire * car Internal est la valeur par défaut.
Le type Home permet de localiser un point sur la Terre de façon à calculer une éphéméride topocentrique par rapport à ce site, c'est à dire tenant compte des effets de la parallaxe. La définition d'un site est réalisée sous la forme d'une liste dont les éléments sont définis ainsi :
En fonction de la définition du format, les autres éléments ont des sens différents :
N.B. Les mots définissant Format peuvent être écrits indifféremment en majuscule ou en minuscule.
Par exemple, pour l'observatoire de Paris, situé à 2.3375 degrés à l'est de Greenwich avec rho*sin(phi') = 0.74918 et rho*cos(phi') = 0.65950, on écrira :
{ MPC 2.3375 0.65950 0.74918 }
Autre exemple, pour un observateur situé à la longitude 3 degrés ouest, à la latitude de 46 degrés nord et à une altitude de 456 mètres :
{ GPS 3 W 46 456 }
Le type Field permet de définir le champ de vue d'un système optique réalisant une projection gnomonique (image CCD par exemple). La définition d'un champ est réalisée sous la forme d'une liste dont les éléments sont définis ainsi :
En fonction de la définition du format, les autres éléments ont des sens différents :
Si Format = OPTIC, les autres éléments sont :
N.B. Les mots définissant Format et leurs arguments (NAXIS1, etc.) peuvent être écrits indifféremment en majuscule ou en minuscule.
Par exemple, pour définir un champ centré sur 12h00m et 15d avec un télescope de focale 2.5 mètres, une caméra de 768x512 pixels de 9 microns de côté, on écrira :
{ OPTIC NAXIS1 768 NAXIS2 512 FOCLEN 2.5 PIXSIZE1 9e-6 PIXSIZE2 9e-6 CROTA2 0 RA 180 DEC 15 }
La définition d'un format de sortie est réalisée en indiquant le nom de la donnée à écrire. Les valeurs possibles pour Format sont :
N.B. Les mots définissant le type Format peuvent être écrits indifféremment en majuscule ou en minuscule.
Le type ListFormat permet d'écrire la liste des paramètres que l'on veut en sortie. Par exemple, pour avoir le nom, la date et la magnitude d'un objet, on écrira la liste suivante :
{ OBJENAME YEAR MONTH DAY MAG }
Le type -constraint s'applique aux options. Il permet d'exclure des astres situés hors de valeurs acceptables. Il existe deux syntaxes différentes qui correspondent aux cas suivants :
La liste des contraintes possibles est la suivante :
N.B. Les mots définissant les types "Option" et leurs arguments peuvent être écrits indifféremment en majuscule ou en minuscule.
Note : En ce qui concerne les options azimuth et ha, la définition de > et < est un peu différente. -ha< 15 signifie de garder tous les astres qui ont un angle horaire inférieur à 15 degrés du méridien (de part et d'autre). Idem pour azimuth.
Par exemple, si l'on souhaite garder uniquement les astres plus brillants que la magnitude 12 mais plus faible que la magnitude 10, de déclinaison supérieure à -15 degrés, de hauteur supérieure à 30 degrés, on écrira les options suivantes :
-mag< 12 -mag> 10 -dec> -15 -altitude> 30
On trouvera ci-après la liste des fonctions MC accessibles depuis l'interpréteur Tcl.
La fonction de génération d'éphémérides s'appelle mc_ephem.
mc_ephem ListObjects ?ListDates? ?ListFormat? -constraint Value -topo Home
Par défaut, ListDate=NOW et ListFormat={ OBJENAME RA DEC}
En retour, on obtient une liste dont chaque élément contient des données sous la forme définie par ListFormat. Le dernier élément de la liste de sortie est différent. Il contient des informations sur le calcul effectué. Les catalogues d'étoiles de ListObject ne sont pas pris en compte. Dans les options -contrainst, magr et magb sont sans effet.
Dans le cas particulier d'objets de type astéroïdes de la base de Bowell ou du MPC, il y a deux options supplémentaires :
Exemples :
mc_ephem *
Calcule la position géocentrique des neuf planètes du Système Solaire ainsi que le Soleil et la Lune pour l'instant présent.
mc_ephem * {{2000 4 13}} {OBJENAME RAH RAM.M DECD
DECM.M}
Calcule la position géocentrique des neuf planètes du Système Solaire ainsi que le Soleil et la Lune pour le 13 Avril 2000 à 0 heures TU. En retour, on obtient la liste suivante :
{Sun 1 26.500660 9 4.643786 } {Moon 8 59.144500 18 12.397345 } {Mercury 0 4.013105 -2 21.874075 } {Venus 0 30.576006 1 39.792178 } {Mars 2 51.951151 16 41.063033 } {Jupiter 2 39.101727 14 33.607830 } {Saturn 2 22.226011 12 0.620939 } {Uranus 21 30.867704 -15 25.648050 } {Neptune 20 34.942788 -18 27.282960 } {Pluto 16 50.524425 -11 2.882165 } {Ok {J2000.0 coordinates} 10}
mc_ephem {Sun Moon} {{1999 8 11 10 26} } -topo
{GPS 2 E 48.5 125}
Calcule la position topocentrique de la Lune et du Soleil pour le 11 Août 1999 à 10 heures 26 TU. En retour, on obtient la liste suivante :
{Sun 140.762506 15.333362 } {Moon 140.784691 15.345038 } {Ok {J2000.0 coordinates} 2}
mc_ephem {* Bowellfile astorb.dat} now {OBJENAME
RA DEC MAG} -ha< 45 -dec> -15 -dec< 40 -mag< 17 -moonelong> 30
-topo {MPCSTATION 148 stations.txt}
Calcule la position topocentrique actuelle, pour le site UAI numéro 148, de tous les astéroïdes de la base de données de Bowell qui sont plus brillants que la magnitude 17, situés à moins de 45 degrés du méridien, entre les déclinaisons -15 et +40 degrés, à plus de 30 degrés de la Lune.
Pour calculer l'éphéméride d'un astre pour plusieurs dates, il est utile de générer la ListDates à partir de la fonction mc_date2listdates.
Dans le cas particulier de la Lune, on peut calculer les paramètres d'observation physique de libration.
Calcule les paramètres de libration géocentrique ou topocentrique si Home est spécifié. En retour, on a une liste de 6 éléments :
Longitude sélénographique du centre (Terre au zénith).
Latitude sélénographique du centre (Terre au zénith).
Position de l'angle de l'axe de rotation (axe des pôles).
Longitude sélénographique du Soleil au zénith.
Latitude sélénographique du Soleil au zénith.
Colongitude sélénographique du Soleil au zénith.
On rappelle que les longitudes sélénographiques sont positives vers la direction ouest (vers la mer des Crises).
La fonction permettant de lister les astres dans un champ d'image CCD est mc_readcat.
mc_readcat Field ListObjects Output -constraint Value -objmax Value -date Date -topo Home
Le paramètre obligatoire Output sert à déterminer si les données de sortie seront écrites dans un fichier ou sous la forme d'une liste en retour. Les valeurs autorisées de Output sont les suivantes :
L'option -objmax sert à déterminer un nombre maximum d'objets dans la liste de sortie. Par défaut cette valeur vaut 1000.
Seules les options -contrainst, magb et magv sont actives.
L'option -date permet de fixer une date pour le cas de positions planétaires (NOW par défaut).
L'option -topo permet de fixer un site pour le cas de positions planétaires (géocentrique par défaut).
Le format de sortie est figé : {RA DEC MAGB MAGR X Y OBJENAME}. Le champ OBJENAME n'est rempli que pour les planètes. Le dernier élément de la liste de sortie est différent. Il contient des informations sur le calcul effectué.
Exemples :
mc_readcat { OPTIC NAXIS1 768 NAXIS2 512 FOCLEN
2.5 PIXSIZE1 9e-6 PIXSIZE2 9e-6 CROTA2 0 RA 180 DEC 15 } {* TYCHOMICROCAT
f:\\} {LIST}
Calcule la projection de toutes les étoiles Tycho présentes sur le champ défini par les mots clés FITS.
mc_readcat { BUFFER 1 } {* BOWELLFILE astorb.dat}
{LIST} -magb< 18 -magr< 18
Calcule la projection de tous les astéroïdes de la base de Bowell présents sur le champ défini par les mots clés FITS de l'image en buffer 1. On ne désire que les astéroïdes de magnitude inférieure à 18.
mc_angle2deg Angle : Retourne l'angle en degrés décimaux.
mc_angle2rad Angle : Retourne l'angle en radians.
mc_angle2dms Angle ?limit? ?nozero|zero? ?subsecdigits? ?auto|+? ?list|string? : Retourne l'angle sous forme degrés, minutes et secondes d'angle. Le résultat est retourné entre 0 et 360 degrés. L'option limit (=360 par défaut) permet de limiter le domaine d'angle. Si l'angle est supérieur à limit alors il est retourné négatif. Pour une déclinaison on imposera limit à 90. L'option nozero|zero sert à imposer que le format de sortie ajoute des zéros devant les chiffres (=nozero par défaut). L'option subsecdigits sert à fixer le nombre de digits retournés après les secondes. L'option auto|+ sert à imposer le retour du signe devant le résultat (=auto par défaut donc pas de signe imposé). L'option list|string sert à fixer le format de sortie sous la forme d'une liste (trois éléments {12 56 34.234} par exemple) ou bien sous la forme d'une seule chaîne (12d56m34s234 par exemple).
mc_angle2hms Angle ?limit? ?nozero|zero? ?subsecdigits? ?auto|+? ?list|string? : Retourne l'angle sous forme heures, minutes et secondes de temps. Le résultat est retourné entre 0 et 24 heures. L'option limit (=360 par défaut) permet de limiter le domaine d'angle (limit doit être exprimé en degrés). Si l'angle est supérieur à limit alors il est retourné négatif. L'option nozero|zero sert à imposer que le format de sortie ajoute des zéros devant les chiffres (=nozero par défaut). L'option subsecdigits sert à fixer le nombre de digits retournés après les secondes. L'option auto|+ sert à imposer le retour du signe devant le résultat (=auto par défaut donc pas de signe imposé). L'option list|string sert à fixer le format de sortie sous la forme d'une liste (trois éléments {12 56 34.234} par exemple) ou bien sous la forme d'une seule chaîne (12h56m34s234 par exemple).
mc_angle2lx200dec Angle ?-format long|short? : Retourne l'angle au format déclinaison (Sd) du protocole LX200. L'option format permet de choisir l'écriture longue ou courte défini dans le protocole.
mc_angle2lx200ra Angle : ?-format long|short? : Retourne l'angle au format ascension droite (Sr) du protocole LX200. L'option format permet de choisir l'écriture longue ou courte défini dans le protocole.
mc_anglesep ListAngles ?Units? : Retourne l'angle de séparation et l'angle de position. La liste doit compter 4 angles définis dans l'ordre suivant : Ra1 Dec1 Ra2 Dec2. Le résultat est retourné en degrés par défaut. Pour avoir un résultat en radians ajouter Unit=Radian.
mc_angles2ultima2000 Angle Angle : Retourne les deux angles RA DEC en une seule chaîne au format "16bit-angles" du protocole Ultima2000.
mc_ultima20002angles Ultima2000_string : Retourne une liste RA DEC (en degrés) à partir d'une seule chaîne au format "16bit-angles" du protocole Ultima2000.
mc_radec2altaz Angle_ra Angle_dec Home Date : Retourne une liste des quatre paramètres utiles pour le système altazimutal : Azimut, Hauteur, Angle horaire et Angle parallactique.
mc_hadec2altaz Angle_ha Angle_dec Home Date : Retourne une liste des quatre paramètres utiles pour le système altazimutal : Azimut, Hauteur, Angle horaire et Angle parallactique.
mc_altaz2radec Angle_Azimuth Angle_Altitude Home Date : Retourne une liste Ra,Dec à partir de l'azimut et de la hauteur.
mc_altaz2hadec Angle_Azimuth Angle_Altitude Home Date : Retourne une liste Angle Horaire,Dec à partir de l'azimut et de la hauteur.
mc_refraction altitude out2in|in2out ?temperature? ?pressure? : Calcule la correction (en degrés) due à la réfraction atmosphérique qu'il faut apporter à la hauteur. out2in pour calculer la réfraction à partir de la hauteur hors atmosphère (ajouter la réfraction) et in2out pour le contraire (soustraire la réfraction). La température est exprimée en Kelvin (283K par défaut) et la pression en Pascal (101000 Pa par défaut).
mc_anglescomp Angle1 operand Angle2 : Effectue une opération arithmétique (+,-,*,/,modulo) sur deux angles.
mc_home2geosys Home geosys1 geosys2 ?-height? : Effectue la conversion de coordonnées géodésiques d'un système (geosys1) vers un autre (geosys2). Les systèmes reconnus sont ED50 et WGS84. L'option -height permet de retourner un quatrième paramètre : La hauteur du site sur l'ellipsoïde de référence.
mc_radec2galactic Angles_RaDec Date_Equinox : Transforme la liste Angles_RaDec à l'équinoxe Date_Equinox vers les coordonnées galactiques de type II.
mc_galactic2radec Angles_LonLat Date_Equinox : Transforme la liste Angles_LonLat de coordonnées galactiques de type II vers les coordonnées RaDec à l'équinoxe Date_Equinox.
mc_radec2ecliptic Angles_RaDec Date_Equinox : Transforme la liste Angles_RaDec à l'équinoxe Date_Equinox vers les coordonnées écliptiques.
mc_ecliptic2radec Angles_LonLat Date_Equinox : Transforme la liste Angles_LonLat de coordonnées écliptiques vers les coordonnées RaDec à l'équinoxe Date_Equinox.
mc_date2jd Date : Retourne le jour julien du paramètre du type Date.
mc_date2ymdhms Date : Retourne la date en clair Yyyy Mm Dd Hh Mm Ss.sss à partir du type Date.
mc_date2lst Date Home : Retourne le temps sidéral sous la forme Hh Mm Ss.sss à partir des paramètres de type Date et du type Home.
mc_date2listdates Date DateStep NbSteps : Retourne une ListDates à partir d'une date incrémentée NbSteps fois du pas DateStep (en jours).
mc_date2iso8601 Date: Transforme une date en format d'en-tête FITS. Utile pour ajouter l'info DATE-OBS à une en-tête FITS.
mc_datescomp Date Operand days : Effectue une opération arithmétique à partir d'une date. Utile pour calculer le temps de pose du milieu de l'image.
Exemples :
mc_date2ymdhms now
Retourne une liste contenant la date sous la forme année, mois, jour, heure, minute, seconde :
2000 2 11 12 51 56.999991
mc_date2jd {2000 2 11 12 51 56.999991}
Retourne le jour julien correspondant à la date :
2451586.036076
mc_date2lst now {gps 20 e 45 130}
Retourne une liste contenant le temps sidéral local actuel sous la forme heure, minute, seconde :
23 37 5.098954
mc_date2listdates now0 0.5 20
Retourne une liste de dates (en jour julien) de type ListDates. Le premier élément de la liste correspond à la date d'aujourd'hui à 0h, et les dates suivantes se suivent de 0.5 jour en 0.5 jour. On calcule ainsi 20 dates :
2451585.500000 2451586.000000 2451586.500000 2451587.000000 2451587.500000 2451588.000000 2451588.500000 2451589.000000 2451589.500000 2451590.000000 2451590.500000 2451591.000000 2451591.500000 2451592.000000 2451592.500000 2451593.000000 2451593.500000 2451594.000000 2451594.500000 2451595.000000
Cette liste est particulièrement utile pour calculer l'éphéméride d'un astre au cours du temps (cf. fonction mc_ephem).
mc_listradec Field Mosaic ComPix : Génère une liste de listes {X Y RA DEC} à partir d'un champ de type Field, en faisant une mosaïque définie par le paramètre Mosaic avec un recouvrement de ComPix pixels entre chaque champ. La mosaïque peut être générée de différentes façons :