Le catalogue Hipparcos.
Description standard utile, si l'on lit l'anglais.
Utilisation du langage d'interrogation de la base de données pour extraire les champs : Type spectral, Fe-H, B-V, VMag (magnitude absolue).
import csv
import numpy as np
import matplotlib.pyplot as plt
# V/137D Hipparchos
SpType, Fe_H, B_V, VMag = 0, 1, 2, 3
tout = []
with open('hip99999.tsv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=';')
for ligne in spamreader:
tout.append(ligne)
Remarque : emploi du trait de soulignement à la place du signe moins.
spectre = [] # listes des types spectraux
b_v = [] # liste des indices de couleur
vmag = [] # liste des magnitudes absolues
maxi = 80000 # on limite à 80000 étoiles
for i in range(maxi):
ligne = tout[i]
if (len(ligne[0].strip()) > 0) and (len(ligne[1].strip()) > 0) and len(ligne[2].strip()) > 0 and len(ligne[3].strip()) > 0:
spectre.append(ligne[0].strip())
b_v.append(float(ligne[2]))
vmag.append(float(ligne[3]))
G
.K et M
.O et B
.Remarque : le code Python a été ici optimisé pour la facilité de lecture. Le fait de réaliser trois boucles au lieu d'une n'est pas idéal sur le plan de la consommation des ressources.
bvjaune, vmagjaune = [], [] # listes pour positionner les étoiles jaunes
bvrouge, vmagrouge = [], [] # listes pour positionner les étoiles rouges
bvbleu, vmagbleu = [], [] # listes pour positionner les étoiles bleues
for i in range(len(spectre)):
if "G" in spectre[i]:
bvjaune.append(b_v[i])
vmagjaune.append(vmag[i])
for i in range(len(spectre)):
if "K" in spectre[i] or "M" in spectre[i]:
bvrouge.append(b_v[i])
vmagrouge.append(vmag[i])
for i in range(len(spectre)):
if "O" in spectre[i] or "B" in spectre[i]:
bvbleu.append(b_v[i])
vmagbleu.append(vmag[i])
Utilisation de matplotlib.
Dans l'ordre :
Les étoiles des types spectraux _autres que O,B,G,K,M
sont restées en noir.
fig = plt.figure(1, figsize=(10,12)) # dimensions du cadre
plt.plot(b_v, vmag, linestyle='none', marker = 'o', c = 'black', markersize = 2)
plt.plot(bvjaune, vmagjaune, linestyle='none', marker = 'o', c = 'yellow', markersize = 1)
plt.plot(bvrouge, vmagrouge, linestyle='none', marker = 'o', c = 'red', markersize = 1)
plt.plot(bvbleu, vmagbleu, linestyle='none', marker = '+', c = 'blue', markersize = 4)
axes = plt.gca()
axes.set_xlabel("Couleur : B-V")
axes.set_ylabel("Magnitudes")
axes.invert_yaxis()
Ce diagramme m'étonne :
Extensions possibles :
IV
dans G1 IV
) et tracer d'autres diagrammes colorés.HIP
(numéro dans le catalogue Hipparcos) au moment de la sélection et que l'on fasse la recherche individuelle des étoiles via la bibliothèque astroquery.vizier