[PYTHON] Un moyen facile de tracer un diagramme HR à l'aide d'une requête

Diagramme HR et astroquery

Présentation d'un tracé simple utilisant la méthode de tracé du diagramme Hertzsprung-Russell (communément appelé diagramme HR) en utilisant la base de données astronomique spatiale appelée astroquery. Faire. Les gens qui ne sont pas bons dans ce domaine peuvent se familiariser avec le traçage pour le moment.

Pour ceux qui n'ont besoin que du code, veuillez consulter la page google Colab.

installez astroquery

python


pip install astroquery

Ensuite, entrez astroquery.

Obtenir des données à l'aide d'une requête

Les données proviennent d'une base de données appelée Vizir

Utilisez les données du satellite Hipparcos dans.

python


from astroquery.vizier import Vizier
v = Vizier(catalog="I/239/hip_main",columns=['HIP',"Vmag","B-V","Plx"],row_limit=-1)
data = v.query_constraints()
vmag = data[0]["Vmag"]
bv = data[0]["B-V"]
plx = data[0]["Plx"]

Vous n'avez besoin que de trois.

--Vmag: luminosité de la bande V --BV: Rapport de luminosité entre la bande B et la bande V (notez qu'il s'agit d'un rapport car la note est log bien qu'elle soit écrite en B-V.) --plx: dioptrie annuelle. J'ai juste besoin d'informations sur la distance. Puisque la distance des étoiles proches est mesurée par triangulation, convertissez la parallaxe annuelle en distance.

Est.

La signification de l'option est de spécifier le catalogue avec catalog = "I / 239 / hip_main", de spécifier les colonnes avec les colonnes = ['HIP', "Vmag", "BV", "Plx"] et row_limit = - Obtenez toutes les données en supprimant la limite supérieure avec 1.

Créer un diagramme RH

Tracez une étoile avec une dilatation annuelle de 20 à 25 mili arcsec (c'est-à-dire une distance d'environ 40 à 50 pc).

def to_parsec(marcsec):
    return 1./(1e-3*marcsec)  # pc
pmin=20 # m arcsec
pmax=25 # m arcsec
dmax = to_parsec(pmin)
dmin = to_parsec(pmax)
dlabel = str("%3.1f" % dmin) + " pc to " + str("%3.1f" % dmax) + " pc"
print (dlabel) 
vmag_cut = vmag[ (plx > pmin) & (plx < pmax)]
bv_cut = bv [ (plx > pmin) & (plx < pmax)]

from matplotlib import pyplot as plt
plt.title(dlabel)
plt.xlim(-0.1,2)
plt.ylim(-13,0)
plt.xlabel("B-V")
plt.ylabel("Vmag")
plt.scatter(bv_cut, -vmag_cut, s=1)

Puis

スクリーンショット 2020-10-11 17.11.33.png

De cette manière, le diagramme HR est appliqué. Et si je ne coupe pas à distance? Veuillez essayer. B-V est

python



B-V \equiv log(Luminosité de la bande B)-log(Luminosité de la bande V) = log(Luminosité de la bande B/Luminosité de la bande V)

Parce que cela signifie, faisons attention au rapport de luminosité.

Page connexe

Recommended Posts

Un moyen facile de tracer un diagramme HR à l'aide d'une requête
Un moyen facile de gratter avec Python en utilisant Google Colab
Un moyen simple de renommer des fichiers
Un moyen simple d'utiliser Wikipedia avec Python
Un moyen simple d'utiliser Python 2.7 sur Cent OS 6
Comment charger facilement le processeur / la mémoire sous Linux
[Petite histoire] Un moyen simple de convertir Jupyter en PDF
Un moyen simple d'appeler Java depuis Python
Un moyen simple de créer un module d'importation avec jupyter
J'ai essayé de dessiner un diagramme de configuration à l'aide de diagrammes
Même les débutants peuvent le faire! Un moyen facile d'écrire un diagramme de Sankey dans Plotly