Sidereal Sky

class SiderealSky : public simul::sky::SiderealSkyInterface

A class that calculates the positions of sun, moon and stars.

Public Functions

double GetDistanceToSun(double epoch_time) const

Get the distance to the sun in astronomical units.

double GetDistanceToMoon(double epoch_time, const Orbit &orbit) const

Get the distance to the moon in earth radii.

double GetTopocentricDistanceToMoon(double epoch_time, double latitude, double longitude, const Orbit &orbit) const

Get the distance to the moon from the earth’s surface in earth radii.

void GetSunEquatorialPosition(double &RA, double &decl, double epoch_time) const

Get the position of the sun in equatorial coordinates.

void GetMoonEquatorialPosition(double &RA, double &decl, double epoch_time, const Orbit &orbit, double *R = nullptr) const

Get the position of the moon in equatorial coordinates.

virtual void GetSunPosition(float &azimuth, float &elevation, double epoch_time, double latitude, double longitude) const

Get the position of the sun in the sky at a specified latitude and longitude.

virtual void GetMoonPosition(float &azimuth, float &elevation, double epoch_time, double latitude, double longitude, const Orbit &orbit) const

Get the position of the moon in the sky at a specified latitude and longitude.

virtual const float *SiderealToEarthMatrix(double epoch_time, double LatitudeRadians, double LongitudeRadians) const

Get a 4x4 transformation matrix to transform sidereal coordinates into azimuth and elevation.

Public Static Functions

static int DaysInTheYear(int y)

How many days in the specified year.

static void GetDate(int y, int &M, int &D, int day_of_the_year)

Get the month and day.

static double GetDayNumberFromDate(int year, int month, int day)

Convert year, month and day into a Julian Day Number.