SuperNOVAS C++ API v1.6
High-precision C/C++ astrometry library
Loading...
Searching...
No Matches
supernovas::OrbitalSource Class Reference

A Solar-system source, whose position and velocity can be calculated using Keplerian orbital elements. More...

#include <supernovas.h>

Inheritance diagram for supernovas::OrbitalSource:

Public Member Functions

 OrbitalSource (const std::string &name, const Orbital &orbit)
 Instantiates a new Solar-system source defined by Keplerian orbital elements.
const novas_orbital_novas_orbital () const
 Returns the underlying C orbital elements data structure for this source.
const Sourcecopy () const override
 Returns a pointer to a newly allocated copy of this Solar-system orbital source instance.
Orbital orbital () const
 Returns the Keplerian orbital parameters of this source.
std::string to_string () const override
Public Member Functions inherited from supernovas::SolarSystemSource
Geometric geometric_at (const Time &time, enum novas_accuracy accuracy=NOVAS_FULL_ACCURACY) const
Coordinate helio_distance (const Time &time) const
 Returns the heliocentric distance of a Solar-system source at the specified time of observation.
ScalarVelocity helio_rate (const Time &time) const
 Returns the heliocentric rate of recession of a Solar-system source at the specified time of observation.
double solar_illumination (const Frame &frame) const
 Returns the fraction [0.0:1.0] of the Solar-system source that appears illuminated by the Sun when viewed from a given observing frame, assuming that the source has a spheroidal shape.
double solar_power (const Time &time) const
 Returns the typical incident Solar power on the illuminated side of this Solar-system object.
Public Member Functions inherited from supernovas::Source
virtual ~Source ()
const struct novas_object_novas_object () const
 Returns a pointer to the NOVAS C novas_object data structure that stores data internally.
Angle angle_to (const Source &source, const Frame &frame) const
 Returns the angular separation of this source from another source, for the given observer location and time of observation.
Apparent apparent_in (const Frame &frame) const
 Returns the apparent position of a source (if possible), or else an invalid position.
EquatorialTrack equatorial_track (const Frame &frame, const Interval &range) const
 Returns the short-term equatorial trajectory of this source on the observer's sky, which can be used for extrapolating its apparent position in the near-term to avoid the repeated full-fledged position calculation, which may be expensive.
EquatorialTrack equatorial_track (const Frame &frame, double range_seconds=Unit::hour) const
 Returns the short-term equatorial trajectory of this source on the observer's sky, which can be used for extrapolating its apparent position in the near-term to avoid the repeated full-fledged position calculation, which may be expensive.
Geometric geometric_in (const Frame &frame, enum novas_reference_system system=NOVAS_TOD) const
 Returns the geometric position of a source (if possible), or else an invalid position.
HorizontalTrack horizontal_track (const Frame &frame, RefractionModel ref=NULL, const Weather &weather=Weather::standard()) const
 Returns the short-term horizontal trajectory of this source on the observer's sky, which can be used for extrapolating its apparent position in the near-term to avoid the repeated full-fledged position calculation, which may be expensive.
Angle moon_angle (const Frame &frame) const
 Returns the angular separation of this source from the Moon, for the given observer location and time of observation.
std::string name () const
 Returns the name given to this source at instantiation.
Time rises_above (const Angle &el, const Frame &frame, RefractionModel ref=NULL, const Weather &weather=Weather::standard()) const
 Returns the time when the source rises above the specified elevation next for an observer located on or near Earth's surface, or else std::nullopt if the observer is not near Earth's surface.
Time sets_below (const Angle &el, const Frame &frame, RefractionModel ref=NULL, const Weather &weather=Weather::standard()) const
 Returns the time when the source sets below the specified elevation next for an observer located on or near Earth's surface, or else std::nullopt if the observer is not near Earth's surface.
Angle sun_angle (const Frame &frame) const
 Returns the angular separation of this source from the Sun, for the given observer location and time of observation.
Time transits_in (const Frame &frame) const
 Returns the time when the source transits for an observer located on or near Earth's surface, or else std::nullopt if the observer is not near Earth's surface.
enum novas_object_type type () const
 Returns the type of this source.
Public Member Functions inherited from supernovas::Validating
bool is_valid () const
 Returns the previously set 'valid' stae of the implementing instance.
 operator bool () const
 Objects that implement Validating can be used in conditionals directly, without explicitly calling is_valid().

Additional Inherited Members

Static Public Member Functions inherited from supernovas::Source
static void set_case_sensitive (bool value)
 Enables or disabled case-sensitive treatment of source names.
Protected Member Functions inherited from supernovas::SolarSystemSource
 SolarSystemSource ()
Protected Member Functions inherited from supernovas::Source
 Source ()
 stored data on source
Protected Member Functions inherited from supernovas::Validating
 Validating ()
 dummy constructor;
Protected Attributes inherited from supernovas::Source
struct novas_object _object = {}
Protected Attributes inherited from supernovas::Validating
bool _valid = false
 the state variable.

Detailed Description

A Solar-system source, whose position and velocity can be calculated using Keplerian orbital elements.

While Keplerian orbitals are not typically accurate for long-term predictions, they can be accurate in the short term, provided that one uses appropriate up-to-date orbital elements, e.g. such as published by the Minor Planet Center (daily or otherwise regularly) for asteroids, comets, an Near-Earth Objects (NEOs). For newly discovered objects, the Keplerian orbital elements by the MPC may be the most accurate, or the only, source of information.

See also
EphemerisSource, Planet

Constructor & Destructor Documentation

◆ OrbitalSource()

supernovas::OrbitalSource::OrbitalSource ( const std::string & name,
const Orbital & orbit )

Instantiates a new Solar-system source defined by Keplerian orbital elements.

Parameters
namesource name as desired by the user.
orbitKeplerian orbital elements.

References supernovas::SolarSystemSource::SolarSystemSource(), supernovas::Orbital::_novas_orbital(), supernovas::Source::_object, supernovas::Validating::_valid, supernovas::Validating::is_valid(), make_orbital_object(), supernovas::Source::name(), and NOVAS_ORBITAL_OBJECT.

Referenced by copy().

Member Function Documentation

◆ _novas_orbital()

const novas_orbital * supernovas::OrbitalSource::_novas_orbital ( ) const

Returns the underlying C orbital elements data structure for this source.

Returns
the underlying C orbital elements data structure.

References supernovas::Source::_object.

◆ copy()

const Source * supernovas::OrbitalSource::copy ( ) const
overridevirtual

Returns a pointer to a newly allocated copy of this Solar-system orbital source instance.

Returns
pointer to new copy of this Solar-system orbital source instance.

Implements supernovas::Source.

References OrbitalSource().

◆ orbital()

Orbital supernovas::OrbitalSource::orbital ( ) const

Returns the Keplerian orbital parameters of this source.

Returns
the Keplerian orbital parameters.

References supernovas::Source::_object, supernovas::Orbital::from_novas_orbit(), and supernovas::Validating::is_valid().

◆ to_string()

std::string supernovas::OrbitalSource::to_string ( ) const
overridevirtual