star-chart-spherical-projection


Namestar-chart-spherical-projection JSON
Version 1.5.0 PyPI version JSON
download
home_pagehttps://github.com/cyschneck/Star-Chart-Spherical-Projection
SummaryA 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
upload_time2023-06-30 06:31:18
maintainer
docs_urlNone
authorCora Schneck (cyschneck)
requires_python>=3.7
licenseMIT
keywords astronomy python star charts precession proper motion spherical projection stereographic projection
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Star-Chart-Spherical-Projection

![PyPi](https://img.shields.io/pypi/v/star-chart-spherical-projection)
![license](https://img.shields.io/github/license/cyschneck/Star-Chart-Spherical-Projection)
[![pytests](https://github.com/cyschneck/Star-Chart-Spherical-Projection/actions/workflows/pytests.yml/badge.svg?branch=main)](https://github.com/cyschneck/Star-Chart-Spherical-Projection/actions/workflows/pytests.yml)

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

* **Plot Stars on a Polar Chart**
	* plotStereographicProjection()
* **Return Final Position of Stars**
	* finalPositionOfStars()
* **Add a New Star to Plot**
	* newStar()

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](https://user-images.githubusercontent.com/22159116/202333014-a53f1176-182f-43c7-ab92-266d15d8c563.jpg) | ![with_correction](https://user-images.githubusercontent.com/22159116/202333015-493619f4-a5b8-4614-8b32-54225d7fad02.png) |

The sphere is projected from the South Pole (via [Stereographic projection](https://gisgeography.com/azimuthal-projection-orthographic-stereographic-gnomonic/)):
 <p align="center">
  <img src="https://gisgeography.com/wp-content/uploads/2016/12/Stereographic-Projection-768x421.png" />
</p>


## Quickstart: Star-Chart-Spherical-Projection
Plot stars in the Southern Hemisphere for the year 2023 (without stars labels)
```python
import star_chart_spherical_projection as scsp

scsp.plotStereographicProjection(northOrSouth="South",
				displayStarNamesLabels=False,
				yearSince2000=23)
```
![quickstart_star_chart+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/quickstart_south_2023.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 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)
```
![quickstart_star_chart+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/quickstart_newstar_example.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 star_chart_spherical_projection as scsp

star_final_pos_dict = scsp.finalPositionOfStars(builtInStars=["Vega"], yearSince2000=11500, save_to_csv="final_star_positions.csv")
```
Returns a dictionary with a star and its declination and right ascension: `{'Vega': {'Declination': 83.6899118156341, 'RA': '05.38.21'}}`

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)"]

## Install

PyPi pip install at [pypi.org/project/star-chart-spherical-projection/](https://pypi.org/project/star-chart-spherical-projection/)

```
pip install star-chart-spherical-projection
```

## Requirements

Python 3.7+
```
pip install -r requirements.txt
```
Requirements will also be downloaded as part of the pip download

## Overview

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).

 <p align="center">
  <img src="https://upload.wikimedia.org/wikipedia/commons/1/12/Earth_within_celestial_sphere.gif" />
</p>

Spherical projection can overcome angular distortion by converting the position of the declination to:
```
# 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))
```
Where in the Northern Hemisphere, projections are formed from the South Pole: 
![morrisons_astrolabe](https://user-images.githubusercontent.com/22159116/202336728-dc290bfa-44f5-4947-9a08-93f70286436e.jpg)

## Add a New Star

### newStar Object

The star chart package comes with over a hundred of brightest stars as part of a built-in library. However, a new star can be easily added for plotting or calculations by creating a newStar object. The newStar object will require a few important features that plotStereographicProjection() and finalPositionOfStars() 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](https://in-the-sky.org/data/object.php?id=TYC1920-2194-1)
```
star_chart_spherical_projection.newStar(starName=None,
					ra=None,
					dec=None,
					properMotionSpeed=None,
					properMotionAngle=None,
					magnitudeVisual=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]** properMotionSpeed (int/float): Proper motion speed as a single value (in mas/year)
* **[REQUIRED]** properMotionAngle (int/float): Proper motion positive angle (between 0° and 360°)
* **[REQUIRED]** magnitudeVisual (int/float): Absolute Visual Magnitude

**With the Proper Motion speed along the Right Ascension and Declination**

As seen in [wikipeida.og for Pollux](https://en.wikipedia.org/wiki/Pollux_(star))

```
star_chart_spherical_projection.newStar(starName=None,
					ra=None,
					dec=None,
					properMotionSpeedRA=None,
					properMotionSpeedDec=None,
					magnitudeVisual=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]** properMotionSpeedRA (int/float): Speed of Proper Motion along the Right Ascension
* **[REQUIRED]** properMotionSpeedDec (int/float): Speed of Proper Motion along the Declination
* **[REQUIRED]** magnitudeVisual (int/float):

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

<details closed>
<summary>Stars Built-in (Click to view all)</summary>
<br>
['Acamar', 'Achernar', 'Acrab', 'Acrux', 'Adhara', 'Aldebaran', 'Alderamin', 'Algieba', 'Algol', 'Alhena', 
'Alioth', 'Alkaid', 'Almach', 'Alnilam', 'Alnitak', 'Alphard', 'Alphecca', 'Alpheratz', 'Altair', 'Aludra', 
'Ankaa', 'Antares', 'Arcturus', 'Arneb', 'Ascella', 'Aspidiske', 'Atria', 'Avior', 'Bellatrix', 'Beta Hydri', 
'Beta Phoenicis', 'Betelgeuse', 'Canopus', 'Capella', 'Caph', 'Castor', 'Cebalrai', 'Celaeno', 'Chara', 
'Cor-Caroli', 'Cursa', 'Delta Crucis', 'Deneb', 'Denebola', 'Diphda', 'Dschubba', 'Dubhe', 'Elnath', 'Eltanin', 
'Enif', 'Formalhaut', 'Gacrux', 'Gamma Phoenicis', 'Gienah', 'Hadar', 'Hamal', 'Kochab', 'Kornephoros', 'Lesath', 
'Markab', 'Megrez', 'Meissa', 'Menkalinan', 'Menkar', 'Menkent', 'Merak', 'Miaplacidus', 'Mimosa', 'Mintaka', 
'Mirach', 'Mirfak', 'Mirzam', 'Mizar', 'Muphrid', 'Naos', 'Navi', 'Nunki', 'Peacock', 'Phact', 'Phecda', 'Polaris', 
'Pollux', 'Procyon', 'Rasalhague', 'Rastaban', 'Regulus', 'Rigel', 'Ruchbah', 'Sabik', 'Sadr', 'Saiph', 'Sargas', 
'Scheat', 'Schedar', 'Segin', 'Seginus', 'Shaula', 'Sheratan', 'Sirius', 'Spica', 'Suhail', 'Tarazed', 'Thuban', 
'Unukalhai', 'Vega', 'Wezen', 'Zosma', 'Zubeneschamali']
</details>

## Plot Stars on a Polar Chart
**plotStereographicProjection()**

Plot stars on a Stereographic Polar Plot
```
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)
```
- **[REQUIRED]** northOrSouth: (string) map for either the "North" or "South" hemisphere
- *[OPTIONAL]* builtInStars: (list) a list of star names to include from built-in list, by default = [] includes all stars (in star_data.csv). Example: ["Vega", "Merak", "Dubhe"]
- *[OPTIONAL]* declination_min: (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]* displayStarNamesLabels: (boolean) display the star name labels, defaults to True
- *[OPTIONAL]* displayDeclinationNumbers: (boolean) display declination values, defaults to True
- *[OPTIONAL]* incrementBy: (int) increment values for declination (either 1, 5, 10), defaults to 10
- *[OPTIONAL]* isPrecessionIncluded: (boolean) when calculating star positions include predictions for precession, defaults to True
- *[OPTIONAL]* maxMagnitudeFilter: (int/float) filter existing stars by magnitude by setting the max magnitude for the chart to include, defaults to None (shows all stars)
- *[OPTIONAL]* userDefinedStars: (list) List of newStar objects of stars the user has added
- *[OPTIONAL]* onlyDisplayUserStars: (bool) Only display the stars defined by the users (userDefinedStars)
- *[OPTIONAL]* showPlot: (boolean) show plot (triggers plt.show()) when finished running, defaults to True
- *[OPTIONAL]* fig_plot_title: (string) figure title, defaults to "<North/South>ern Hemisphere [<YEAR NUMBERS> Years Since 2000 (YYYY)]: +/-90° to <DECLINATION MIN>°"
- *[OPTIONAL]* fig_plot_color: (string) scatter plot star color, defaults to C0
- *[OPTIONAL]* figsize_n: (int/float) figure size, default to 12
- *[OPTIONAL]* figsize_dpi: (int/float) figure DPI, default to 100
- *[OPTIONAL]* save_plot_name: (string) save plot with a string name, defaults to not saving

<details closed>
<summary>Stars that will be included by default when builtInStars = [] (Click to view all)</summary>
<br>
['Acamar', 'Achernar', 'Acrab', 'Acrux', 'Adhara', 'Aldebaran', 'Alderamin', 'Algieba', 'Algol', 'Alhena', 
'Alioth', 'Alkaid', 'Almach', 'Alnilam', 'Alnitak', 'Alphard', 'Alphecca', 'Alpheratz', 'Altair', 'Aludra', 
'Ankaa', 'Antares', 'Arcturus', 'Arneb', 'Ascella', 'Aspidiske', 'Atria', 'Avior', 'Bellatrix', 'Beta Hydri', 
'Beta Phoenicis', 'Betelgeuse', 'Canopus', 'Capella', 'Caph', 'Castor', 'Cebalrai', 'Celaeno', 'Chara', 
'Cor-Caroli', 'Cursa', 'Delta Crucis', 'Deneb', 'Denebola', 'Diphda', 'Dschubba', 'Dubhe', 'Elnath', 'Eltanin', 
'Enif', 'Formalhaut', 'Gacrux', 'Gamma Phoenicis', 'Gienah', 'Hadar', 'Hamal', 'Kochab', 'Kornephoros', 'Lesath', 
'Markab', 'Megrez', 'Meissa', 'Menkalinan', 'Menkar', 'Menkent', 'Merak', 'Miaplacidus', 'Mimosa', 'Mintaka', 
'Mirach', 'Mirfak', 'Mirzam', 'Mizar', 'Muphrid', 'Naos', 'Navi', 'Nunki', 'Peacock', 'Phact', 'Phecda', 'Polaris', 
'Pollux', 'Procyon', 'Rasalhague', 'Rastaban', 'Regulus', 'Rigel', 'Ruchbah', 'Sabik', 'Sadr', 'Saiph', 'Sargas', 
'Scheat', 'Schedar', 'Segin', 'Seginus', 'Shaula', 'Sheratan', 'Sirius', 'Spica', 'Suhail', 'Tarazed', 'Thuban', 
'Unukalhai', 'Vega', 'Wezen', 'Zosma', 'Zubeneschamali']
</details>

| northOrSouth="North" (-30° to 90°) (without star labels) | northOrSouth="South" (30° to -90°) (without star labels) |
| ------------- | ------------- |
| ![northOrSouth+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/northOrSouth_north.png) |  ![northOrSouth+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/northOrSouth_south.png) |

| builtInStars=[] (Includes all stars, default) | builtInStars=["Vega", "Arcturus", "Enif", "Caph", "Mimosa"]|
| ------------- | ------------- |
| ![builtInStars+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_default.png) | ![builtInStars+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/builtInStars_subset.png) |

| declination_min=-30° (default) | declination_min=10° |
| ------------- | ------------- |
| ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_default.png) | ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_20.png) |

| yearSince2000=0 (default) | yearSince2000=-3100 |
| ------------- | ------------- |
| ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_default.png) | ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/yearSince2000_1100.png) |

| displayStarNamesLabels=True (default) | displayStarNamesLabels=False |
| ------------- | ------------- |
| ![displayStarNamesLabels+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayStarNamesLabels_default.png)  | ![displayStarNamesLabels+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayStarNamesLabels_false.png) |

| displayDeclinationNumbers=True (default) (without star labels) | displayDeclinationNumbers=False (without star labels) |
| ------------- | ------------- |
| ![displayDeclinationNumbers+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayDeclinationNumbers_default.png)  | ![displayDeclinationNumbers+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayDeclinationNumbers_false.png) |

| incrementBy=10 (default) (without star labels) | incrementBy=5 (without star labels) |
| ------------- | ------------- |
| ![incrementBy_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/incrementBy_default.png) | ![incrementBy_5+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/incrementBy_5.png) |

| isPrecessionIncluded=True (default) | isPrecessionIncluded=False |
| ------------- | ------------- |
| ![isPrecessionIncluded_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/isPrecessionIncluded_default.png) | ![isPrecessionIncluded_false+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/isPrecessionIncluded_false.png) |

| maxMagnitudeFilter=None (default) | maxMagnitudeFilter=1 |
| ------------- | ------------- |
| ![maxMagnitudeFilter_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/maxMagnitudeFilter_default.png) | ![maxMagnitudeFilter+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/maxMagnitudeFilter_1.png) |

| onlyDisplayUserStars=False (default) with userDefinedStars | onlyDisplayUserStars=True with userDefined Stars |
| ------------- | ------------- |
| ![onlyDisplayUserStars_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/onlyDisplayUserStars_default.png) | ![onlyDisplayUserStars+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/onlyDisplayUserStars_true.png) |

| fig_plot_title=(default) | fig_plot_title="This is a Example Title for a Star Chart" |
| ------------- | ------------- |
| ![fig_plot_title_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_title_default.png) | ![fig_plot_title+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_title_example.png) |

| fig_plot_color="C0" (default) (without star labels) | fig_plot_color="darkorchid" (without star labels) |
| ------------- | ------------- |
| ![fig_plot_color_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_color_default.png) | ![fig_plot_color_dark_orchid+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_color_darkorchid.png) |

### Star Chart Examples:
__Star Chart in the Northern Hemisphere (centered on 90°) without Precession__
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
							displayStarNamesLabels=False,
							yearSince2000=11500,
							isPrecessionIncluded=False,
							fig_plot_color="red")
```
![north_star_chart_without_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_without_labels_without_precession.png) 
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
							displayStarNamesLabels=True,
							yearSince2000=11500,
							isPrecessionIncluded=False,
							fig_plot_color="red")
```
![north_star_chart_with_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_with_labels_without_precession.png) 
__Star Chart in the Northern Hemisphere (centered on 90°) with Precession__
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
							displayStarNamesLabels=False,
							yearSince2000=11500,
							isPrecessionIncluded=True,
							fig_plot_color="red")
```
![north_star_chart_without_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_without_labels_with_precession.png) 
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="North",
							displayStarNamesLabels=True,
							yearSince2000=11500,
							isPrecessionIncluded=True,
							fig_plot_color="red")
```
![north_star_chart_with_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_with_labels_with_precession.png) 
__Star Chart in the Southern Hemisphere (centered on -90°) without Precession__
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South", 
							displayStarNamesLabels=False,
							yearSince2000=11500,
							isPrecessionIncluded=False,
							fig_plot_color="cornflowerblue")
```
![south_star_chart_without_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_without_labels_without_precession.png) 
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South", 
							displayStarNamesLabels=True,
							yearSince2000=11500,
							isPrecessionIncluded=False,
							fig_plot_color="cornflowerblue")
```
![south_star_chart_with_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_with_labels_without_precession.png) 
__Star Chart in the Southern Hemisphere (centered on -90°) with Precession__
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South", 
							displayStarNamesLabels=False,
							yearSince2000=11500,
							isPrecessionIncluded=True,
							fig_plot_color="cornflowerblue")
```
![south_star_chart_without_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_without_labels_with_precession.png) 
```
star_chart_spherical_projection.plotStereographicProjection(northOrSouth="South", 
							displayStarNamesLabels=True,
							yearSince2000=11500,
							isPrecessionIncluded=True,
							fig_plot_color="cornflowerblue")
```
![south_star_chart_with_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_with_labels_with_precession.png) 

## Return Final Position of Stars
**finalPositionOfStars()**

Returns a dictionary for the final positions of the stars in the format: {'Star Name': {"Declination" : Declination (int), "RA": RA (str)}
```
finalPositionOfStars(builtInStars=[],
		yearSince2000=0, 
		isPrecessionIncluded=True,
		userDefinedStars=[],
		onlyDisplayUserStars=False,
		declination_min=None,
		declination_max=None,
		save_to_csv=None)
```
- *[OPTIONAL]* builtInStars: (list) a list of star names to include from built-in list, by default = [] includes all stars (in star_data.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]* isPrecessionIncluded: (boolean) when calculating star positions include predictions for precession, defaults to True
- *[OPTIONAL]* userDefinedStars: (list) List of newStar objects of stars the user has added
- *[OPTIONAL]* onlyDisplayUserStars: (bool) Only include the stars defined by the users (userDefinedStars)
- *[OPTIONAL]* declination_min: (int/float) set minimum declination value, defaults to -30° in Northern hemisphere and 30° in Southern hemisphere
- *[OPTIONAL]* declination_max: (int/float) set maximum declination value, defaults to 90° in Northern hemisphere and -90° in Southern hemisphere
- *[OPTIONAL]* save_to_csv: (string) CSV filename and location to save final star positions with headers ["Star Name", "Right Ascension (HH.MM.SS)", "Declination (DD.SS)"]

<details closed>
<summary>Stars that will be included by default when builtInStars = [] (Click to view all)</summary>
<br>
['Acamar', 'Achernar', 'Acrab', 'Acrux', 'Adhara', 'Aldebaran', 'Alderamin', 'Algieba', 'Algol', 'Alhena', 
'Alioth', 'Alkaid', 'Almach', 'Alnilam', 'Alnitak', 'Alphard', 'Alphecca', 'Alpheratz', 'Altair', 'Aludra', 
'Ankaa', 'Antares', 'Arcturus', 'Arneb', 'Ascella', 'Aspidiske', 'Atria', 'Avior', 'Bellatrix', 'Beta Hydri', 
'Beta Phoenicis', 'Betelgeuse', 'Canopus', 'Capella', 'Caph', 'Castor', 'Cebalrai', 'Celaeno', 'Chara', 
'Cor-Caroli', 'Cursa', 'Delta Crucis', 'Deneb', 'Denebola', 'Diphda', 'Dschubba', 'Dubhe', 'Elnath', 'Eltanin', 
'Enif', 'Formalhaut', 'Gacrux', 'Gamma Phoenicis', 'Gienah', 'Hadar', 'Hamal', 'Kochab', 'Kornephoros', 'Lesath', 
'Markab', 'Megrez', 'Meissa', 'Menkalinan', 'Menkar', 'Menkent', 'Merak', 'Miaplacidus', 'Mimosa', 'Mintaka', 
'Mirach', 'Mirfak', 'Mirzam', 'Mizar', 'Muphrid', 'Naos', 'Navi', 'Nunki', 'Peacock', 'Phact', 'Phecda', 'Polaris', 
'Pollux', 'Procyon', 'Rasalhague', 'Rastaban', 'Regulus', 'Rigel', 'Ruchbah', 'Sabik', 'Sadr', 'Saiph', 'Sargas', 
'Scheat', 'Schedar', 'Segin', 'Seginus', 'Shaula', 'Sheratan', 'Sirius', 'Spica', 'Suhail', 'Tarazed', 'Thuban', 
'Unukalhai', 'Vega', 'Wezen', 'Zosma', 'Zubeneschamali']
</details>

## Bibliography

Star position (right ascension and declination) as well as the angle and speed of proper motion from [in-the-sky.org](https://in-the-sky.org/)

Precession model: [Vondrák, J., et al. “New Precession Expressions, Valid for Long Time Intervals.” Astronomy &amp; Astrophysics, vol. 534, 2011](https://www.aanda.org/articles/aa/pdf/2011/10/aa17274-11.pdf)

Preecession code adapted to Python 3+ from [Github Repo: vondrak](https://github.com/dreamalligator/vondrak)

## Bug and Feature Request

Submit a bug fix, question, or feature request as a [Github Issue](https://github.com/cyschneck/Star-Chart-Spherical-Projection/issues) or to cyschneck@gmail.com



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cyschneck/Star-Chart-Spherical-Projection",
    "name": "star-chart-spherical-projection",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "astronomy,python,star charts,precession,proper motion,spherical projection,stereographic projection",
    "author": "Cora Schneck (cyschneck)",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/69/79/456746c93531a36283f0f51a092e50f5584990c0dc4556cb9a90a6e4f90f/star-chart-spherical-projection-1.5.0.tar.gz",
    "platform": null,
    "description": "# Star-Chart-Spherical-Projection\n\n![PyPi](https://img.shields.io/pypi/v/star-chart-spherical-projection)\n![license](https://img.shields.io/github/license/cyschneck/Star-Chart-Spherical-Projection)\n[![pytests](https://github.com/cyschneck/Star-Chart-Spherical-Projection/actions/workflows/pytests.yml/badge.svg?branch=main)](https://github.com/cyschneck/Star-Chart-Spherical-Projection/actions/workflows/pytests.yml)\n\nA 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\n\n* **Plot Stars on a Polar Chart**\n\t* plotStereographicProjection()\n* **Return Final Position of Stars**\n\t* finalPositionOfStars()\n* **Add a New Star to Plot**\n\t* newStar()\n\nThe 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.\n\n| Without Correction | With Correction |\n| ------------- | ------------- |\n| ![without_correction](https://user-images.githubusercontent.com/22159116/202333014-a53f1176-182f-43c7-ab92-266d15d8c563.jpg) | ![with_correction](https://user-images.githubusercontent.com/22159116/202333015-493619f4-a5b8-4614-8b32-54225d7fad02.png) |\n\nThe sphere is projected from the South Pole (via [Stereographic projection](https://gisgeography.com/azimuthal-projection-orthographic-stereographic-gnomonic/)):\n <p align=\"center\">\n  <img src=\"https://gisgeography.com/wp-content/uploads/2016/12/Stereographic-Projection-768x421.png\" />\n</p>\n\n\n## Quickstart: Star-Chart-Spherical-Projection\nPlot stars in the Southern Hemisphere for the year 2023 (without stars labels)\n```python\nimport star_chart_spherical_projection as scsp\n\nscsp.plotStereographicProjection(northOrSouth=\"South\",\n\t\t\t\tdisplayStarNamesLabels=False,\n\t\t\t\tyearSince2000=23)\n```\n![quickstart_star_chart+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/quickstart_south_2023.png) \n\nPlot 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\n```python\nimport star_chart_spherical_projection as scsp\n\nexalibur_star = scsp.newStar(starName=\"Exalibur\",\n\t\t\t\tra=\"14.04.23\",\n\t\t\t\tdec=64.22,\n\t\t\t\tproperMotionSpeed=12.3,\n\t\t\t\tproperMotionAngle=83,\n\t\t\t\tmagnitudeVisual=1.2)\nkaraboudjan_star = scsp.newStar(starName=\"Karaboudjan\",\n\t\t\t\tra=\"3.14.15\",\n\t\t\t\tdec=10.13,\n\t\t\t\tproperMotionSpeedRA=57.6,\n\t\t\t\tproperMotionSpeedDec=60.1,\n\t\t\t\tmagnitudeVisual=0.3)\nscsp.plotStereographicProjection(northOrSouth=\"North\",\n\t\t\t\tbuiltInStars=[\"Vega\", \"Arcturus\", \"Altair\"],\n\t\t\t\tuserDefinedStars=[exalibur_star, karaboudjan_star],\n\t\t\t\tdisplayStarNamesLabels=True,\n\t\t\t\tfig_plot_color=\"red\",\n\t\t\t\tyearSince2000=-39)\n```\n![quickstart_star_chart+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/quickstart_newstar_example.png) \n\n\nReturn 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\u00b0)\n```python\nimport star_chart_spherical_projection as scsp\n\nstar_final_pos_dict = scsp.finalPositionOfStars(builtInStars=[\"Vega\"], yearSince2000=11500, save_to_csv=\"final_star_positions.csv\")\n```\nReturns a dictionary with a star and its declination and right ascension: `{'Vega': {'Declination': 83.6899118156341, 'RA': '05.38.21'}}`\n\nThe 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)\"]\n\n## Install\n\nPyPi pip install at [pypi.org/project/star-chart-spherical-projection/](https://pypi.org/project/star-chart-spherical-projection/)\n\n```\npip install star-chart-spherical-projection\n```\n\n## Requirements\n\nPython 3.7+\n```\npip install -r requirements.txt\n```\nRequirements will also be downloaded as part of the pip download\n\n## Overview\n\nFrom 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\u2019s actual position does change over time as the combined result of the star\u2019s small movement (proper motion) as well as the changing rotational axis of the Earth (precession).\n\n <p align=\"center\">\n  <img src=\"https://upload.wikimedia.org/wikipedia/commons/1/12/Earth_within_celestial_sphere.gif\" />\n</p>\n\nSpherical projection can overcome angular distortion by converting the position of the declination to:\n```\n# Projected from South Pole (Northern Hemisphere)\nnorth_hemisphere_declination = tan(45\u00b0 + (original_declination / 2))\n\n# Projected from North Pole (Southern Hemisphere)\nsouth_hemisphere_declination = tan(45\u00b0 - (original_declination / 2))\n```\nWhere in the Northern Hemisphere, projections are formed from the South Pole: \n![morrisons_astrolabe](https://user-images.githubusercontent.com/22159116/202336728-dc290bfa-44f5-4947-9a08-93f70286436e.jpg)\n\n## Add a New Star\n\n### newStar Object\n\nThe star chart package comes with over a hundred of brightest stars as part of a built-in library. However, a new star can be easily added for plotting or calculations by creating a newStar object. The newStar object will require a few important features that plotStereographicProjection() and finalPositionOfStars() can now accept as an additional argument.\n\nThis allows for the creation of a new star in two ways:\n\n**1. With a Proper Motion Speed and a Proper Motion Angle**\n\nAs seen in [in-the-sky.org for Pollux](https://in-the-sky.org/data/object.php?id=TYC1920-2194-1)\n```\nstar_chart_spherical_projection.newStar(starName=None,\n\t\t\t\t\tra=None,\n\t\t\t\t\tdec=None,\n\t\t\t\t\tproperMotionSpeed=None,\n\t\t\t\t\tproperMotionAngle=None,\n\t\t\t\t\tmagnitudeVisual=None)\n```\n* **[REQUIRED]** starName (string): A star name to be displayed as a label\n* **[REQUIRED]** ra (string): Right Ascension of star as a string with three parts 'HH.MM.SS' (Hours, Minutes, Seconds)\n* **[REQUIRED]** dec (int/float): Declination of star (a positive or negative value)\n* **[REQUIRED]** properMotionSpeed (int/float): Proper motion speed as a single value (in mas/year)\n* **[REQUIRED]** properMotionAngle (int/float): Proper motion positive angle (between 0\u00b0 and 360\u00b0)\n* **[REQUIRED]** magnitudeVisual (int/float): Absolute Visual Magnitude\n\n**With the Proper Motion speed along the Right Ascension and Declination**\n\nAs seen in [wikipeida.og for Pollux](https://en.wikipedia.org/wiki/Pollux_(star))\n\n```\nstar_chart_spherical_projection.newStar(starName=None,\n\t\t\t\t\tra=None,\n\t\t\t\t\tdec=None,\n\t\t\t\t\tproperMotionSpeedRA=None,\n\t\t\t\t\tproperMotionSpeedDec=None,\n\t\t\t\t\tmagnitudeVisual=None)\n```\n* **[REQUIRED]** starName (string): A star name to be displayed as a label\n* **[REQUIRED]** ra (string): Right Ascension of star as a string with three parts 'HH.MM.SS' (Hours, Minutes, Seconds)\n* **[REQUIRED]** dec (int/float): Declination of star (a positive or negative value)\n* **[REQUIRED]** properMotionSpeedRA (int/float): Speed of Proper Motion along the Right Ascension\n* **[REQUIRED]** properMotionSpeedDec (int/float): Speed of Proper Motion along the Declination\n* **[REQUIRED]** magnitudeVisual (int/float):\n\nImportant Note: RA/Dec proper motion will be converted from speed along the right ascension and declination to a proper motion speed (`properMotionSpeed`) and an angle (`properMotionAngle`) for further calculations\n\n<details closed>\n<summary>Stars Built-in (Click to view all)</summary>\n<br>\n['Acamar', 'Achernar', 'Acrab', 'Acrux', 'Adhara', 'Aldebaran', 'Alderamin', 'Algieba', 'Algol', 'Alhena', \n'Alioth', 'Alkaid', 'Almach', 'Alnilam', 'Alnitak', 'Alphard', 'Alphecca', 'Alpheratz', 'Altair', 'Aludra', \n'Ankaa', 'Antares', 'Arcturus', 'Arneb', 'Ascella', 'Aspidiske', 'Atria', 'Avior', 'Bellatrix', 'Beta Hydri', \n'Beta Phoenicis', 'Betelgeuse', 'Canopus', 'Capella', 'Caph', 'Castor', 'Cebalrai', 'Celaeno', 'Chara', \n'Cor-Caroli', 'Cursa', 'Delta Crucis', 'Deneb', 'Denebola', 'Diphda', 'Dschubba', 'Dubhe', 'Elnath', 'Eltanin', \n'Enif', 'Formalhaut', 'Gacrux', 'Gamma Phoenicis', 'Gienah', 'Hadar', 'Hamal', 'Kochab', 'Kornephoros', 'Lesath', \n'Markab', 'Megrez', 'Meissa', 'Menkalinan', 'Menkar', 'Menkent', 'Merak', 'Miaplacidus', 'Mimosa', 'Mintaka', \n'Mirach', 'Mirfak', 'Mirzam', 'Mizar', 'Muphrid', 'Naos', 'Navi', 'Nunki', 'Peacock', 'Phact', 'Phecda', 'Polaris', \n'Pollux', 'Procyon', 'Rasalhague', 'Rastaban', 'Regulus', 'Rigel', 'Ruchbah', 'Sabik', 'Sadr', 'Saiph', 'Sargas', \n'Scheat', 'Schedar', 'Segin', 'Seginus', 'Shaula', 'Sheratan', 'Sirius', 'Spica', 'Suhail', 'Tarazed', 'Thuban', \n'Unukalhai', 'Vega', 'Wezen', 'Zosma', 'Zubeneschamali']\n</details>\n\n## Plot Stars on a Polar Chart\n**plotStereographicProjection()**\n\nPlot stars on a Stereographic Polar Plot\n```\nplotStereographicProjection(northOrSouth=None, \n\t\t\tbuiltInStars=[], \n\t\t\tdeclination_min=None,\n\t\t\tyearSince2000=0,\n\t\t\tdisplayStarNamesLabels=True,\n\t\t\tdisplayDeclinationNumbers=True,\n\t\t\tincrementBy=10,\n\t\t\tisPrecessionIncluded=True,\n\t\t\tmaxMagnitudeFilter=None,\n\t\t\tuserDefinedStars=[],\n\t\t\tonlyDisplayUserStars=False,\n\t\t\tshowPlot=True,\n\t\t\tfig_plot_title=None,\n\t\t\tfig_plot_color=\"C0\",\n\t\t\tfigsize_n=12,\n\t\t\tfigsize_dpi=100,\n\t\t\tsave_plot_name=None)\n```\n- **[REQUIRED]** northOrSouth: (string) map for either the \"North\" or \"South\" hemisphere\n- *[OPTIONAL]* builtInStars: (list) a list of star names to include from built-in list, by default = [] includes all stars (in star_data.csv). Example: [\"Vega\", \"Merak\", \"Dubhe\"]\n- *[OPTIONAL]* declination_min: (int/float) outer declination value, defaults to -30\u00b0 in Northern hemisphere and 30\u00b0 in Southern hemisphere\n- *[OPTIONAL]* yearSince2000: (int/float) years since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years\n- *[OPTIONAL]* displayStarNamesLabels: (boolean) display the star name labels, defaults to True\n- *[OPTIONAL]* displayDeclinationNumbers: (boolean) display declination values, defaults to True\n- *[OPTIONAL]* incrementBy: (int) increment values for declination (either 1, 5, 10), defaults to 10\n- *[OPTIONAL]* isPrecessionIncluded: (boolean) when calculating star positions include predictions for precession, defaults to True\n- *[OPTIONAL]* maxMagnitudeFilter: (int/float) filter existing stars by magnitude by setting the max magnitude for the chart to include, defaults to None (shows all stars)\n- *[OPTIONAL]* userDefinedStars: (list) List of newStar objects of stars the user has added\n- *[OPTIONAL]* onlyDisplayUserStars: (bool) Only display the stars defined by the users (userDefinedStars)\n- *[OPTIONAL]* showPlot: (boolean) show plot (triggers plt.show()) when finished running, defaults to True\n- *[OPTIONAL]* fig_plot_title: (string) figure title, defaults to \"<North/South>ern Hemisphere [<YEAR NUMBERS> Years Since 2000 (YYYY)]: +/-90\u00b0 to <DECLINATION MIN>\u00b0\"\n- *[OPTIONAL]* fig_plot_color: (string) scatter plot star color, defaults to C0\n- *[OPTIONAL]* figsize_n: (int/float) figure size, default to 12\n- *[OPTIONAL]* figsize_dpi: (int/float) figure DPI, default to 100\n- *[OPTIONAL]* save_plot_name: (string) save plot with a string name, defaults to not saving\n\n<details closed>\n<summary>Stars that will be included by default when builtInStars = [] (Click to view all)</summary>\n<br>\n['Acamar', 'Achernar', 'Acrab', 'Acrux', 'Adhara', 'Aldebaran', 'Alderamin', 'Algieba', 'Algol', 'Alhena', \n'Alioth', 'Alkaid', 'Almach', 'Alnilam', 'Alnitak', 'Alphard', 'Alphecca', 'Alpheratz', 'Altair', 'Aludra', \n'Ankaa', 'Antares', 'Arcturus', 'Arneb', 'Ascella', 'Aspidiske', 'Atria', 'Avior', 'Bellatrix', 'Beta Hydri', \n'Beta Phoenicis', 'Betelgeuse', 'Canopus', 'Capella', 'Caph', 'Castor', 'Cebalrai', 'Celaeno', 'Chara', \n'Cor-Caroli', 'Cursa', 'Delta Crucis', 'Deneb', 'Denebola', 'Diphda', 'Dschubba', 'Dubhe', 'Elnath', 'Eltanin', \n'Enif', 'Formalhaut', 'Gacrux', 'Gamma Phoenicis', 'Gienah', 'Hadar', 'Hamal', 'Kochab', 'Kornephoros', 'Lesath', \n'Markab', 'Megrez', 'Meissa', 'Menkalinan', 'Menkar', 'Menkent', 'Merak', 'Miaplacidus', 'Mimosa', 'Mintaka', \n'Mirach', 'Mirfak', 'Mirzam', 'Mizar', 'Muphrid', 'Naos', 'Navi', 'Nunki', 'Peacock', 'Phact', 'Phecda', 'Polaris', \n'Pollux', 'Procyon', 'Rasalhague', 'Rastaban', 'Regulus', 'Rigel', 'Ruchbah', 'Sabik', 'Sadr', 'Saiph', 'Sargas', \n'Scheat', 'Schedar', 'Segin', 'Seginus', 'Shaula', 'Sheratan', 'Sirius', 'Spica', 'Suhail', 'Tarazed', 'Thuban', \n'Unukalhai', 'Vega', 'Wezen', 'Zosma', 'Zubeneschamali']\n</details>\n\n| northOrSouth=\"North\" (-30\u00b0 to 90\u00b0) (without star labels) | northOrSouth=\"South\" (30\u00b0 to -90\u00b0) (without star labels) |\n| ------------- | ------------- |\n| ![northOrSouth+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/northOrSouth_north.png) |  ![northOrSouth+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/northOrSouth_south.png) |\n\n| builtInStars=[] (Includes all stars, default) | builtInStars=[\"Vega\", \"Arcturus\", \"Enif\", \"Caph\", \"Mimosa\"]|\n| ------------- | ------------- |\n| ![builtInStars+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_default.png) | ![builtInStars+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/builtInStars_subset.png) |\n\n| declination_min=-30\u00b0 (default) | declination_min=10\u00b0 |\n| ------------- | ------------- |\n| ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_default.png) | ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_20.png) |\n\n| yearSince2000=0 (default) | yearSince2000=-3100 |\n| ------------- | ------------- |\n| ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/declination_min_default.png) | ![declination_min+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/yearSince2000_1100.png) |\n\n| displayStarNamesLabels=True (default) | displayStarNamesLabels=False |\n| ------------- | ------------- |\n| ![displayStarNamesLabels+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayStarNamesLabels_default.png)  | ![displayStarNamesLabels+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayStarNamesLabels_false.png) |\n\n| displayDeclinationNumbers=True (default) (without star labels) | displayDeclinationNumbers=False (without star labels) |\n| ------------- | ------------- |\n| ![displayDeclinationNumbers+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayDeclinationNumbers_default.png)  | ![displayDeclinationNumbers+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/displayDeclinationNumbers_false.png) |\n\n| incrementBy=10 (default) (without star labels) | incrementBy=5 (without star labels) |\n| ------------- | ------------- |\n| ![incrementBy_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/incrementBy_default.png) | ![incrementBy_5+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/incrementBy_5.png) |\n\n| isPrecessionIncluded=True (default) | isPrecessionIncluded=False |\n| ------------- | ------------- |\n| ![isPrecessionIncluded_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/isPrecessionIncluded_default.png) | ![isPrecessionIncluded_false+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/isPrecessionIncluded_false.png) |\n\n| maxMagnitudeFilter=None (default) | maxMagnitudeFilter=1 |\n| ------------- | ------------- |\n| ![maxMagnitudeFilter_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/maxMagnitudeFilter_default.png) | ![maxMagnitudeFilter+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/maxMagnitudeFilter_1.png) |\n\n| onlyDisplayUserStars=False (default) with userDefinedStars | onlyDisplayUserStars=True with userDefined Stars |\n| ------------- | ------------- |\n| ![onlyDisplayUserStars_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/onlyDisplayUserStars_default.png) | ![onlyDisplayUserStars+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/onlyDisplayUserStars_true.png) |\n\n| fig_plot_title=(default) | fig_plot_title=\"This is a Example Title for a Star Chart\" |\n| ------------- | ------------- |\n| ![fig_plot_title_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_title_default.png) | ![fig_plot_title+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_title_example.png) |\n\n| fig_plot_color=\"C0\" (default) (without star labels) | fig_plot_color=\"darkorchid\" (without star labels) |\n| ------------- | ------------- |\n| ![fig_plot_color_default+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_color_default.png) | ![fig_plot_color_dark_orchid+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/fig_plot_color_darkorchid.png) |\n\n### Star Chart Examples:\n__Star Chart in the Northern Hemisphere (centered on 90\u00b0) without Precession__\n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"North\",\n\t\t\t\t\t\t\tdisplayStarNamesLabels=False,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=False,\n\t\t\t\t\t\t\tfig_plot_color=\"red\")\n```\n![north_star_chart_without_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_without_labels_without_precession.png) \n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"North\",\n\t\t\t\t\t\t\tdisplayStarNamesLabels=True,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=False,\n\t\t\t\t\t\t\tfig_plot_color=\"red\")\n```\n![north_star_chart_with_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_with_labels_without_precession.png) \n__Star Chart in the Northern Hemisphere (centered on 90\u00b0) with Precession__\n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"North\",\n\t\t\t\t\t\t\tdisplayStarNamesLabels=False,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=True,\n\t\t\t\t\t\t\tfig_plot_color=\"red\")\n```\n![north_star_chart_without_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_without_labels_with_precession.png) \n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"North\",\n\t\t\t\t\t\t\tdisplayStarNamesLabels=True,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=True,\n\t\t\t\t\t\t\tfig_plot_color=\"red\")\n```\n![north_star_chart_with_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/north_with_labels_with_precession.png) \n__Star Chart in the Southern Hemisphere (centered on -90\u00b0) without Precession__\n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"South\", \n\t\t\t\t\t\t\tdisplayStarNamesLabels=False,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=False,\n\t\t\t\t\t\t\tfig_plot_color=\"cornflowerblue\")\n```\n![south_star_chart_without_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_without_labels_without_precession.png) \n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"South\", \n\t\t\t\t\t\t\tdisplayStarNamesLabels=True,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=False,\n\t\t\t\t\t\t\tfig_plot_color=\"cornflowerblue\")\n```\n![south_star_chart_with_labels_without_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_with_labels_without_precession.png) \n__Star Chart in the Southern Hemisphere (centered on -90\u00b0) with Precession__\n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"South\", \n\t\t\t\t\t\t\tdisplayStarNamesLabels=False,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=True,\n\t\t\t\t\t\t\tfig_plot_color=\"cornflowerblue\")\n```\n![south_star_chart_without_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_without_labels_with_precession.png) \n```\nstar_chart_spherical_projection.plotStereographicProjection(northOrSouth=\"South\", \n\t\t\t\t\t\t\tdisplayStarNamesLabels=True,\n\t\t\t\t\t\t\tyearSince2000=11500,\n\t\t\t\t\t\t\tisPrecessionIncluded=True,\n\t\t\t\t\t\t\tfig_plot_color=\"cornflowerblue\")\n```\n![south_star_chart_with_labels_with_precession+png](https://raw.githubusercontent.com/cyschneck/Star-Chart-Spherical-Projection/main/examples/south_with_labels_with_precession.png) \n\n## Return Final Position of Stars\n**finalPositionOfStars()**\n\nReturns a dictionary for the final positions of the stars in the format: {'Star Name': {\"Declination\" : Declination (int), \"RA\": RA (str)}\n```\nfinalPositionOfStars(builtInStars=[],\n\t\tyearSince2000=0, \n\t\tisPrecessionIncluded=True,\n\t\tuserDefinedStars=[],\n\t\tonlyDisplayUserStars=False,\n\t\tdeclination_min=None,\n\t\tdeclination_max=None,\n\t\tsave_to_csv=None)\n```\n- *[OPTIONAL]* builtInStars: (list) a list of star names to include from built-in list, by default = [] includes all stars (in star_data.csv). Example: [\"Vega\", \"Merak\", \"Dubhe\"]\n- *[OPTIONAL]* yearSince2000: (int/float) years since 2000 (-50 = 1950 and +50 = 2050) to calculate proper motion and precession, defaults = 0 years\n- *[OPTIONAL]* isPrecessionIncluded: (boolean) when calculating star positions include predictions for precession, defaults to True\n- *[OPTIONAL]* userDefinedStars: (list) List of newStar objects of stars the user has added\n- *[OPTIONAL]* onlyDisplayUserStars: (bool) Only include the stars defined by the users (userDefinedStars)\n- *[OPTIONAL]* declination_min: (int/float) set minimum declination value, defaults to -30\u00b0 in Northern hemisphere and 30\u00b0 in Southern hemisphere\n- *[OPTIONAL]* declination_max: (int/float) set maximum declination value, defaults to 90\u00b0 in Northern hemisphere and -90\u00b0 in Southern hemisphere\n- *[OPTIONAL]* save_to_csv: (string) CSV filename and location to save final star positions with headers [\"Star Name\", \"Right Ascension (HH.MM.SS)\", \"Declination (DD.SS)\"]\n\n<details closed>\n<summary>Stars that will be included by default when builtInStars = [] (Click to view all)</summary>\n<br>\n['Acamar', 'Achernar', 'Acrab', 'Acrux', 'Adhara', 'Aldebaran', 'Alderamin', 'Algieba', 'Algol', 'Alhena', \n'Alioth', 'Alkaid', 'Almach', 'Alnilam', 'Alnitak', 'Alphard', 'Alphecca', 'Alpheratz', 'Altair', 'Aludra', \n'Ankaa', 'Antares', 'Arcturus', 'Arneb', 'Ascella', 'Aspidiske', 'Atria', 'Avior', 'Bellatrix', 'Beta Hydri', \n'Beta Phoenicis', 'Betelgeuse', 'Canopus', 'Capella', 'Caph', 'Castor', 'Cebalrai', 'Celaeno', 'Chara', \n'Cor-Caroli', 'Cursa', 'Delta Crucis', 'Deneb', 'Denebola', 'Diphda', 'Dschubba', 'Dubhe', 'Elnath', 'Eltanin', \n'Enif', 'Formalhaut', 'Gacrux', 'Gamma Phoenicis', 'Gienah', 'Hadar', 'Hamal', 'Kochab', 'Kornephoros', 'Lesath', \n'Markab', 'Megrez', 'Meissa', 'Menkalinan', 'Menkar', 'Menkent', 'Merak', 'Miaplacidus', 'Mimosa', 'Mintaka', \n'Mirach', 'Mirfak', 'Mirzam', 'Mizar', 'Muphrid', 'Naos', 'Navi', 'Nunki', 'Peacock', 'Phact', 'Phecda', 'Polaris', \n'Pollux', 'Procyon', 'Rasalhague', 'Rastaban', 'Regulus', 'Rigel', 'Ruchbah', 'Sabik', 'Sadr', 'Saiph', 'Sargas', \n'Scheat', 'Schedar', 'Segin', 'Seginus', 'Shaula', 'Sheratan', 'Sirius', 'Spica', 'Suhail', 'Tarazed', 'Thuban', \n'Unukalhai', 'Vega', 'Wezen', 'Zosma', 'Zubeneschamali']\n</details>\n\n## Bibliography\n\nStar position (right ascension and declination) as well as the angle and speed of proper motion from [in-the-sky.org](https://in-the-sky.org/)\n\nPrecession model: [Vondr\u00e1k, J., et al. \u201cNew Precession Expressions, Valid for Long Time Intervals.\u201d Astronomy &amp; Astrophysics, vol. 534, 2011](https://www.aanda.org/articles/aa/pdf/2011/10/aa17274-11.pdf)\n\nPreecession code adapted to Python 3+ from [Github Repo: vondrak](https://github.com/dreamalligator/vondrak)\n\n## Bug and Feature Request\n\nSubmit a bug fix, question, or feature request as a [Github Issue](https://github.com/cyschneck/Star-Chart-Spherical-Projection/issues) or to cyschneck@gmail.com\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "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",
    "version": "1.5.0",
    "project_urls": {
        "Download": "https://github.com/cyschneck/Star-Chart-Spherical-Projection/archive/refs/tags/v1.5.0.tar.gz",
        "Homepage": "https://github.com/cyschneck/Star-Chart-Spherical-Projection"
    },
    "split_keywords": [
        "astronomy",
        "python",
        "star charts",
        "precession",
        "proper motion",
        "spherical projection",
        "stereographic projection"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c29bb4f238846e2684248be3f1a2dc486ae192b9501bee57b5ede6fc1e11fdf",
                "md5": "85d54df38c8a270a28e5f61b932af97a",
                "sha256": "17e31aa6db0b3a3c76124b98095514ed0958c01574b5998fe0b6e17ca3492273"
            },
            "downloads": -1,
            "filename": "star_chart_spherical_projection-1.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "85d54df38c8a270a28e5f61b932af97a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 36305,
            "upload_time": "2023-06-30T06:31:16",
            "upload_time_iso_8601": "2023-06-30T06:31:16.484967Z",
            "url": "https://files.pythonhosted.org/packages/0c/29/bb4f238846e2684248be3f1a2dc486ae192b9501bee57b5ede6fc1e11fdf/star_chart_spherical_projection-1.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6979456746c93531a36283f0f51a092e50f5584990c0dc4556cb9a90a6e4f90f",
                "md5": "03f3d54060c50ebe92bb8b4878f5a187",
                "sha256": "0d19d46c38071596eed38258c494a79e8cc3825857be7bff97663885d1aa5685"
            },
            "downloads": -1,
            "filename": "star-chart-spherical-projection-1.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "03f3d54060c50ebe92bb8b4878f5a187",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 37357,
            "upload_time": "2023-06-30T06:31:18",
            "upload_time_iso_8601": "2023-06-30T06:31:18.539518Z",
            "url": "https://files.pythonhosted.org/packages/69/79/456746c93531a36283f0f51a092e50f5584990c0dc4556cb9a90a6e4f90f/star-chart-spherical-projection-1.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-30 06:31:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cyschneck",
    "github_project": "Star-Chart-Spherical-Projection",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "star-chart-spherical-projection"
}
        
Elapsed time: 0.13478s