
Un package Python pour générer des graphiques d'étoiles d'astronomie circulaire (passés, présents et futurs) avec une projection sphérique pour corriger les distorsions avec toutes les étoiles nommées IAU précises sur 400 000 ans avec un mouvement et une précession appropriés des équinoxes
Stars de l'intrigue dans l'hémisphère sud pour l'année 2024 (sans étiquettes d'étoiles)
import star_chart_spherical_projection as scsp
scsp . plotStereographicProjection ( northOrSouth = "South" ,
displayStarNamesLabels = False ,
yearSince2000 = 24 )Tracez quelques étoiles intégrées ainsi que deux nouvelles étoiles définies par les utilisateurs dans l'hémisphère nord pour l'année 1961 (2000-39) (avec des étiquettes d'étoiles et en rouge). Cela utilise les deux méthodes pour définir le mouvement approprié pour les nouvelles étoiles: avec un bon mouvement et un angle donné et avec la vitesse de mouvement appropriée dans la déclinaison et l'ascension droite
import star_chart_spherical_projection as scsp
exalibur_star = scsp . newStar ( starName = "Exalibur" ,
ra = "14.04.23" ,
dec = 64.22 ,
properMotionSpeed = 12.3 ,
properMotionAngle = 83 ,
magnitudeVisual = 1.2 )
karaboudjan_star = scsp . newStar ( starName = "Karaboudjan" ,
ra = "3.14.15" ,
dec = 10.13 ,
properMotionSpeedRA = 57.6 ,
properMotionSpeedDec = 60.1 ,
magnitudeVisual = 0.3 )
scsp . plotStereographicProjection ( northOrSouth = "North" ,
builtInStars = [ "Vega" , "Arcturus" , "Altair" ],
userDefinedStars = [ exalibur_star , karaboudjan_star ],
displayStarNamesLabels = True ,
fig_plot_color = "red" ,
yearSince2000 = - 39 )Retournez la position finale d'un Vega (peut être une seule étoile ou une liste d'étoiles) après 11 500 ans lorsque Vega est la nouvelle étoile du pole nord (étoile la plus proche de + 90 °)
import star_chart_spherical_projection as scsp
star_final_pos_dict = scsp . finalPositionOfStars ( builtInStars = [ "Vega" ],
yearSince2000 = 11500 ,
save_to_csv = "final_star_positions.csv" ) Renvoie un dictionnaire avec une étoile et sa déclinaison et son ascension droite: {'Vega': {'Declination': 83.6899118156341, 'RA': '05.38.21'}}
La position finale des étoiles est enregistrée dans final_star_positions.csv avec les en-têtes ["Nom d'étoile", "Ascension droite (HH.MM.SS)", "Declination (DD.SS)"]
PYPI PIP Installation sur PYPI.org/project/star-chart-sphérique-projection/
pip install star-chart-spherical-projection
La première étape pour tracer la sphère céleste sur un tracé 2D consiste à cartographier l'ascension droite de l'étoile comme des heures le long du tracé (valeur thêta de l'intrigue polaire de Matplotlib) et à la déclinaison comme distance du centre du cercle (valeur de rayon de l'intrigue polaire de Matplotlib). Cependant, la tentative de cartographier directement l'ascension droite et la déclinaison provoquera une distorsion car les angles entre les étoiles le long de la déclinaison ne sont plus conservés. À gauche, la constellation de la grande dipper est étirée en une forme inconnue en raison de cette distorsion. En tenant compte de la transformation sphérique, le graphique des étoiles peut être corrigé comme on le voit à droite.
| Sans correction | Avec correction |
|---|---|
![]() | ![]() |
La sphère est projetée à partir du pôle Sud (via la projection stéréographique):
Du point de vue d'un observateur à la surface de la Terre, les étoiles semblent s'asseoir le long de la surface de la sphère céleste - une sphère imaginaire de rayon arbitraire avec la terre en son centre. Tous les objets dans le ciel apparaîtront projetés sur la sphère céleste quelle que soit leur véritable distance de la Terre. La position de chaque étoile est donnée par deux valeurs. La déclinaison est la distance angulaire de l'équateur céleste et l'ascension droite est la distance de la position de l'équinoxe vernal. Au cours d'une journée complète de 24 heures, les étoiles semblent tourner à travers le ciel à la suite de la rotation de la Terre, mais leur position est fixée. La position réelle d'une étoile change avec le temps en tant que résultat combiné du petit mouvement de l'étoile (mouvement approprié) ainsi que de l'axe de rotation changeant de la Terre (précession).
La projection sphérique peut surmonter la distorsion angulaire en convertissant la position de la déclinaison en:
# Projected from South Pole (Northern Hemisphere)
north_hemisphere_declination = tan(45° + (original_declination / 2))
# Projected from North Pole (Southern Hemisphere)
south_hemisphere_declination = tan(45° - (original_declination / 2))
Où dans l'hémisphère nord, des projections sont formées à partir du pôle Sud: 
L'ensemble du graphique des étoiles est livré avec plus d'une centaine d'étoiles les plus brillantes dans le cadre d'une bibliothèque intégrée. Cependant, une nouvelle étoile peut être facilement ajoutée pour le traçage ou les calculs en créant un objet NewStar. L'objet NewStar nécessitera quelques fonctionnalités importantes que PlottereographicProjection () et FinalPositionOfStars () peuvent désormais accepter comme argument supplémentaire.
Cela permet la création d'une nouvelle étoile de deux manières:
1. Avec une vitesse de mouvement appropriée et un bon angle de mouvement
Comme on le voit dans In- the-Sky.org pour Pollux
star_chart_spherical_projection.newStar(starName=None,
ra=None,
dec=None,
properMotionSpeed=None,
properMotionAngle=None,
magnitudeVisual=None)
Avec la vitesse de mouvement appropriée le long de l'ascension droite et de la déclinaison
Comme on le voit dans wikipeida.og pour pollux
star_chart_spherical_projection.newStar(starName=None,
ra=None,
dec=None,
properMotionSpeedRA=None,
properMotionSpeedDec=None,
magnitudeVisual=None)
Remarque importante: le mouvement approprié RA / DEC sera converti de la vitesse le long de l'ascension droite et de la déclinaison à une vitesse de mouvement appropriée ( properMotionSpeed ) et un angle ( properMotionAngle ) pour d'autres calculs
PlottereographicProjection ()
Intrigue étoiles sur une intrigue polaire stéréographique
plotStereographicProjection(northOrSouth=None,
builtInStars=[],
declination_min=None,
yearSince2000=0,
displayStarNamesLabels=True,
displayDeclinationNumbers=True,
incrementBy=10,
isPrecessionIncluded=True,
maxMagnitudeFilter=None,
userDefinedStars=[],
onlyDisplayUserStars=False,
showPlot=True,
fig_plot_title=None,
fig_plot_color="C0",
figsize_n=12,
figsize_dpi=100,
save_plot_name=None)
| Northorsouth = "North" (-30 ° à 90 °) (sans étiquettes étoiles) | Northorsouth = "Sud" (30 ° à -90 °) (sans étiquettes étoiles) |
|---|---|
| BuiltinStars = [] (inclut toutes les étoiles, par défaut) | intégrée = ["Vega", "Arcturus", "ENIF", "CAPH", "Mimosa"] |
|---|---|
| déclinaison_min = -30 ° (par défaut) | déclinaison_min = 10 ° |
|---|---|
| ansInCice 2000 = 0 (par défaut) | ansConce 200000 = -3100 |
|---|---|
| displayStarNamesLabels = true (par défaut) | displayStarNamesLabels = false |
|---|---|
| DisplayDeclinlinalNumbers = true (par défaut) (sans étiquettes d'étoile) | DisplayDeclinlinalNumbers = False (sans étiquettes d'étoiles) |
|---|---|
| incréments = 10 (par défaut) (sans étiquettes d'étoiles) | incréments = 5 (sans étiquettes d'étoiles) |
|---|---|
| Isprecescestraded = true (par défaut) (annois 2000 = 11500) | Isprecessioning inclused = false (YearsInCe2000 = 11500) |
|---|---|
| maxmagnitudeFilter = Aucun (par défaut) | MaxmagnitudeFilter = 1 |
|---|---|
| userDefinedStars = [] (par défaut) (avec juste "Vega") | userDefinedStars = [exalibur_star, karaboudjan_star] (de QuickStart avec "Vega") |
|---|---|
| OnlyDisplayUserStars = false (par défaut) avec UserDefinedStars | OnlyDisplayUserStars = true avec userDefinedStars = [exalibur_star, karaboudjan_star] (de QuickStart) |
|---|---|
| fig_plot_title = (par défaut) | fig_plot_title = "Ceci est un exemple de titre pour un graphique étoile" |
|---|---|
| fig_plot_color = "C0" (par défaut) (sans étiquettes d'étoile) | fig_plot_color = "darkorchid" (sans étiquettes d'étoile) |
|---|---|
FinalPositionOfStars ()
Renvoie un dictionnaire pour les positions finales des étoiles pour une année spécifique dans le format: {'Star Name': {"déclinaison": déclinaison (int), "ra": ra (str)}
finalPositionOfStars(builtInStars=[],
yearSince2000=0,
isPrecessionIncluded=True,
userDefinedStars=[],
onlyDisplayUserStars=False,
declination_min=None,
declination_max=None,
save_to_csv=None)
StarPositionOvertime ()
Renvoie la position d'une seule étoile dans le temps
starPositionOverTime(builtInStarName=None,
newStar=None,
startYearSince2000=None,
endYearSince2000=None,
incrementYear=5,
isPrecessionIncluded=True,
save_to_csv=None)
Vega5 ansprédirepolestar
Retournez l'étoile du pôle Nord / Sud pendant une année donnée depuis 2000
predictPoleStar(yearSince2000=0, northOrSouth="North")
North = 90 ° et South = -90 °, par défaut au North PlotStarpospositionOvertime ()
Tracer la déclinaison d'une étoile et la position de l'ascension droite au fil du temps
plotStarPositionOverTime(builtInStarName=None,
newStar=None,
startYearSince2000=None,
endYearSince2000=None,
incrementYear=10,
isPrecessionIncluded=True,
DecOrRA="D",
showPlot=True,
showYearMarker=True,
fig_plot_title=None,
fig_plot_color="C0",
figsize_n=12,
figsize_dpi=100,
save_plot_name=None)
VegaD ou Ascension droite RA , par défaut à D10 ans<STAR NAME> <DECLINATION/RA> (<With/Without> Precession) from <START BCE/CE> to <END BCE/CE>, every <YEAR INCREMENT> YearsC012100Déclinaison avec précession:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = True ,
incrementYear = 5 ,
DecOrRA = "D" )Déclinaison sans précession:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = False ,
incrementYear = 5 ,
DecOrRA = "D" )Ascension droite avec précession:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = True ,
incrementYear = 5 ,
DecOrRA = "R" )Ascension droite sans précession:
star_chart_spherical_projection . plotStarPositionOverTime ( builtInStarName = "Vega" ,
newStar = None ,
startYearSince2000 = - 15000 ,
endYearSince2000 = 15000 ,
isPrecessionIncluded = False ,
incrementYear = 5 ,
DecOrRA = "R" )Graphique des étoiles dans l'hémisphère nord (centré sur 90 °) sans précession
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="red")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="red")
Graphique des étoiles dans l'hémisphère nord (centré sur 90 °) avec précession
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="red")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="red")
Graphique des étoiles dans l'hémisphère sud (centré sur -90 °) sans précession
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="cornflowerblue")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=False,
fig_plot_color="cornflowerblue")
Tableau des étoiles dans l'hémisphère sud (centré sur -90 °) avec précession
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=False,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="cornflowerblue")
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South",
displayStarNamesLabels=True,
yearSince2000=11500,
isPrecessionIncluded=True,
fig_plot_color="cornflowerblue")
Pour exécuter ou tester contre le gitub de github / fourchette star-chart-spherical-projection , un environnement de développement peut être créé via Conda / MiniConda
Tout d'abord, installez MiniConda
Ensuite, en utilisant l' environment.yml existant.yml, un nouvel environnement conda peut être créé pour exécuter / tester des scripts contre
conda env create --file environment.yml
Une fois l'environnement construit, activez l'environnement:
conda activate star_chart
Pour exécuter les tests existants et nouveaux à partir du répertoire racine:
python -m pytest
Nommé étoiles spécifiées par "Catalogue IAU des noms d'étoiles" avec la position d'étoile (ascension droite et déclinaison) ainsi que l'angle et la vitesse du mouvement approprié à partir de dans le sky.org et wikipedia où indiqué
Modèle de précession: Vondrák, J., et al. «De nouvelles expressions de précession, valables pour des intervalles de temps longs.» Astronomy & Astrophysics, Vol. 534, 2011
Code de précession adapté à Python 3+ du modèle de précession à long terme de Vondrak Github Repo 'Vondrak')
Soumettez un correctif de bogue, une question ou une demande de fonctionnalité en tant que problème de github ou à [email protected]