Rose
Public Member Functions | Public Attributes | List of all members
Satellite Class Reference

Satellite orbital mechanics. More...

#include <Plan13.h>

Collaboration diagram for Satellite:
Collaboration graph
[legend]

Public Member Functions

 Satellite (const std::array< std::string_view, 3 > &ephemeris)
 Initialize satellite from two line ephemeris data. More...
 
void setEphemeris (const std::array< std::string_view, 3 > &ephemeris)
 
constexpr operator bool () const noexcept
 
void predict (const DateTime &dateTime)
 Predict the satelite position at given DateTime. More...
 
std::string_view getName () const
 Access the satellite name. More...
 
bool checkSatEpoch () const
 Determine if the sat epoch is known to be good. More...
 
bool eclipsed (const Sun &sp)
 Determine if the sun is eclipsed by the current predicted position. More...
 
std::tuple< double, double, double, double > topo (const Observer &obs)
 Convert satellite co-ordinates to an observer frame. More...
 
std::tuple< double, double > geo ()
 Access the sub-satellite geographical co-ordinates. More...
 
std::tuple< double, double > celest ()
 Access the satellite celestial co-ordinates. More...
 
double period () const
 Access the satellite orbital period. More...
 
double viewingRadius (double alt)
 Compute the viewing radius from the sub-satellite geographical location for a given altitude (angle of elevation). More...
 
DateTime epoch () const
 Access the epoch of the satellite. More...
 

Public Attributes

long DE {}
 
double TE {}
 
Vec3 SAT {}
 
Vec3 VEL {}
 
Vec3 S {}
 
Vec3 V {}
 
DateTime mPrediction {}
 

Detailed Description

Satellite orbital mechanics.

Constructor & Destructor Documentation

◆ Satellite()

Satellite::Satellite ( const std::array< std::string_view, 3 > &  ephemeris)
explicit

Initialize satellite from two line ephemeris data.

Parameters
ephemerisAn array containing the name, line 1, and line 2

Member Function Documentation

◆ celest()

std::tuple< double, double > Satellite::celest ( )

Access the satellite celestial co-ordinates.

Returns
a tuple containing latitude and longitude in Radians. North and East hemispheres have positive values.

◆ checkSatEpoch()

bool Satellite::checkSatEpoch ( ) const
inline

Determine if the sat epoch is known to be good.

Returns
true if good.

◆ eclipsed()

bool Satellite::eclipsed ( const Sun sp)

Determine if the sun is eclipsed by the current predicted position.

Parameters
spThe Sun object.
Returns
true if eclipsed.

◆ epoch()

DateTime Satellite::epoch ( ) const

Access the epoch of the satellite.

Returns
the DateTime of the epoch.

◆ geo()

std::tuple< double, double > Satellite::geo ( )

Access the sub-satellite geographical co-ordinates.

Returns
a tuple containing latitude and longitude in Radians. North and East hemispheres have positive values.

◆ getName()

std::string_view Satellite::getName ( ) const
inline

Access the satellite name.

Returns

◆ period()

double Satellite::period ( ) const

Access the satellite orbital period.

Returns
the period in days per revolution.

◆ predict()

void Satellite::predict ( const DateTime dateTime)

Predict the satelite position at given DateTime.

Parameters
dateTime

◆ topo()

std::tuple< double, double, double, double > Satellite::topo ( const Observer obs)

Convert satellite co-ordinates to an observer frame.

Parameters
obsthe Observer object
Returns
a tuple containing: altitude (the angle of elevation), azimuth, range, range_rate

◆ viewingRadius()

double Satellite::viewingRadius ( double  alt)

Compute the viewing radius from the sub-satellite geographical location for a given altitude (angle of elevation).

Parameters
alt- angle of elevation in Radians
Returns
the great-circle viewing radius in Radians.

The documentation for this class was generated from the following files: