https://github.com/cyschneck/star-chart-spherical-projection

A Python package to generate astronomy star charts that corrects for distortions with stereographic projection

https://github.com/cyschneck/star-chart-spherical-projection

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.1%) to scientific vocabulary

Keywords

asterisms astronomy constellation-analysis constellations precession proper-motion spherical-projection star-chart stars stereographic-projection
Last synced: 6 months ago · JSON representation ·

Repository

A Python package to generate astronomy star charts that corrects for distortions with stereographic projection

Basic Info
  • Host: GitHub
  • Owner: cyschneck
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 52.9 MB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 25
Topics
asterisms astronomy constellation-analysis constellations precession proper-motion spherical-projection star-chart stars stereographic-projection
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Star-Chart-Spherical-Projection

PyPi PyPi-Versions license repo-status pytests data-up-to-date codecov

A Python package to generate circular astronomy star charts (past, present, and future) with spherical projection to correct for distortions with all IAU named stars accurate over 400,000 years with proper motion and precession of the equinoxes

  • Plot Stars on a (Polar) Star Chart
    • plotstereographicprojection()
  • Return Final Position of Stars
    • final_position()
    • positionovertime()
    • plot_position()
    • predictpolestar()
  • Add a New Star to Plot
    • addnewstar()

Quickstart: Star-Chart-Spherical-Projection

Plot stars in the Southern Hemisphere for the year 2025 (without stars labels) ```python import starchartspherical_projection as scsp

scsp.plotstereographicprojection(pole="South", displaylabels=False, maxmagnitude=3, yearsince2000=25) ``` quickstart_star_chart+png

Plot a few built-in stars as well as two new user defined stars in the Northern Hemisphere for the year 1961 (2000-39) (with stars labels and in red). This uses both methods to define the proper motion for new stars: with a given proper motion and angle and with the proper motion speed in the declination and right ascension ```python import starchartspherical_projection as scsp

exaliburstar = scsp.addnewstar(starname="Exalibur", ra="14.04.23", dec=64.22, pmspeed=12.3, pmangle=83, magnitude=1.2) karaboudjanstar = scsp.addnewstar(starname="Karaboudjan", ra="3.14.15", dec=10.13, pmspeedra=57.6, pmspeeddec=60.1, magnitude=0.3) scsp.plotstereographicprojection(pole="North", includedstars=["Vega", "Arcturus", "Altair"], addedstars=[exaliburstar, karaboudjanstar], displaylabels=True, figplotcolor="red", yearsince_2000=-39) ``` quickstart_star_chart+png

Or, a simple chart with the Big Dipper ```python import starchartspherical_projection as scsp

scsp.plotstereographicprojection(pole="North", includedstars=["Dubhe", "Merak", "Phecda", "Megrez", "Alioth", "Mizar", "Alkaid"], displaylabels=False, yearsince2000=-39, declination_min=40) ``` quickstart_star_chart_big_dipper+png

Return the final position of a Vega (can be a single star or a list of stars) after 11,500 years when Vega is the new North Pole Star (star closest to +90°) ```python import starchartspherical_projection as scsp

starfinalposdict = scsp.finalposition(includedstars=["Vega"], yearsince2000=11500, savetocsv="finalstar_positions.csv") `` Returns a dictionary with a star and its declination and right ascension:{'Vega': {'Declination': 83.02282965393067, 'RA': '05.07.576553896631'}}`

The final position of the stars are saved in final_star_positions.csv with the headers ["Star Name", "Right Ascension (HH.MM.SS)", "Declination (DD.SS)"]

This can be used to determine past and future pole stars. For example, Wikipedia states that the star Thuban is:

A relatively inconspicuous star in the night sky of the Northern Hemisphere, it is historically significant as having been the north pole star from the 4th to 2nd millennium BC

```python import starchartspherical_projection as scsp

scsp.finalposition(includedstars=["Thuban"], yearsince2000=-5000) `` So, 5000 years ago, Thuban sat at a declination of88.89649680374434` degrees, representing the nearest named star to the North Pole (90 degrees)

Install

PyPi pip install at pypi.org/project/star-chart-spherical-projection/

pip install star-chart-spherical-projection

Overview

The first step to plot the celestial sphere onto a 2D plot is to map the star's right ascension as hours along the plot (matplotlib polar plot's theta value) and declination as the distance from the center of the circle (matplotlib polar plot's radius value). However, attempting to map the right ascension and declination directly will cause distortion since the angles between the stars along the declination are no longer conserved. On the left, the constellation of the Big Dipper is stretched into an unfamiliar shape due to this distortion. By accounting for the spherical transformation, the star chart can be corrected as seen on the right.

| Without Correction | With Correction | | ------------- | ------------- | | without_correction | with_correction |

The sphere is projected from the South Pole (via Stereographic projection):

From the perspective of an observer on the Earth's surface, the stars appear to sit along the surface of the celestial sphere--an imaginary sphere of arbitrary radius with the Earth at its center. All objects in the sky will appear projected on the celestial sphere regardless of their true distance from Earth. Each star's position is given by two values. Declination is the angular distance from the celestial equator and right ascension is the distance from the position of the vernal equinox. During the course of a full 24-hour day, stars will appear to rotate across the sky as a result of the Earth's rotation, but their position is fixed. A star’s actual position does change over time as the combined result of the star’s small movement (proper motion) as well as the changing rotational axis of the Earth (precession).

Spherical projection can overcome angular distortion by converting the position of the declination to: ```

Projected from South Pole (Northern Hemisphere)

northhemispheredeclination = tan(45° + (original_declination / 2))

Projected from North Pole (Southern Hemisphere)

southhemispheredeclination = tan(45° - (original_declination / 2)) ``` Where in the Northern Hemisphere, projections are formed from the South Pole: morrisons_astrolabe

Data

All IAU named stars are collected from the IAU WSGN Star Catalog

ReadMe Card

IAU Named Stars with Data

  • Proper Names
  • WSGN-ID
  • Designation
  • HIP
  • Bayer ID
  • Constellation
  • Origin
  • Ethnic, Cultural Group, or Language
  • Reference
  • Additional Info, e.g. language corruptions
  • Date of Adoption

Data is collected via automatic web scraping from in-the-sky.org and wikipedia.org (and some manual additions)

The stars with relevant data is collected as:

  • Common Name
  • Right Ascension (HH.MM.SS)
  • Declination (DD.SS)
  • Magnitude (V, Visual)
  • Proper Motion Speed (mas/yr)
  • Proper Motion Angle (DD.SS)
  • Proper Motion RA (mas/yr)
  • Proper Motion DEC (mas/yr)
  • Alternative Names
  • URL

Add a New Star

New Star Object

The star chart package comes with hundreds of the brightest stars as part of a built-in library. However, a new star can be easily added for plotting or calculations by creating a new star object. The new star object will require a few important features that plotstereographicprojection() and final_position() can now accept as an additional argument.

This allows for the creation of a new star in two ways:

1. With a Proper Motion Speed and a Proper Motion Angle

As seen in in-the-sky.org for Pollux star_chart_spherical_projection.add_new_star(star_name=None, ra=None, dec=None, pm_speed=None, pm_angle=None, magnitude=None) * [REQUIRED] starname: (string) A star name to be displayed as a label * [REQUIRED] ra: (string) Right Ascension of star as a string with three parts 'HH.MM.SS' (Hours, Minutes, Seconds) * [REQUIRED] dec: (int/float) Declination of star (a positive or negative value) * [REQUIRED] pmspeed: (int/float) Proper motion speed as a single value (in mas/year) * [REQUIRED] pm_angle: (int/float) Proper motion positive angle (between 0° and 360°) * [REQUIRED] magnitude: (int/float) Absolute Visual Magnitude

With the Proper Motion speed along the Right Ascension and Declination

As seen in wikipedia.org for Pollux

star_chart_spherical_projection.add_new_star(star_name=None, ra=None, dec=None, pm_speed_ra=None, pm_speed_dec=None, magnitude=None) * [REQUIRED] starname: (string) A star name to be displayed as a label * [REQUIRED] ra: (string) Right Ascension of star as a string with three parts 'HH.MM.SS' (Hours, Minutes, Seconds) * [REQUIRED] dec: (int/float) Declination of star (a positive or negative value) * [REQUIRED] pmspeedra: (int/float) Speed of Proper Motion along the Right Ascension * [REQUIRED] pmspeed_dec: (int/float) Speed of Proper Motion along the Declination * [REQUIRED] magnitude: (int/float) Absolute Visual Magnitude

Important Note: RA/Dec proper motion will be converted from speed along the right ascension and declination to a proper motion speed (pm_speed) and an angle (pm_angle) for further calculations

Stars Built-in (Click to view all)
'Absolutno', 'Acamar', 'Achernar', 'Achird', 'Acrab', 'Acrux', 'Acubens', 'Adhafera', 'Adhara', 'Adhil', 'Ain', 'Ainalrami', 'Aiolos', 'Aladfar', 'Alasia', 'Albaldah', 'Albali', 'Albireo', 'Alchiba', 'Alcor', 'Alcyone', 'Aldebaran', 'Alderamin', 'Aldhanab', 'Aldhibah', 'Aldulfin', 'Alfarasalkamil', 'Alfirk', 'Algedi', 'Algenib', 'Algieba', 'Algol', 'Algorab', 'Alhena', 'Alioth', 'Aljanah', 'Alkaid', 'Alkalurops', 'Alkaphrah', 'Alkarab', 'Alkes', 'Almaaz', 'Almach', 'Alnair', 'Alnasl', 'Alnilam', 'Alnitak', 'Alniyat', 'Alphard', 'Alphecca', 'Alpheratz', 'Alpherg', 'Alrakis', 'Alrescha', 'Alruba', 'Alsafi', 'Alsciaukat', 'Alsephina', 'Alshain', 'Alshat', 'Altair', 'Altais', 'Alterf', 'Aludra', 'Alula Australis', 'Alula Borealis', 'Alya', 'Alzirr', 'Amadioha', 'Amansinaya', 'Anadolu', 'Ancha', 'Angetenar', 'Aniara', 'Ankaa', 'Anser', 'Antares', 'Antinous', 'Arcalís', 'Arcturus', 'Arkab Posterior', 'Arkab Prior', 'Arneb', 'Ascella', 'Asellus Australis', 'Asellus Borealis', 'Ashlesha', 'Aspidiske', 'Asterope', 'Atakoraka', 'Athebyne', 'Atik', 'Atlas', 'Atria', 'Avior', 'Axólotl', 'Ayeyarwady', 'Azelfafage', 'Azha', 'Azmidi', 'Añañuca', 'Baekdu', 'Bake-eo', "Barnard's Star", 'Baten Kaitos', 'Batsũ̀', 'Beemim', 'Beid', 'Belel', 'Bellatrix', 'Berehynia', 'Betelgeuse', 'Bharani', 'Bibhā', 'Biham', 'Bodu', 'Bosona', 'Botein', 'Brachium', 'Bubup', 'Buna', 'Bunda', 'Bélénos', 'Canopus', 'Capella', 'Caph', 'Castor', 'Castula', 'Cebalrai', 'Ceibo', 'Celaeno', 'Cervantes', 'Chalawan', 'Chamukuy', 'Chaophraya', 'Chara', 'Chasoň', 'Chechia', 'Chertan', 'Citadelle', 'Citalá', 'Cocibolca', 'Copernicus', 'Cor Caroli', 'Cujam', 'Cursa', 'Dabih', 'Dajiangjunbei', 'Dalim', 'Danfeng', 'Deltoton', 'Deneb', 'Deneb Algedi', 'Denebola', 'Diadem', 'Dilmun', 'Dingolay', 'Diphda', 'Diya', 'Dofida', 'Dombay', 'Dschubba', 'Dubhe', 'Dziban', 'Dìwö', 'Ebla', 'Edasich', 'Electra', 'Elgafar', 'Elkurud', 'Elnath', 'Eltanin', 'Emiw', 'Enif', 'Errai', 'Fafnir', 'Fang', 'Fawaris', 'Felis', 'Felixvarela', 'Filetdor', 'Flegetonte', 'Fomalhaut', 'Formosa', 'Franz', 'Fulu', 'Fumalsamakah', 'Funi', 'Furud', 'Fuyue', 'Gacrux', 'Gakyid', 'Gar', 'Garnet Star', 'Geminga', 'Giausar', 'Gienah', 'Ginan', 'Gloas', 'Gnomon', 'Gomeisa', 'Grumium', 'Guahayona', 'Gudja', 'Gumala', 'Guniibuu', 'Hadar', 'Haedus', 'Hamal', 'Hassaleh', 'Hatysa', 'Helvetios', 'Heng', 'Heze', 'Hoerikwaggo', 'Hoggar', 'Homam', 'Honores', 'Horna', 'Hunahpú', 'Hunor', 'Hydor', 'Iklil', 'Illyrian', 'Imai', 'Inquill', 'Intan', 'Intercrus', 'Irena', 'Itonda', 'Izar', 'Jabbah', 'Jishui', 'Junnanmen', 'Kaewkosin', 'Kaffaljidhma', 'Kaffalmusalsala', 'Kalausi', 'Kamuy', 'Kang', 'Karaka', 'Kaus Australis', 'Kaus Borealis', 'Kaus Media', 'Kaveh', 'Keid', 'Khambalia', 'Kitalpha', 'Kochab', 'Koeia', 'Koit', 'Komondor', 'Kornephoros', 'Kosjenka', 'Kraz', 'Kui', 'Kulou', 'Kurhah', 'La Superba', 'Lang-exster', 'Larawag', 'Leepwal', 'Lerna', 'Lesath', 'Libertas', 'Lich', 'Liesma', 'Lilii Borea', 'Lionrock', 'Lucilinburhuc', 'Lusitânia', 'Maasym', 'Macondo', 'Mago', 'Mahasim', 'Mahsati', 'Maia', 'Malmok', 'Marfik', 'Markab', 'Markeb', 'Marsic', 'Maru', 'Matar', 'Matza', 'Mazaalai', 'Mebsuta', 'Megrez', 'Meissa', 'Mekbuda', 'Meleph', 'Menkalinan', 'Menkar', 'Menkent', 'Menkib', 'Merak', 'Merga', 'Meridiana', 'Merope', 'Mesarthim', 'Miaplacidus', 'Mimosa', 'Minchir', 'Minelauva', 'Mintaka', 'Mira', 'Mirach', 'Miram', 'Mirfak', 'Mirzam', 'Misam', 'Mizar', 'Moldoveanu', 'Montuno', 'Morava', 'Moriah', 'Mothallah', 'Mouhoun', 'Mpingo', 'Muliphein', 'Muphrid', 'Muscida', 'Musica', 'Muspelheim', 'Márohu', 'Mönch', 'Nahn', 'Naledi', 'Naos', 'Nashira', 'Natasha', 'Nekkar', 'Nembus', 'Nenque', 'Nervia', 'Nganurganity', 'Nihal', 'Nikawiy', 'Noquisi', 'Nosaxa', 'Nunki', 'Nusakan', 'Nushagak', 'Nyamien', 'Násti', 'Ogma', 'Okab', 'Orkaria', 'Paikauhale', 'Paradys', 'Parumleo', 'Peacock', 'Petra', 'Phact', 'Phecda', 'Pherkad', 'Phoenicia', 'Phyllon Kissinou', 'Piautos', 'Pincoya', 'Pipirima', 'Pipit', 'Pipoltr', 'Pleione', 'Poerava', 'Polaris', 'Polaris Australis', 'Polis', 'Pollux', 'Porrima', 'Praecipua', 'Prima Hyadum', 'Procyon', 'Propus', 'Proxima Centauri', 'Quadrans', 'Ramus', 'Ran', 'Rana', 'Rapeto', 'Rasalas', 'Rasalgethi', 'Rasalhague', 'Rasalnaqa', 'Rastaban', 'Regulus', 'Revati', 'Rhombus', 'Rigel', 'Rigil Kentaurus', 'Rosalíadecastro', 'Rotanev', 'Ruchbah', 'Rukbat', 'Sabik', 'Saclateni', 'Sadachbia', 'Sadalbari', 'Sadalmelik', 'Sadalsuud', 'Sadr', 'Safina', 'Sagarmatha', 'Saiph', 'Salm', 'Sansuna', 'Sargas', 'Sarin', 'Sceptrum', 'Scheat', 'Schedar', 'Secunda Hyadum', 'Segin', 'Seginus', 'Sham', 'Shama', 'Shaomin', 'Sharjah', 'Shaula', 'Sheliak', 'Sheratan', 'Shimu', 'Sika', 'Sirius', 'Situla', 'Skat', 'Solaris', 'Solitaire', 'Spica', 'Stellio', 'Sterrennacht', 'Stribor', 'Sualocin', 'Subra', 'Suhail', 'Sulafat', 'Syrma', 'Sāmaya', 'Tabit', 'Taika', 'Taiyangshou', 'Taiyi', 'Talitha', 'Tangra', 'Tania Australis', 'Tania Borealis', 'Tapecue', 'Tarazed', 'Tarf', 'Taygeta', 'Tegmine', 'Tejat', 'Tengshe', 'Terebellum', 'Tevel', 'Theemin', 'Thuban', 'Tiaki', 'Tianfu', 'Tianguan', 'Tianyi', 'Timir', 'Tislit', 'Titawin', 'Tojil', 'Toliman', 'Tonatiuh', 'Torcular', 'Triminus', 'Tuiren', 'Tupi', 'Tupã', 'Tureis', 'Tusizuo', 'Udkadua', 'Ukdah', 'Uklun', 'Unukalhai', 'Uridim', 'Uruk', 'Uúba', 'Vega', 'Veritate', 'Vindemiatrix', 'Wasat', 'Wattle', 'Wazn', 'Wezen', 'Wouri', 'Wurren', 'Xami', 'Xamidimura', 'Xihe', 'Xuange', 'Yed Posterior', 'Yed Prior', 'Yildun', 'Yunü', 'Zaniah', 'Zaurak', 'Zavijava', 'Zembra', 'Zhang', 'Zhou', 'Zibal', 'Zosma', 'Zubenelgenubi', 'Zubenelhakrabi', 'Zubeneschamali'

Plot Stars on a Polar Chart

plotstereographicprojection()

Plot stars on a Stereographic Polar Plot plot_stereographic_projection(pole=None, included_stars=[], declination_min=None, year_since_2000=0, display_labels=True, display_dec=True, increment=10, is_precession=True, max_magnitude=None, added_stars=[], only_added_stars=False, show_plot=True, fig_plot_title=None, fig_plot_color="C0", figsize_n=12, figsize_dpi=100, save_plot_name=None) - [REQUIRED] pole: (string) map for either the "North" or "South" hemisphere - [OPTIONAL] includedstars: (list) a list of star names to include from built-in list, by default = [] includes all stars (in starswithdata.csv). Example: ["Vega", "Merak", "Dubhe"] - [OPTIONAL] declinationmin: (int/float) outer declination value, defaults to -30° in Northern hemisphere and 30° in Southern hemisphere - [OPTIONAL] yearsince2000: (int/float) years since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years - [OPTIONAL] displaylabels: (boolean) display the star name labels, defaults to True - [OPTIONAL] displaydec: (boolean) display declination values, defaults to True - [OPTIONAL] increment: (int) increment values for declination (either 1, 5, 10), defaults to 10 - [OPTIONAL] isprecession: (boolean) when calculating star positions include predictions for precession, defaults to True - [OPTIONAL] maxmagnitude: (int/float) filter existing stars by magnitude by setting the max magnitude for the chart to include, defaults to None (shows all stars) - [OPTIONAL] addedstars: (list) List of new star objects of stars the user has added - [OPTIONAL] onlyaddedstars: (bool) Only display the stars defined by the users (addedstars) - [OPTIONAL] showplot: (boolean) show plot (triggers plt.show()), useful when generating multiple plots at once in the background, defaults to True - [OPTIONAL] figplottitle: (string) figure title, defaults to "ern Hemisphere [ Years Since 2000 (YYYY)]: +/-90° to °" - [OPTIONAL] figplotcolor: (string) scatter plot star color, defaults to C0 - [OPTIONAL] figsizen: (int/float) figure size, default to 12 - [OPTIONAL] figsizedpi: (int/float) figure DPI, default to 100 - [OPTIONAL] saveplot_name: (string) save plot with a string name, defaults to not saving

Stars that will be included by default when included_stars = [] (Click to view all)
'Absolutno', 'Acamar', 'Achernar', 'Achird', 'Acrab', 'Acrux', 'Acubens', 'Adhafera', 'Adhara', 'Adhil', 'Ain', 'Ainalrami', 'Aiolos', 'Aladfar', 'Alasia', 'Albaldah', 'Albali', 'Albireo', 'Alchiba', 'Alcor', 'Alcyone', 'Aldebaran', 'Alderamin', 'Aldhanab', 'Aldhibah', 'Aldulfin', 'Alfarasalkamil', 'Alfirk', 'Algedi', 'Algenib', 'Algieba', 'Algol', 'Algorab', 'Alhena', 'Alioth', 'Aljanah', 'Alkaid', 'Alkalurops', 'Alkaphrah', 'Alkarab', 'Alkes', 'Almaaz', 'Almach', 'Alnair', 'Alnasl', 'Alnilam', 'Alnitak', 'Alniyat', 'Alphard', 'Alphecca', 'Alpheratz', 'Alpherg', 'Alrakis', 'Alrescha', 'Alruba', 'Alsafi', 'Alsciaukat', 'Alsephina', 'Alshain', 'Alshat', 'Altair', 'Altais', 'Alterf', 'Aludra', 'Alula Australis', 'Alula Borealis', 'Alya', 'Alzirr', 'Amadioha', 'Amansinaya', 'Anadolu', 'Ancha', 'Angetenar', 'Aniara', 'Ankaa', 'Anser', 'Antares', 'Antinous', 'Arcalís', 'Arcturus', 'Arkab Posterior', 'Arkab Prior', 'Arneb', 'Ascella', 'Asellus Australis', 'Asellus Borealis', 'Ashlesha', 'Aspidiske', 'Asterope', 'Atakoraka', 'Athebyne', 'Atik', 'Atlas', 'Atria', 'Avior', 'Axólotl', 'Ayeyarwady', 'Azelfafage', 'Azha', 'Azmidi', 'Añañuca', 'Baekdu', 'Bake-eo', "Barnard's Star", 'Baten Kaitos', 'Batsũ̀', 'Beemim', 'Beid', 'Belel', 'Bellatrix', 'Berehynia', 'Betelgeuse', 'Bharani', 'Bibhā', 'Biham', 'Bodu', 'Bosona', 'Botein', 'Brachium', 'Bubup', 'Buna', 'Bunda', 'Bélénos', 'Canopus', 'Capella', 'Caph', 'Castor', 'Castula', 'Cebalrai', 'Ceibo', 'Celaeno', 'Cervantes', 'Chalawan', 'Chamukuy', 'Chaophraya', 'Chara', 'Chasoň', 'Chechia', 'Chertan', 'Citadelle', 'Citalá', 'Cocibolca', 'Copernicus', 'Cor Caroli', 'Cujam', 'Cursa', 'Dabih', 'Dajiangjunbei', 'Dalim', 'Danfeng', 'Deltoton', 'Deneb', 'Deneb Algedi', 'Denebola', 'Diadem', 'Dilmun', 'Dingolay', 'Diphda', 'Diya', 'Dofida', 'Dombay', 'Dschubba', 'Dubhe', 'Dziban', 'Dìwö', 'Ebla', 'Edasich', 'Electra', 'Elgafar', 'Elkurud', 'Elnath', 'Eltanin', 'Emiw', 'Enif', 'Errai', 'Fafnir', 'Fang', 'Fawaris', 'Felis', 'Felixvarela', 'Filetdor', 'Flegetonte', 'Fomalhaut', 'Formosa', 'Franz', 'Fulu', 'Fumalsamakah', 'Funi', 'Furud', 'Fuyue', 'Gacrux', 'Gakyid', 'Gar', 'Garnet Star', 'Geminga', 'Giausar', 'Gienah', 'Ginan', 'Gloas', 'Gnomon', 'Gomeisa', 'Grumium', 'Guahayona', 'Gudja', 'Gumala', 'Guniibuu', 'Hadar', 'Haedus', 'Hamal', 'Hassaleh', 'Hatysa', 'Helvetios', 'Heng', 'Heze', 'Hoerikwaggo', 'Hoggar', 'Homam', 'Honores', 'Horna', 'Hunahpú', 'Hunor', 'Hydor', 'Iklil', 'Illyrian', 'Imai', 'Inquill', 'Intan', 'Intercrus', 'Irena', 'Itonda', 'Izar', 'Jabbah', 'Jishui', 'Junnanmen', 'Kaewkosin', 'Kaffaljidhma', 'Kaffalmusalsala', 'Kalausi', 'Kamuy', 'Kang', 'Karaka', 'Kaus Australis', 'Kaus Borealis', 'Kaus Media', 'Kaveh', 'Keid', 'Khambalia', 'Kitalpha', 'Kochab', 'Koeia', 'Koit', 'Komondor', 'Kornephoros', 'Kosjenka', 'Kraz', 'Kui', 'Kulou', 'Kurhah', 'La Superba', 'Lang-exster', 'Larawag', 'Leepwal', 'Lerna', 'Lesath', 'Libertas', 'Lich', 'Liesma', 'Lilii Borea', 'Lionrock', 'Lucilinburhuc', 'Lusitânia', 'Maasym', 'Macondo', 'Mago', 'Mahasim', 'Mahsati', 'Maia', 'Malmok', 'Marfik', 'Markab', 'Markeb', 'Marsic', 'Maru', 'Matar', 'Matza', 'Mazaalai', 'Mebsuta', 'Megrez', 'Meissa', 'Mekbuda', 'Meleph', 'Menkalinan', 'Menkar', 'Menkent', 'Menkib', 'Merak', 'Merga', 'Meridiana', 'Merope', 'Mesarthim', 'Miaplacidus', 'Mimosa', 'Minchir', 'Minelauva', 'Mintaka', 'Mira', 'Mirach', 'Miram', 'Mirfak', 'Mirzam', 'Misam', 'Mizar', 'Moldoveanu', 'Montuno', 'Morava', 'Moriah', 'Mothallah', 'Mouhoun', 'Mpingo', 'Muliphein', 'Muphrid', 'Muscida', 'Musica', 'Muspelheim', 'Márohu', 'Mönch', 'Nahn', 'Naledi', 'Naos', 'Nashira', 'Natasha', 'Nekkar', 'Nembus', 'Nenque', 'Nervia', 'Nganurganity', 'Nihal', 'Nikawiy', 'Noquisi', 'Nosaxa', 'Nunki', 'Nusakan', 'Nushagak', 'Nyamien', 'Násti', 'Ogma', 'Okab', 'Orkaria', 'Paikauhale', 'Paradys', 'Parumleo', 'Peacock', 'Petra', 'Phact', 'Phecda', 'Pherkad', 'Phoenicia', 'Phyllon Kissinou', 'Piautos', 'Pincoya', 'Pipirima', 'Pipit', 'Pipoltr', 'Pleione', 'Poerava', 'Polaris', 'Polaris Australis', 'Polis', 'Pollux', 'Porrima', 'Praecipua', 'Prima Hyadum', 'Procyon', 'Propus', 'Proxima Centauri', 'Quadrans', 'Ramus', 'Ran', 'Rana', 'Rapeto', 'Rasalas', 'Rasalgethi', 'Rasalhague', 'Rasalnaqa', 'Rastaban', 'Regulus', 'Revati', 'Rhombus', 'Rigel', 'Rigil Kentaurus', 'Rosalíadecastro', 'Rotanev', 'Ruchbah', 'Rukbat', 'Sabik', 'Saclateni', 'Sadachbia', 'Sadalbari', 'Sadalmelik', 'Sadalsuud', 'Sadr', 'Safina', 'Sagarmatha', 'Saiph', 'Salm', 'Sansuna', 'Sargas', 'Sarin', 'Sceptrum', 'Scheat', 'Schedar', 'Secunda Hyadum', 'Segin', 'Seginus', 'Sham', 'Shama', 'Shaomin', 'Sharjah', 'Shaula', 'Sheliak', 'Sheratan', 'Shimu', 'Sika', 'Sirius', 'Situla', 'Skat', 'Solaris', 'Solitaire', 'Spica', 'Stellio', 'Sterrennacht', 'Stribor', 'Sualocin', 'Subra', 'Suhail', 'Sulafat', 'Syrma', 'Sāmaya', 'Tabit', 'Taika', 'Taiyangshou', 'Taiyi', 'Talitha', 'Tangra', 'Tania Australis', 'Tania Borealis', 'Tapecue', 'Tarazed', 'Tarf', 'Taygeta', 'Tegmine', 'Tejat', 'Tengshe', 'Terebellum', 'Tevel', 'Theemin', 'Thuban', 'Tiaki', 'Tianfu', 'Tianguan', 'Tianyi', 'Timir', 'Tislit', 'Titawin', 'Tojil', 'Toliman', 'Tonatiuh', 'Torcular', 'Triminus', 'Tuiren', 'Tupi', 'Tupã', 'Tureis', 'Tusizuo', 'Udkadua', 'Ukdah', 'Uklun', 'Unukalhai', 'Uridim', 'Uruk', 'Uúba', 'Vega', 'Veritate', 'Vindemiatrix', 'Wasat', 'Wattle', 'Wazn', 'Wezen', 'Wouri', 'Wurren', 'Xami', 'Xamidimura', 'Xihe', 'Xuange', 'Yed Posterior', 'Yed Prior', 'Yildun', 'Yunü', 'Zaniah', 'Zaurak', 'Zavijava', 'Zembra', 'Zhang', 'Zhou', 'Zibal', 'Zosma', 'Zubenelgenubi', 'Zubenelhakrabi', 'Zubeneschamali'

| pole="North" (-30° to 90°) (without star labels) | pole="South" (30° to -90°) (without star labels) | | ------------- | ------------- | | pole+png | pole+png |

| includedstars= | includedstars=["Vega", "Arcturus", "Enif", "Caph", "Mimosa"]| | ------------- | ------------- | | includedStars+png | includedStars+png |

| declinationmin=-30° (default) (without star labels) | declinationmin=10° (without star labels) | | ------------- | ------------- | | declination_min+png | declination_min+png |

| yearsince2000=0 (default) (without star labels) | yearsince2000=-3100 (without star labels) | | ------------- | ------------- | | declination_min+png | declination_min+png |

| displaylabels=True (default) | displaylabels=False | | ------------- | ------------- | | display_labels+png | display_labels+png |

| displaydec=True (default) (without star labels) | displaydec=False (without star labels) | | ------------- | ------------- | | display_dec+png | display_dec+png |

| increment=10 (default) (without star labels) | increment=5 (without star labels) | | ------------- | ------------- | | increment_default+png | increment_5+png |

| isprecession=True (default) (yearsince2000=11500) (without star labels) | isprecession=False (yearsince2000=11500) (without star labels) | | ------------- | ------------- | | isPrecession_default+png | isPrecession_false+png |

| maxmagnitude=None (default) | maxmagnitude=1 | | ------------- | ------------- | | maxMagnitude_default+png | maxMagnitude+png |

| addedstars= (with just "Vega") | addedstars=exaliburstar, karaboudjanstar | | ------------- | ------------- | | addedStars_default+png | addedStars+png |

| onlyaddedstars=False (default) with added_stars | onlyaddedstars=True with added_stars=exaliburstar, karaboudjanstar | | ------------- | ------------- | | onlyAddedStars_default+png | onlyAddedStars+png |

| figplottitle=(default) | figplottitle="This is a Example Title for a Star Chart" | | ------------- | ------------- | | fig_plot_title_default+png | fig_plot_title+png |

| figplotcolor="C0" (default) (without star labels) | figplotcolor="darkorchid" (without star labels) | | ------------- | ------------- | | fig_plot_color_default+png | fig_plot_color_dark_orchid+png |

Return Final Position of Stars

final_position()

Returns a dictionary for the final positions of the stars for a specific year in the format: {'Common Name': {"Declination" : Declination (float), "RA": RA (str)}} final_position(included_stars=[], year_since_2000=0, is_precession=True, added_stars=[], only_added_stars=False, declination_min=None, declination_max=None, save_to_csv=None) - [OPTIONAL] includedstars: (list) a list of star names to include from built-in list, by default = [] includes all stars (in starswithdata.csv). Example: ["Vega", "Merak", "Dubhe"] - [OPTIONAL] yearsince2000: (int/float) years since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years - [OPTIONAL] isprecession: (boolean) when calculating star positions include predictions for precession, defaults to True - [OPTIONAL] addedstars: (list): List of new star objects of stars the user has added - [OPTIONAL] onlyaddedstars: (bool) Only include the stars defined by the users (addedstars) - [OPTIONAL] declinationmin: (int/float) set minimum declination value, defaults to -30° in Northern hemisphere and 30° in Southern hemisphere - [OPTIONAL] declinationmax: (int/float) set maximum declination value, defaults to 90° in Northern hemisphere and -90° in Southern hemisphere - [OPTIONAL] savetocsv: (string) CSV filename and location to save final star positions with headers ["Common Name", "Right Ascension (HH.MM.SS)", "Declination (DD.SS)"]

Stars that will be included by default when included_stars = [] (Click to view all)
'Absolutno', 'Acamar', 'Achernar', 'Achird', 'Acrab', 'Acrux', 'Acubens', 'Adhafera', 'Adhara', 'Adhil', 'Ain', 'Ainalrami', 'Aiolos', 'Aladfar', 'Alasia', 'Albaldah', 'Albali', 'Albireo', 'Alchiba', 'Alcor', 'Alcyone', 'Aldebaran', 'Alderamin', 'Aldhanab', 'Aldhibah', 'Aldulfin', 'Alfarasalkamil', 'Alfirk', 'Algedi', 'Algenib', 'Algieba', 'Algol', 'Algorab', 'Alhena', 'Alioth', 'Aljanah', 'Alkaid', 'Alkalurops', 'Alkaphrah', 'Alkarab', 'Alkes', 'Almaaz', 'Almach', 'Alnair', 'Alnasl', 'Alnilam', 'Alnitak', 'Alniyat', 'Alphard', 'Alphecca', 'Alpheratz', 'Alpherg', 'Alrakis', 'Alrescha', 'Alruba', 'Alsafi', 'Alsciaukat', 'Alsephina', 'Alshain', 'Alshat', 'Altair', 'Altais', 'Alterf', 'Aludra', 'Alula Australis', 'Alula Borealis', 'Alya', 'Alzirr', 'Amadioha', 'Amansinaya', 'Anadolu', 'Ancha', 'Angetenar', 'Aniara', 'Ankaa', 'Anser', 'Antares', 'Antinous', 'Arcalís', 'Arcturus', 'Arkab Posterior', 'Arkab Prior', 'Arneb', 'Ascella', 'Asellus Australis', 'Asellus Borealis', 'Ashlesha', 'Aspidiske', 'Asterope', 'Atakoraka', 'Athebyne', 'Atik', 'Atlas', 'Atria', 'Avior', 'Axólotl', 'Ayeyarwady', 'Azelfafage', 'Azha', 'Azmidi', 'Añañuca', 'Baekdu', 'Bake-eo', "Barnard's Star", 'Baten Kaitos', 'Batsũ̀', 'Beemim', 'Beid', 'Belel', 'Bellatrix', 'Berehynia', 'Betelgeuse', 'Bharani', 'Bibhā', 'Biham', 'Bodu', 'Bosona', 'Botein', 'Brachium', 'Bubup', 'Buna', 'Bunda', 'Bélénos', 'Canopus', 'Capella', 'Caph', 'Castor', 'Castula', 'Cebalrai', 'Ceibo', 'Celaeno', 'Cervantes', 'Chalawan', 'Chamukuy', 'Chaophraya', 'Chara', 'Chasoň', 'Chechia', 'Chertan', 'Citadelle', 'Citalá', 'Cocibolca', 'Copernicus', 'Cor Caroli', 'Cujam', 'Cursa', 'Dabih', 'Dajiangjunbei', 'Dalim', 'Danfeng', 'Deltoton', 'Deneb', 'Deneb Algedi', 'Denebola', 'Diadem', 'Dilmun', 'Dingolay', 'Diphda', 'Diya', 'Dofida', 'Dombay', 'Dschubba', 'Dubhe', 'Dziban', 'Dìwö', 'Ebla', 'Edasich', 'Electra', 'Elgafar', 'Elkurud', 'Elnath', 'Eltanin', 'Emiw', 'Enif', 'Errai', 'Fafnir', 'Fang', 'Fawaris', 'Felis', 'Felixvarela', 'Filetdor', 'Flegetonte', 'Fomalhaut', 'Formosa', 'Franz', 'Fulu', 'Fumalsamakah', 'Funi', 'Furud', 'Fuyue', 'Gacrux', 'Gakyid', 'Gar', 'Garnet Star', 'Geminga', 'Giausar', 'Gienah', 'Ginan', 'Gloas', 'Gnomon', 'Gomeisa', 'Grumium', 'Guahayona', 'Gudja', 'Gumala', 'Guniibuu', 'Hadar', 'Haedus', 'Hamal', 'Hassaleh', 'Hatysa', 'Helvetios', 'Heng', 'Heze', 'Hoerikwaggo', 'Hoggar', 'Homam', 'Honores', 'Horna', 'Hunahpú', 'Hunor', 'Hydor', 'Iklil', 'Illyrian', 'Imai', 'Inquill', 'Intan', 'Intercrus', 'Irena', 'Itonda', 'Izar', 'Jabbah', 'Jishui', 'Junnanmen', 'Kaewkosin', 'Kaffaljidhma', 'Kaffalmusalsala', 'Kalausi', 'Kamuy', 'Kang', 'Karaka', 'Kaus Australis', 'Kaus Borealis', 'Kaus Media', 'Kaveh', 'Keid', 'Khambalia', 'Kitalpha', 'Kochab', 'Koeia', 'Koit', 'Komondor', 'Kornephoros', 'Kosjenka', 'Kraz', 'Kui', 'Kulou', 'Kurhah', 'La Superba', 'Lang-exster', 'Larawag', 'Leepwal', 'Lerna', 'Lesath', 'Libertas', 'Lich', 'Liesma', 'Lilii Borea', 'Lionrock', 'Lucilinburhuc', 'Lusitânia', 'Maasym', 'Macondo', 'Mago', 'Mahasim', 'Mahsati', 'Maia', 'Malmok', 'Marfik', 'Markab', 'Markeb', 'Marsic', 'Maru', 'Matar', 'Matza', 'Mazaalai', 'Mebsuta', 'Megrez', 'Meissa', 'Mekbuda', 'Meleph', 'Menkalinan', 'Menkar', 'Menkent', 'Menkib', 'Merak', 'Merga', 'Meridiana', 'Merope', 'Mesarthim', 'Miaplacidus', 'Mimosa', 'Minchir', 'Minelauva', 'Mintaka', 'Mira', 'Mirach', 'Miram', 'Mirfak', 'Mirzam', 'Misam', 'Mizar', 'Moldoveanu', 'Montuno', 'Morava', 'Moriah', 'Mothallah', 'Mouhoun', 'Mpingo', 'Muliphein', 'Muphrid', 'Muscida', 'Musica', 'Muspelheim', 'Márohu', 'Mönch', 'Nahn', 'Naledi', 'Naos', 'Nashira', 'Natasha', 'Nekkar', 'Nembus', 'Nenque', 'Nervia', 'Nganurganity', 'Nihal', 'Nikawiy', 'Noquisi', 'Nosaxa', 'Nunki', 'Nusakan', 'Nushagak', 'Nyamien', 'Násti', 'Ogma', 'Okab', 'Orkaria', 'Paikauhale', 'Paradys', 'Parumleo', 'Peacock', 'Petra', 'Phact', 'Phecda', 'Pherkad', 'Phoenicia', 'Phyllon Kissinou', 'Piautos', 'Pincoya', 'Pipirima', 'Pipit', 'Pipoltr', 'Pleione', 'Poerava', 'Polaris', 'Polaris Australis', 'Polis', 'Pollux', 'Porrima', 'Praecipua', 'Prima Hyadum', 'Procyon', 'Propus', 'Proxima Centauri', 'Quadrans', 'Ramus', 'Ran', 'Rana', 'Rapeto', 'Rasalas', 'Rasalgethi', 'Rasalhague', 'Rasalnaqa', 'Rastaban', 'Regulus', 'Revati', 'Rhombus', 'Rigel', 'Rigil Kentaurus', 'Rosalíadecastro', 'Rotanev', 'Ruchbah', 'Rukbat', 'Sabik', 'Saclateni', 'Sadachbia', 'Sadalbari', 'Sadalmelik', 'Sadalsuud', 'Sadr', 'Safina', 'Sagarmatha', 'Saiph', 'Salm', 'Sansuna', 'Sargas', 'Sarin', 'Sceptrum', 'Scheat', 'Schedar', 'Secunda Hyadum', 'Segin', 'Seginus', 'Sham', 'Shama', 'Shaomin', 'Sharjah', 'Shaula', 'Sheliak', 'Sheratan', 'Shimu', 'Sika', 'Sirius', 'Situla', 'Skat', 'Solaris', 'Solitaire', 'Spica', 'Stellio', 'Sterrennacht', 'Stribor', 'Sualocin', 'Subra', 'Suhail', 'Sulafat', 'Syrma', 'Sāmaya', 'Tabit', 'Taika', 'Taiyangshou', 'Taiyi', 'Talitha', 'Tangra', 'Tania Australis', 'Tania Borealis', 'Tapecue', 'Tarazed', 'Tarf', 'Taygeta', 'Tegmine', 'Tejat', 'Tengshe', 'Terebellum', 'Tevel', 'Theemin', 'Thuban', 'Tiaki', 'Tianfu', 'Tianguan', 'Tianyi', 'Timir', 'Tislit', 'Titawin', 'Tojil', 'Toliman', 'Tonatiuh', 'Torcular', 'Triminus', 'Tuiren', 'Tupi', 'Tupã', 'Tureis', 'Tusizuo', 'Udkadua', 'Ukdah', 'Uklun', 'Unukalhai', 'Uridim', 'Uruk', 'Uúba', 'Vega', 'Veritate', 'Vindemiatrix', 'Wasat', 'Wattle', 'Wazn', 'Wezen', 'Wouri', 'Wurren', 'Xami', 'Xamidimura', 'Xihe', 'Xuange', 'Yed Posterior', 'Yed Prior', 'Yildun', 'Yunü', 'Zaniah', 'Zaurak', 'Zavijava', 'Zembra', 'Zhang', 'Zhou', 'Zibal', 'Zosma', 'Zubenelgenubi', 'Zubenelhakrabi', 'Zubeneschamali'

python star_chart_spherical_projection.final_position(included_stars=["Thuban", "Vega"], year_since_2000=20000) Returns {'Thuban': {'Declination': 87.71930377141014, 'RA': '02.43.565884224201'}, 'Vega': {'Declination': 45.70083460322807, 'RA': '15.23.181614439814'}}

Return A Star's Position over Time

positionovertime()

Returns a single star's position over time

position_over_time(star=None, added_star=None, start_year_since_2000=None, end_year_since_2000=None, increment=5, is_precession=True, save_to_csv=None) - [REQUIRED] star: (string) a star name from the built-in list, example: Vega - [REQUIRED] addedstar: (addnewstar object) a new star included created from `addnewstar()` - [REQUIRED] startyearsince2000: (float/int) start year since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years - [REQUIRED] endyearsince2000: (float/int) end year since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years - [REQUIRED] increment: (float/int) number of year to increment from start to end by, defaults to 5 years - [OPTIONAL] isprecession: (boolean) when calculating star positions include predictions for precession, defaults to True - [OPTIONAL] savetocsv: (string) CSV filename and location to save star's position over time with headers ["Year", "Declination (DD.SS)", "Right Ascension (HH.MM.SS)", "Right Ascension (radians)"]

Stars Built-in (Click to view all)
'Absolutno', 'Acamar', 'Achernar', 'Achird', 'Acrab', 'Acrux', 'Acubens', 'Adhafera', 'Adhara', 'Adhil', 'Ain', 'Ainalrami', 'Aiolos', 'Aladfar', 'Alasia', 'Albaldah', 'Albali', 'Albireo', 'Alchiba', 'Alcor', 'Alcyone', 'Aldebaran', 'Alderamin', 'Aldhanab', 'Aldhibah', 'Aldulfin', 'Alfarasalkamil', 'Alfirk', 'Algedi', 'Algenib', 'Algieba', 'Algol', 'Algorab', 'Alhena', 'Alioth', 'Aljanah', 'Alkaid', 'Alkalurops', 'Alkaphrah', 'Alkarab', 'Alkes', 'Almaaz', 'Almach', 'Alnair', 'Alnasl', 'Alnilam', 'Alnitak', 'Alniyat', 'Alphard', 'Alphecca', 'Alpheratz', 'Alpherg', 'Alrakis', 'Alrescha', 'Alruba', 'Alsafi', 'Alsciaukat', 'Alsephina', 'Alshain', 'Alshat', 'Altair', 'Altais', 'Alterf', 'Aludra', 'Alula Australis', 'Alula Borealis', 'Alya', 'Alzirr', 'Amadioha', 'Amansinaya', 'Anadolu', 'Ancha', 'Angetenar', 'Aniara', 'Ankaa', 'Anser', 'Antares', 'Antinous', 'Arcalís', 'Arcturus', 'Arkab Posterior', 'Arkab Prior', 'Arneb', 'Ascella', 'Asellus Australis', 'Asellus Borealis', 'Ashlesha', 'Aspidiske', 'Asterope', 'Atakoraka', 'Athebyne', 'Atik', 'Atlas', 'Atria', 'Avior', 'Axólotl', 'Ayeyarwady', 'Azelfafage', 'Azha', 'Azmidi', 'Añañuca', 'Baekdu', 'Bake-eo', "Barnard's Star", 'Baten Kaitos', 'Batsũ̀', 'Beemim', 'Beid', 'Belel', 'Bellatrix', 'Berehynia', 'Betelgeuse', 'Bharani', 'Bibhā', 'Biham', 'Bodu', 'Bosona', 'Botein', 'Brachium', 'Bubup', 'Buna', 'Bunda', 'Bélénos', 'Canopus', 'Capella', 'Caph', 'Castor', 'Castula', 'Cebalrai', 'Ceibo', 'Celaeno', 'Cervantes', 'Chalawan', 'Chamukuy', 'Chaophraya', 'Chara', 'Chasoň', 'Chechia', 'Chertan', 'Citadelle', 'Citalá', 'Cocibolca', 'Copernicus', 'Cor Caroli', 'Cujam', 'Cursa', 'Dabih', 'Dajiangjunbei', 'Dalim', 'Danfeng', 'Deltoton', 'Deneb', 'Deneb Algedi', 'Denebola', 'Diadem', 'Dilmun', 'Dingolay', 'Diphda', 'Diya', 'Dofida', 'Dombay', 'Dschubba', 'Dubhe', 'Dziban', 'Dìwö', 'Ebla', 'Edasich', 'Electra', 'Elgafar', 'Elkurud', 'Elnath', 'Eltanin', 'Emiw', 'Enif', 'Errai', 'Fafnir', 'Fang', 'Fawaris', 'Felis', 'Felixvarela', 'Filetdor', 'Flegetonte', 'Fomalhaut', 'Formosa', 'Franz', 'Fulu', 'Fumalsamakah', 'Funi', 'Furud', 'Fuyue', 'Gacrux', 'Gakyid', 'Gar', 'Garnet Star', 'Geminga', 'Giausar', 'Gienah', 'Ginan', 'Gloas', 'Gnomon', 'Gomeisa', 'Grumium', 'Guahayona', 'Gudja', 'Gumala', 'Guniibuu', 'Hadar', 'Haedus', 'Hamal', 'Hassaleh', 'Hatysa', 'Helvetios', 'Heng', 'Heze', 'Hoerikwaggo', 'Hoggar', 'Homam', 'Honores', 'Horna', 'Hunahpú', 'Hunor', 'Hydor', 'Iklil', 'Illyrian', 'Imai', 'Inquill', 'Intan', 'Intercrus', 'Irena', 'Itonda', 'Izar', 'Jabbah', 'Jishui', 'Junnanmen', 'Kaewkosin', 'Kaffaljidhma', 'Kaffalmusalsala', 'Kalausi', 'Kamuy', 'Kang', 'Karaka', 'Kaus Australis', 'Kaus Borealis', 'Kaus Media', 'Kaveh', 'Keid', 'Khambalia', 'Kitalpha', 'Kochab', 'Koeia', 'Koit', 'Komondor', 'Kornephoros', 'Kosjenka', 'Kraz', 'Kui', 'Kulou', 'Kurhah', 'La Superba', 'Lang-exster', 'Larawag', 'Leepwal', 'Lerna', 'Lesath', 'Libertas', 'Lich', 'Liesma', 'Lilii Borea', 'Lionrock', 'Lucilinburhuc', 'Lusitânia', 'Maasym', 'Macondo', 'Mago', 'Mahasim', 'Mahsati', 'Maia', 'Malmok', 'Marfik', 'Markab', 'Markeb', 'Marsic', 'Maru', 'Matar', 'Matza', 'Mazaalai', 'Mebsuta', 'Megrez', 'Meissa', 'Mekbuda', 'Meleph', 'Menkalinan', 'Menkar', 'Menkent', 'Menkib', 'Merak', 'Merga', 'Meridiana', 'Merope', 'Mesarthim', 'Miaplacidus', 'Mimosa', 'Minchir', 'Minelauva', 'Mintaka', 'Mira', 'Mirach', 'Miram', 'Mirfak', 'Mirzam', 'Misam', 'Mizar', 'Moldoveanu', 'Montuno', 'Morava', 'Moriah', 'Mothallah', 'Mouhoun', 'Mpingo', 'Muliphein', 'Muphrid', 'Muscida', 'Musica', 'Muspelheim', 'Márohu', 'Mönch', 'Nahn', 'Naledi', 'Naos', 'Nashira', 'Natasha', 'Nekkar', 'Nembus', 'Nenque', 'Nervia', 'Nganurganity', 'Nihal', 'Nikawiy', 'Noquisi', 'Nosaxa', 'Nunki', 'Nusakan', 'Nushagak', 'Nyamien', 'Násti', 'Ogma', 'Okab', 'Orkaria', 'Paikauhale', 'Paradys', 'Parumleo', 'Peacock', 'Petra', 'Phact', 'Phecda', 'Pherkad', 'Phoenicia', 'Phyllon Kissinou', 'Piautos', 'Pincoya', 'Pipirima', 'Pipit', 'Pipoltr', 'Pleione', 'Poerava', 'Polaris', 'Polaris Australis', 'Polis', 'Pollux', 'Porrima', 'Praecipua', 'Prima Hyadum', 'Procyon', 'Propus', 'Proxima Centauri', 'Quadrans', 'Ramus', 'Ran', 'Rana', 'Rapeto', 'Rasalas', 'Rasalgethi', 'Rasalhague', 'Rasalnaqa', 'Rastaban', 'Regulus', 'Revati', 'Rhombus', 'Rigel', 'Rigil Kentaurus', 'Rosalíadecastro', 'Rotanev', 'Ruchbah', 'Rukbat', 'Sabik', 'Saclateni', 'Sadachbia', 'Sadalbari', 'Sadalmelik', 'Sadalsuud', 'Sadr', 'Safina', 'Sagarmatha', 'Saiph', 'Salm', 'Sansuna', 'Sargas', 'Sarin', 'Sceptrum', 'Scheat', 'Schedar', 'Secunda Hyadum', 'Segin', 'Seginus', 'Sham', 'Shama', 'Shaomin', 'Sharjah', 'Shaula', 'Sheliak', 'Sheratan', 'Shimu', 'Sika', 'Sirius', 'Situla', 'Skat', 'Solaris', 'Solitaire', 'Spica', 'Stellio', 'Sterrennacht', 'Stribor', 'Sualocin', 'Subra', 'Suhail', 'Sulafat', 'Syrma', 'Sāmaya', 'Tabit', 'Taika', 'Taiyangshou', 'Taiyi', 'Talitha', 'Tangra', 'Tania Australis', 'Tania Borealis', 'Tapecue', 'Tarazed', 'Tarf', 'Taygeta', 'Tegmine', 'Tejat', 'Tengshe', 'Terebellum', 'Tevel', 'Theemin', 'Thuban', 'Tiaki', 'Tianfu', 'Tianguan', 'Tianyi', 'Timir', 'Tislit', 'Titawin', 'Tojil', 'Toliman', 'Tonatiuh', 'Torcular', 'Triminus', 'Tuiren', 'Tupi', 'Tupã', 'Tureis', 'Tusizuo', 'Udkadua', 'Ukdah', 'Uklun', 'Unukalhai', 'Uridim', 'Uruk', 'Uúba', 'Vega', 'Veritate', 'Vindemiatrix', 'Wasat', 'Wattle', 'Wazn', 'Wezen', 'Wouri', 'Wurren', 'Xami', 'Xamidimura', 'Xihe', 'Xuange', 'Yed Posterior', 'Yed Prior', 'Yildun', 'Yunü', 'Zaniah', 'Zaurak', 'Zavijava', 'Zembra', 'Zhang', 'Zhou', 'Zibal', 'Zosma', 'Zubenelgenubi', 'Zubenelhakrabi', 'Zubeneschamali'

```python

starchartsphericalprojection.positionovertime(star="Altair", startyearsince2000=0, endyearsince2000=20000, increment=10000, isprecession=True) `` Returns{2000: {'RA (radians)': -1.0907972465777118, 'RA (hours)': '19.50.4611519855', 'Dec (degrees)': 8.520199548428346}, 12000: {'RA (radians)': 1.4375977908040969, 'RA (hours)': '05.29.283886520974', 'Dec (degrees)': 52.15167014429936}, 22000: {'RA (radians)': -2.20075132830232, 'RA (hours)': '15.35.374969113121', 'Dec (degrees)': 13.159743774065063}}`

Predict Past and Future Pole Stars

predictpolestar

Return the North/South Pole star for a given year since 2000 predict_pole_star(year_since_2000=0, pole="North", max_magnitude=None) - [REQUIRED] yearsince2000 (int/float): ear since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years - [OPTIONAL] pole (string): North or South Pole where North = 90° and South = -90°, defaults to North - [OPTIONAL] max_magnitude: (int/float) filter existing stars by magnitude by setting the max magnitude for the chart to include, defaults to None (all stars)

For example: ```python import starchartspherical_projection as scsp

scsp.predictpolestar(yearsince2000=20000, pole="North") `` As a result, in 20,000 years,Thuban` will be the North Pole, replacing Polaris.

Plot a Star's Position over Time

plot_position()

Plot a star's declination and right ascension position over time

plot_position(star=None, added_star=None, start_year_since_2000=None, end_year_since_2000=None, increment=10, is_precession=True, dec_ra="D", show_plot=True, display_year_marker=True, fig_plot_title=None, fig_plot_color="C0", figsize_n=12, figsize_dpi=100, save_plot_name=None) - [REQUIRED] star: (string) a star name from the built-in list, example: Vega - [REQUIRED] addedstar: (new star object) a new star included created from `addnewstar()` - [REQUIRED] startyearsince2000: (float/int) start year since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years - [REQUIRED] endyearsince2000: (float/int) end year since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years - [REQUIRED] decra: (string) Plot the Declination D or Right Ascension RA, defaults to D - [REQUIRED] increment: (float/int) number of year to increment from start to end by, defaults to 10 years - [OPTIONAL] isprecession: (boolean) when calculating star positions include predictions for precession, defaults to True - [OPTIONAL] showplot: (boolean) show plot (triggers plt.show()), useful when generating multiple plots at once in the background, defaults to True - [OPTIONAL] displayyearmarker: (boolean) show dotted line for current year - [OPTIONAL] figplottitle: (string) figure plot title, defaults to <COMMON NAME> <DECLINATION/RA> (<With/Without> Precession) from <START BCE/CE> to <END BCE/CE>, every <YEAR INCREMENT> Years - [OPTIONAL] figplotcolor: (string) figure plot color, defaults to blue C0 - [OPTIONAL] figsizen: (float/int) figure plot size NxN, 12 - [OPTIONAL] figsizedpi: (float/int) figure dpi, defaults to 100 - [OPTIONAL] saveplotname: (string) save plot name and location

Stars Built-in (Click to view all)
'Absolutno', 'Acamar', 'Achernar', 'Achird', 'Acrab', 'Acrux', 'Acubens', 'Adhafera', 'Adhara', 'Adhil', 'Ain', 'Ainalrami', 'Aiolos', 'Aladfar', 'Alasia', 'Albaldah', 'Albali', 'Albireo', 'Alchiba', 'Alcor', 'Alcyone', 'Aldebaran', 'Alderamin', 'Aldhanab', 'Aldhibah', 'Aldulfin', 'Alfarasalkamil', 'Alfirk', 'Algedi', 'Algenib', 'Algieba', 'Algol', 'Algorab', 'Alhena', 'Alioth', 'Aljanah', 'Alkaid', 'Alkalurops', 'Alkaphrah', 'Alkarab', 'Alkes', 'Almaaz', 'Almach', 'Alnair', 'Alnasl', 'Alnilam', 'Alnitak', 'Alniyat', 'Alphard', 'Alphecca', 'Alpheratz', 'Alpherg', 'Alrakis', 'Alrescha', 'Alruba', 'Alsafi', 'Alsciaukat', 'Alsephina', 'Alshain', 'Alshat', 'Altair', 'Altais', 'Alterf', 'Aludra', 'Alula Australis', 'Alula Borealis', 'Alya', 'Alzirr', 'Amadioha', 'Amansinaya', 'Anadolu', 'Ancha', 'Angetenar', 'Aniara', 'Ankaa', 'Anser', 'Antares', 'Antinous', 'Arcalís', 'Arcturus', 'Arkab Posterior', 'Arkab Prior', 'Arneb', 'Ascella', 'Asellus Australis', 'Asellus Borealis', 'Ashlesha', 'Aspidiske', 'Asterope', 'Atakoraka', 'Athebyne', 'Atik', 'Atlas', 'Atria', 'Avior', 'Axólotl', 'Ayeyarwady', 'Azelfafage', 'Azha', 'Azmidi', 'Añañuca', 'Baekdu', 'Bake-eo', "Barnard's Star", 'Baten Kaitos', 'Batsũ̀', 'Beemim', 'Beid', 'Belel', 'Bellatrix', 'Berehynia', 'Betelgeuse', 'Bharani', 'Bibhā', 'Biham', 'Bodu', 'Bosona', 'Botein', 'Brachium', 'Bubup', 'Buna', 'Bunda', 'Bélénos', 'Canopus', 'Capella', 'Caph', 'Castor', 'Castula', 'Cebalrai', 'Ceibo', 'Celaeno', 'Cervantes', 'Chalawan', 'Chamukuy', 'Chaophraya', 'Chara', 'Chasoň', 'Chechia', 'Chertan', 'Citadelle', 'Citalá', 'Cocibolca', 'Copernicus', 'Cor Caroli', 'Cujam', 'Cursa', 'Dabih', 'Dajiangjunbei', 'Dalim', 'Danfeng', 'Deltoton', 'Deneb', 'Deneb Algedi', 'Denebola', 'Diadem', 'Dilmun', 'Dingolay', 'Diphda', 'Diya', 'Dofida', 'Dombay', 'Dschubba', 'Dubhe', 'Dziban', 'Dìwö', 'Ebla', 'Edasich', 'Electra', 'Elgafar', 'Elkurud', 'Elnath', 'Eltanin', 'Emiw', 'Enif', 'Errai', 'Fafnir', 'Fang', 'Fawaris', 'Felis', 'Felixvarela', 'Filetdor', 'Flegetonte', 'Fomalhaut', 'Formosa', 'Franz', 'Fulu', 'Fumalsamakah', 'Funi', 'Furud', 'Fuyue', 'Gacrux', 'Gakyid', 'Gar', 'Garnet Star', 'Geminga', 'Giausar', 'Gienah', 'Ginan', 'Gloas', 'Gnomon', 'Gomeisa', 'Grumium', 'Guahayona', 'Gudja', 'Gumala', 'Guniibuu', 'Hadar', 'Haedus', 'Hamal', 'Hassaleh', 'Hatysa', 'Helvetios', 'Heng', 'Heze', 'Hoerikwaggo', 'Hoggar', 'Homam', 'Honores', 'Horna', 'Hunahpú', 'Hunor', 'Hydor', 'Iklil', 'Illyrian', 'Imai', 'Inquill', 'Intan', 'Intercrus', 'Irena', 'Itonda', 'Izar', 'Jabbah', 'Jishui', 'Junnanmen', 'Kaewkosin', 'Kaffaljidhma', 'Kaffalmusalsala', 'Kalausi', 'Kamuy', 'Kang', 'Karaka', 'Kaus Australis', 'Kaus Borealis', 'Kaus Media', 'Kaveh', 'Keid', 'Khambalia', 'Kitalpha', 'Kochab', 'Koeia', 'Koit', 'Komondor', 'Kornephoros', 'Kosjenka', 'Kraz', 'Kui', 'Kulou', 'Kurhah', 'La Superba', 'Lang-exster', 'Larawag', 'Leepwal', 'Lerna', 'Lesath', 'Libertas', 'Lich', 'Liesma', 'Lilii Borea', 'Lionrock', 'Lucilinburhuc', 'Lusitânia', 'Maasym', 'Macondo', 'Mago', 'Mahasim', 'Mahsati', 'Maia', 'Malmok', 'Marfik', 'Markab', 'Markeb', 'Marsic', 'Maru', 'Matar', 'Matza', 'Mazaalai', 'Mebsuta', 'Megrez', 'Meissa', 'Mekbuda', 'Meleph', 'Menkalinan', 'Menkar', 'Menkent', 'Menkib', 'Merak', 'Merga', 'Meridiana', 'Merope', 'Mesarthim', 'Miaplacidus', 'Mimosa', 'Minchir', 'Minelauva', 'Mintaka', 'Mira', 'Mirach', 'Miram', 'Mirfak', 'Mirzam', 'Misam', 'Mizar', 'Moldoveanu', 'Montuno', 'Morava', 'Moriah', 'Mothallah', 'Mouhoun', 'Mpingo', 'Muliphein', 'Muphrid', 'Muscida', 'Musica', 'Muspelheim', 'Márohu', 'Mönch', 'Nahn', 'Naledi', 'Naos', 'Nashira', 'Natasha', 'Nekkar', 'Nembus', 'Nenque', 'Nervia', 'Nganurganity', 'Nihal', 'Nikawiy', 'Noquisi', 'Nosaxa', 'Nunki', 'Nusakan', 'Nushagak', 'Nyamien', 'Násti', 'Ogma', 'Okab', 'Orkaria', 'Paikauhale', 'Paradys', 'Parumleo', 'Peacock', 'Petra', 'Phact', 'Phecda', 'Pherkad', 'Phoenicia', 'Phyllon Kissinou', 'Piautos', 'Pincoya', 'Pipirima', 'Pipit', 'Pipoltr', 'Pleione', 'Poerava', 'Polaris', 'Polaris Australis', 'Polis', 'Pollux', 'Porrima', 'Praecipua', 'Prima Hyadum', 'Procyon', 'Propus', 'Proxima Centauri', 'Quadrans', 'Ramus', 'Ran', 'Rana', 'Rapeto', 'Rasalas', 'Rasalgethi', 'Rasalhague', 'Rasalnaqa', 'Rastaban', 'Regulus', 'Revati', 'Rhombus', 'Rigel', 'Rigil Kentaurus', 'Rosalíadecastro', 'Rotanev', 'Ruchbah', 'Rukbat', 'Sabik', 'Saclateni', 'Sadachbia', 'Sadalbari', 'Sadalmelik', 'Sadalsuud', 'Sadr', 'Safina', 'Sagarmatha', 'Saiph', 'Salm', 'Sansuna', 'Sargas', 'Sarin', 'Sceptrum', 'Scheat', 'Schedar', 'Secunda Hyadum', 'Segin', 'Seginus', 'Sham', 'Shama', 'Shaomin', 'Sharjah', 'Shaula', 'Sheliak', 'Sheratan', 'Shimu', 'Sika', 'Sirius', 'Situla', 'Skat', 'Solaris', 'Solitaire', 'Spica', 'Stellio', 'Sterrennacht', 'Stribor', 'Sualocin', 'Subra', 'Suhail', 'Sulafat', 'Syrma', 'Sāmaya', 'Tabit', 'Taika', 'Taiyangshou', 'Taiyi', 'Talitha', 'Tangra', 'Tania Australis', 'Tania Borealis', 'Tapecue', 'Tarazed', 'Tarf', 'Taygeta', 'Tegmine', 'Tejat', 'Tengshe', 'Terebellum', 'Tevel', 'Theemin', 'Thuban', 'Tiaki', 'Tianfu', 'Tianguan', 'Tianyi', 'Timir', 'Tislit', 'Titawin', 'Tojil', 'Toliman', 'Tonatiuh', 'Torcular', 'Triminus', 'Tuiren', 'Tupi', 'Tupã', 'Tureis', 'Tusizuo', 'Udkadua', 'Ukdah', 'Uklun', 'Unukalhai', 'Uridim', 'Uruk', 'Uúba', 'Vega', 'Veritate', 'Vindemiatrix', 'Wasat', 'Wattle', 'Wazn', 'Wezen', 'Wouri', 'Wurren', 'Xami', 'Xamidimura', 'Xihe', 'Xuange', 'Yed Posterior', 'Yed Prior', 'Yildun', 'Yunü', 'Zaniah', 'Zaurak', 'Zavijava', 'Zembra', 'Zhang', 'Zhou', 'Zibal', 'Zosma', 'Zubenelgenubi', 'Zubenelhakrabi', 'Zubeneschamali'

Declination with Precession: python star_chart_spherical_projection.plot_position(star="Vega", added_star=None, start_year_since_2000=-15000, end_year_since_2000=15000, is_precession=True, increment=5, dec_ra="D") plot_star_declination_precession+png Declination without Precession: python star_chart_spherical_projection.plot_position(star="Vega", added_star=None, start_year_since_2000=-15000, end_year_since_2000=15000, is_precession=False, increment=5, dec_ra="D") plot_star_declination_without_precession+png Right Ascension with Precession: python star_chart_spherical_projection.plot_position(star="Vega", added_star=None, start_year_since_2000=-15000, end_year_since_2000=15000, is_precession=True, increment=5, dec_ra="R") plot_star_RA_with_precession+png Right Ascension without Precession: python star_chart_spherical_projection.plot_position(star="Vega", added_star=None, start_year_since_2000=-15000, end_year_since_2000=15000, is_precession=False, increment=5, dec_ra="R") plot_star_RA_without_precession+png

Development Environment

To run or test against star-chart-spherical-projection github repo/fork, a development environment can be created via conda/miniconda

First, install Miniconda

Then, using the existing environment.yml, a new conda environment can be create to run/test scripts against

conda env create --file environment.yml Once the environment has been built, activate the environment: conda activate star_chart To run existing and new tests from the root directory: python -m pytest

Beta :test_tube: Features

These features are not included in pip install because they are still experimental and being tested/debugged. For more information and getting them up and running, contact cyschneck@gmail.com or post a question as a Github Issue - Plot stars in a constellation/asterism with connected lines

Bibliography

Precession model: Vondrák, J., et al. “New Precession Expressions, Valid for Long Time Intervals.” Astronomy & Astrophysics, vol. 534, 2011

Precession code adapted to Python 3+ from the Vondrak long term precession model Github repo 'vondrak'

Bug and Feature Request

Submit a bug fix, question, or feature request as a Github Issue or to cyschneck@gmail.com

Owner

  • Name: Cora Schneck
  • Login: cyschneck
  • Kind: user
  • Company: NCAR/UCAR

A scientific programmer at NCAR who is collecting an infinite number of monkeys to test a theory

Citation (CITATION.cff)

cff-version: 1.2.0
title: "Star-Chart-Spherical-Projection: Generate astronomy star charts that correct for distortions with stereographic projection"
version: 2.0.1
message: "Please acknowledge the use of this software in any publications by citing:"
authors:
- family-names: Schneck
  given-names: Cora Y.
  orchid: 'https://orcid.org/0009-0009-1415-5170'
repository-code:: "https://github.com/cyschneck/Star-Chart-Spherical-Projection"
url: "https://github.com/cyschneck/Star-Chart-Spherical-Projection"

GitHub Events

Total
  • Release event: 1
  • Delete event: 1
  • Push event: 60
  • Pull request review event: 2
  • Pull request event: 3
  • Create event: 4
Last Year
  • Release event: 1
  • Delete event: 1
  • Push event: 60
  • Pull request review event: 2
  • Pull request event: 3
  • Create event: 4

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 93
  • Total Committers: 1
  • Avg Commits per committer: 93.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 93
  • Committers: 1
  • Avg Commits per committer: 93.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
cyschneck 2****k 93

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 2
  • Average time to close issues: 5 days
  • Average time to close pull requests: 3 minutes
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 5.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • madenburak (1)
  • JMejuto (1)
Pull Request Authors
  • dependabot[bot] (4)
Top Labels
Issue Labels
Pull Request Labels
dependencies (4) github_actions (4)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 239 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 25
  • Total maintainers: 1
pypi.org: star-chart-spherical-projection

A Python package to generate circular astronomy star charts (past, present, and future) with spherical projection to correct for distortions with more than a hundred named stars accurate over 400,000 years with proper motion and precession of the equinoxes

  • Versions: 25
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 239 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 21.6%
Average: 22.0%
Downloads: 23.4%
Stargazers count: 25.1%
Forks count: 29.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • matplotlib ==3.1.0
setup.py pypi
  • matplotlib >=3.1.0