A Python package to generate an astronomy star chart based on spherical projection that corrects for distortions to generate star charts with spherical projection

# Star-Chart-Spherical-Projection

A Python package to generate an astronomy star chart based on spherical projection with +90/-90° in the center (orignally based on this Astrolabe work) based on a star's position (declination and right ascension): past, present, and future (proper motion and *precession)

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 (polar plot's theta value) and declination as the distance from the center of the circle (polar plot's radius value). However, attempting to map the right ascension and declination directly will cause a distinct amount of 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. By accounting for the spherical transformation, the star chart can be corrected as seen on the right.

Without Correction With Correction

Example outputs:

Star Chart in the Northern Hemisphere (centered on 90°) Star Chart in the Southern Hemisphere (centered on -90°)

## Overview

From the perspective of an observer on the Earth's surface, the stars apprar to sit along the surface of the celestial sphere--an imaginary sphere of arbitery 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. The 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 this difficulty by converting the position of the declination to:

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


## Dependencies

Python 3.7

pip3 install -r requirements.txt


## Install

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

pip install star-chart-spherical-projection


## Examples

import star_chart_spherical_projection
star_chart_spherical_projection.plotStarChart(northOrSouth="North", star_plot_color="red")


## TODO:

TODO: check that user list has stars that are found in current list

Update pypi setup.py development status

Move constants to init.py instead of config.py

## Project details

Uploaded Python 3