Populations stellaires des amas globulaires de la Galaxie

Ce qui suit est le "cahier de laboratoire" où sont notées les démarches entreprises, les idées, les interrogations, les essais, les erreurs, les réussites. Auteur : Alain Leraut - avril 2020

Intentions

Après une rapide découverte des outils permettant de réaliser un diagramme couleur / luminosité de l'amas d'Hercule (M 13) - lire ici, il est tentant de comparer la population de cet amas avec celle d'autres amas globulaires de la Galaxie.

Les diagrammes seront-ils identiques ?

  • Et, si non, quelles hypothèses peut-on faire pour expliquer les différences ?
  • Comment "évaluer" un diagramme autrement que de façon visuelle ? Existe-t-il des outils (statistiques ?) qui permettraient de valider les hypothèses ?

Trouver les données nécessaires

Avant toute chose, il faut identifier les catalogues qui contiennent des données utilisables sur les amas globulaires de la Galaxie.

Si cela pouvait être fait en n'utilisant que le langage Python et internet, ce serait idéal.

Utilisation du "query" de Vizier en ligne

Un "query" (angliscisme) est un système de questionnement, une modalité d'accès aux informations d'une base de données. Si l'on part de la base de données du CDS de Strasbourg, la zone d'interrogation... la zone d'interrogation

... peut être emplie par la mention globular clusters qui correspond à la désignation anglaise des amas globulaires (parce que les termes français ne donneront rien : la base s'interroge en anglais. En réponse (sous réserve de cliquer sur Find) on obtient une liste de 990 catalogues, difficilement exploitable.

M3 globular cluster ne génère qu'une liste de 10 catalogues, dans laquelle, on peut repérer les catalogues J/AJ/120/1364, J/AJ/122/3219, J/MNRAS/458/4162.

Comment faire avec Python sans passer par les opérations manuelles réalisées ici ?

La bibliothèque Python astroquery offre-t-elle cette possibilité ?

In [22]:
import numpy as np
import matplotlib.pyplot as plt
from astropy.modeling import models, fitting
from astroquery.vizier import Vizier
import scipy.optimize

La documentation en ligne d'astroquery relative aux catalogues de la base Vizier contient des exemples sur lesquels on peut s'appuyer. Exemple : recherche à partir des mêmes termes qu'en mode interactif.

In [23]:
catalog_list = Vizier.find_catalogs('M3 globular clusters')
print({k:v.description for k,v in catalog_list.items()})
{'J/ApJ/648/1026': 'HST photometry of M5 blue stragglers (Warren+, 2006)', 'J/ApJS/219/25': 'Light curves of RR Lyrae stars in M3 (NGC5272) (Jurcsik+, 2015)', 'J/A+A/324/915': 'Blue stragglers in M3 (Ferraro+ 1997)', 'J/AJ/108/1786': 'Blue stragglers and variable stars in M3 (Guhathakurta+, 1994)', 'J/AJ/120/1364': 'Abundances in M3 and M13 (Cavallo+, 2000)', 'J/AJ/122/3219': 'M3 and M13 CCD BV photometry (Rey+, 2001)', 'J/AJ/129/267': 'RR Lyrae variables in NGC 5272 (Cacciari+, 2005)', 'J/AJ/139/2300': 'BVIc light curves of 3 type II Cepheids (Rabidoux+, 2010)', 'J/MNRAS/372/1657': 'BVI(c) light curves of variables in M3 (Benko+, 2006)', 'J/MNRAS/458/4162': 'Stromgren photometry of M3 (NGC5272) (Massari+, 2016)'}

En première lecture, on retrouve les trois catalogues relevés précédemment. Effectuons un test rapide des champs de ces trois catalogues.

Structure et champs du catalogue 'J/AJ/120/1364'

D'abord, chargement du catalogue et listage de la structure.

In [24]:
catalog = Vizier.get_catalogs('J/AJ/120/1364')
print(catalog)
TableList with 3 tables:
	'0:J/AJ/120/1364/stars' with 6 column(s) and 9 row(s) 
	'1:J/AJ/120/1364/table2' with 11 column(s) and 50 row(s) 
	'2:J/AJ/120/1364/table9' with 7 column(s) and 50 row(s) 

Trois tables : une très courte et deux beaucoup plus longues puisque chargées par défaut à 50 lignes. Listage des trois premières lignes de la première.

In [25]:
print(catalog[0][0:3])
 Name         AltName          Vmag  B-V   RAJ2000    DEJ2000 
                               mag   mag   "h:m:s"    "d:m:s" 
------ ---------------------- ----- ----- ---------- ---------
vZ 238     AA, SK 586, F12959 12.72  1.58 13 41 51.6 +28 23 23
vZ 752           MB 4, F14194 12.74  1.44 13 42 10.9 +28 23 46
vZ 205 III-28, SK 617, F16682 12.75  1.44 13 41 45.8 +28 25 00

Présence d'une colonne des magnitudes Vmag à préciser et de B-V mais table très courte. Voyons la table suivante.

In [26]:
print(catalog[1][0:3])
Ion   Lambda   EP  loggf  EWAA  EWvZ297 EWIII-28 EWvZ1000 EWvZ1127 EWMB4  EWL262
      0.1 nm   eV        0.1 pm  0.1 pm  0.1 pm   0.1 pm   0.1 pm  0.1 pm 0.1 pm
---- ------- ----- ----- ------ ------- -------- -------- -------- ------ ------
Na I 6154.23  2.10 -1.66   33.5    20.7       --       --       --   34.1   20.0
Na I 6160.75  2.10 -1.32   51.7    29.8       --     33.2     14.9   52.1   38.6
Mg I 5711.09  4.35 -1.58  110.7    93.2     73.9     93.8     83.5   96.4   91.5

À priori rien de ce qu'on cherche. La suivante.

In [27]:
print(catalog[2][0:3])
Name AltName  Vmag Teff  Log_g_ MicroVel EWAlI 
              mag   K   [cm/s2]  km / s  0.1 pm
---- ------- ----- ---- ------- -------- ------
L324     V11 12.00 4050    0.50     2.25   74.0
L940         12.10 4050    0.50     2.00  100.0
L414  III-56 12.14 4100    0.65     2.00   53.0

Rien non plus. En conclusion ce catalogue est mis à l'écart.

Structure et champs du catalogue 'J/AJ/122/3219'

D'abord, chargement du catalogue et listage de la structure.

In [28]:
catalog2 = Vizier.get_catalogs('J/AJ/122/3219')
print(catalog2)
TableList with 2 tables:
	'0:J/AJ/122/3219/table1' with 7 column(s) and 50 row(s) 
	'1:J/AJ/122/3219/table2' with 9 column(s) and 50 row(s) 

Deux table avec plus de 50 lignes chacune. Listage du début de la première.

In [29]:
print(catalog2[0][0:3])
RYL   Xpix    Ypix   Vmag  e_Vmag  B-V   e_B-V 
      pix     pix    mag    mag    mag    mag  
--- ------- ------- ------ ------ ------ ------
  1 1467.63 1106.58 11.406  0.005  0.702  0.007
  2  644.02   26.79 12.853  0.004  1.426  0.006
  3  241.15  354.39 14.047  0.003  0.664  0.005

Un champ de magnitude Vmag et aussi B-V. Sous réserve de préciser ce qui correspond à Vmag, la table sera peut-être utilisable. La suivante :

In [30]:
print(catalog2[1][0:3])
RYL   Xpix    Ypix   Vmag  e_Vmag  B-V   e_B-V     _RA       _DE   
      pix     pix    mag    mag    mag    mag      deg       deg   
--- ------- ------- ------ ------ ------ ------ --------- ---------
  1  466.76  880.00 14.242  0.005  0.573  0.007 250.29547  36.51052
  2  322.68 1512.17 14.308  0.004  0.889  0.006 250.23557  36.52244
  3  144.05  115.67 14.503  0.004  0.844  0.006 250.36881  36.53407

Mêmes remarques. En première approche, le catalogue J/AJ/122/3219 serait exploitable.

Structure et champs du catalogue 'J/MNRAS/458/4162'

D'abord, chargement du catalogue et listage de la structure.

In [31]:
catalog3 = Vizier.get_catalogs('J/MNRAS/458/4162')
print(catalog3)
TableList with 1 tables:
	'0:J/MNRAS/458/4162/catalog' with 12 column(s) and 50 row(s) 
In [32]:
print(catalog3[0][0:3])
 ID   RAJ2000     DEJ2000    umag  e_umag ...  bmag  e_bmag  ymag  e_ymag   sh  
        deg         deg      mag    mag   ...  mag    mag    mag    mag         
--- ----------- ----------- ------ ------ ... ------ ------ ------ ------ ------
  1 205.6987015  28.4727753 17.681  0.027 ... 16.350  0.008 16.045  0.014 -0.264
  2 205.6190598  28.4735935     --     -- ... 19.606  0.035 19.299  0.040 -0.352
  3 205.7404814  28.4718995 20.575  0.146 ... 19.668  0.040 19.356  0.040 -0.236

Remarquer ici que toutes les colonnes ne sont pas visibles, certaines étant remplacées par des ... Voici un artifice pour trouver les noms (et les types de données contenues). Information trouvée dans ce support.

In [33]:
catalog3[0].dtype
Out[33]:
dtype([('ID', '<i4'), ('RAJ2000', '<f8'), ('DEJ2000', '<f8'), ('umag', '<f4'), ('e_umag', '<f4'), ('vmag', '<f4'), ('e_vmag', '<f4'), ('bmag', '<f4'), ('e_bmag', '<f4'), ('ymag', '<f4'), ('e_ymag', '<f4'), ('sh', '<f4')])

Pas de champ B-V. On abandonne ce catalogue.

Information complémentaires sur le catalogue J/AJ/122/3219

En utilisant cette désignation et un moteur de recherche, on obtient la page suivante.

Celle-ci contient un court résumé d'un travail qui est développé dans un compte-rendu au format PDF de 12 pages, en anglais. On y trouve beaucoup d'informations utiles et des diagrammes.

Ce document sera intéressant à lire quand on voudra faire l'évaluation du travail personnel entrepris ici.

À titre d'information, et pour les anglophones, voici le résumé (abstract) de l'article.

Abstract: We present high-precision V, B-V color-magnitude diagrams (CMDs) for the classic second-parameter globular clusters M3 and M13 from wide-field, deep CCD photometry.

The data for the two clusters were obtained during the same photometric nights with the same instrument, allowing us to determine accurate relative ages. Based on a differential comparison of the CMDs using the Δ(B-V) method, an age difference of 1.7±0.7Gyr is obtained between these two clusters. We compare this result with our updated horizontal-branch (HB) population models, which confirm that the observed age difference can produce the difference in HB morphology between the clusters.

This provides further evidence that age is the dominant second parameter that influences HB morphology.

Pour clore cette première page

  • Il est possible de rechercher des catalogues de données en utilisant Python et astroquery.
  • Ayant le ou les identifiants de catalogues, on peut explorer leur structure et rechercher la liste des champs.
  • L'identifiant permet aussi d'effectuer une recherche sur internet qui, ici, s'est révélée fructueuse.