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

An observer whose position and velocity is defined by Keplerian orbital parameters around a major Solar-system body (such as the Sun, Moon, major planets, or barycenters). More...

#include <supernovas.h>

Inheritance diagram for supernovas::OrbitalObserver:

Public Member Functions

 OrbitalObserver (const Orbital &orbital, const std::string &name="orbital observer")
 Instantiates a new observer, whose location is defined by Keplerian orbital parameters around a major Solar System body.
const std::string & className () const override
 Returns the observer class name.
const Observer * copy () const override
 Returns a newly allocated copy of this observer.
bool equals (const Observer &other) const override
 Checks if this observer is essentially the same as the other, within the tolerances associated to their defining components.
std::string name () const
 Returns the name used for the ephemeris lookup by the currently configured novas_ephem_provider function.
const Orbital orbital () const
 Returns a new instance of the Keplerian orbital elements that define this observer's location and movement.
std::string to_string () const override
 Returns a string representation of this observer.
Public Member Functions inherited from supernovas::DynamicObserver
 DynamicObserver (novas_state_provider call, const void *arg=NULL)
 Instantiates a new observer with dynamically determined position / velocity via a designated state provider function.
Geometric barycentric_at (const Time &time, enum novas_accuracy=NOVAS_FULL_ACCURACY) const
 Returns the Solar System Barycentric position and velocity vectors of this observer for the specified time and accuracy.
novas_state_provider state_call () const
const void * state_call_arg () const
Public Member Functions inherited from supernovas::Observer
virtual ~Observer ()
const observer * _novas_observer () const
 Returns the underlying NOVAS C observer data structure.
Frame frame_at (const Time &time, enum novas_accuracy accuracy=NOVAS_FULL_ACCURACY) const
 Returns an observing frame for this observer at the specified time and optionally with a specified accuracy.
virtual bool is_geocentric () const
 Checks if this observer can be cast to a GeocentricObserver.
virtual bool is_geodetic () const
 Checks if this observer can be cast to a GeodeticObserver.
bool operator!= (const Observer &other) const
 Checks if two observers differ given standard tolerances associated to their defining components.
bool operator== (const Observer &other) const
 Checks if two observers are essentially the same within the tolerances associated to their defining components.
Frame reduced_accuracy_frame_at (const Time &time) const
 Returns a reduced accuracy observing frame for this observer at the specified time.
Interferometric to_interferometric (const Apparent &phase_center, enum novas_reference_system system=NOVAS_ICRS) const
 Returns projected u,v,w coordinates for an interferometer station.
enum novas_observer_place type () const
 Returns the observer type.
Public Member Functions inherited from supernovas::Validating
bool is_valid () const
 Returns the previously set 'valid' state 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::Observer
static GeocentricObserver at_geocenter ()
 Returns a fictitious observer placed at the location of the geocenter.
static SolarSystemObserver at_ssb ()
 Returns a fictitious observer placed at the location of the Solar-System Barycenter (SSB).
static DynamicObserver dynamic (novas_state_provider state_call, const void *arg=NULL)
 Returns a new observer with dynamically determined position / velocity via a designated state provider function.
static GeocentricObserver in_earth_orbit (const Position &pos, const Velocity &vel)
 Returns a new observer orbiting the Earth.
static EphemerisObserver in_ephemeris (const std::string &name, long id)
 Returns a new observer defined by an ephemeris position, that can be obtained by the configured novas_ephem_provider call.
static OrbitalObserver in_orbital (const Orbital &orbit, const std::string &name="orbital observer")
 Returns a new observer, whose location is defined by Keplerian orbital parameters around a major Solar System body.
static SolarSystemObserver in_solar_system (const Position &pos, const Velocity &vel)
 Returns a new observer in some Solar-system location.
static GeodeticObserver moving_on_earth (const Site &site, const EOP &eop, const ScalarVelocity &horizontal, const Angle &direction, const ScalarVelocity &vertical=ScalarVelocity::stationary())
 Instantiates a new observer that is moving relative to Earth's surface, such as an airborne observer.
static GeodeticObserver moving_on_earth (const Site &site, const Velocity &itrs_vel, const EOP &eop=EOP::undefined())
 Returns a new observer that is moving, at some velocitym relative to Earth's surface, such as an airborne aircraft or balloon based observatory.
static GeodeticObserver on_earth (const Site &site, const EOP &eop=EOP::undefined())
 Returns a new observer located at a fixed observing site.
static const Observer & undefined ()
 Returns a reference to a statically defined standard invalid observer.
Protected Member Functions inherited from supernovas::DynamicObserver
void set_arg (const void *ptr)
 Sets the pointer argument to pass onto the state function call.
Protected Member Functions inherited from supernovas::Observer
 Observer (enum novas_observer_place type, const Site &site=Site::undefined(), const Position &pos=Position::origin(), const Velocity &vel=Velocity::stationary())
virtual Position gcrs_position_at (const Time &time, enum novas_accuracy accuracy=NOVAS_FULL_ACCURACY) const
 Returns the geocentric geometric position vector for this observer, in the GCRS, at the specified time and accuracy.
virtual Velocity gcrs_velocity_at (const Time &time, enum novas_accuracy accuracy=NOVAS_FULL_ACCURACY) const
 Returns the geocentric geometric velocity vector for this observer, in the GCRS, at the specified time and accuracy.
Protected Member Functions inherited from supernovas::Validating
 Validating ()
 dummy constructor;
Protected Attributes inherited from supernovas::Observer
observer _observer = {}
 stored observer data
Protected Attributes inherited from supernovas::Validating
bool _valid = false
 the state variable.

Detailed Description

An observer whose position and velocity is defined by Keplerian orbital parameters around a major Solar-system body (such as the Sun, Moon, major planets, or barycenters).

Since
1.8
See also
Orbital, EphemerisObserver

Constructor & Destructor Documentation

◆ OrbitalObserver()

supernovas::OrbitalObserver::OrbitalObserver ( const Orbital & orbital,
const std::string & name = "orbital observer" )
explicit

Instantiates a new observer, whose location is defined by Keplerian orbital parameters around a major Solar System body.

Parameters
orbitalthe Keplerian orbital elements that define the observer location.
name(optional) a descriptive name or label to identify this observer (default: "orbital observer").
Since
1.8
See also
Observer::in_orbital()

References supernovas::DynamicObserver::DynamicObserver(), supernovas::Orbital::_novas_orbital(), supernovas::Observer::_observer, supernovas::Validating::_valid, novas_observer::call_arg, supernovas::Validating::is_valid(), make_orbital_object(), name(), novas_ephem_state(), and orbital().

Referenced by copy(), and equals().

Member Function Documentation

◆ className()

const std::string & supernovas::OrbitalObserver::className ( ) const
overridevirtual

Returns the observer class name.

All concrete subclasses should override this method to return their C++ class name.

Returns
the class name for this observer instance.
Since
1.8

Reimplemented from supernovas::DynamicObserver.

Referenced by equals(), and to_string().

◆ copy()

const Observer * supernovas::OrbitalObserver::copy ( ) const
overridevirtual

Returns a newly allocated copy of this observer.

The default implementation returns an invalid observer, but concrete subclasses should override that to return their onw copies.

Returns
a copy of this observer class, which may be an invalid observer (default).
Since
1.6

Reimplemented from supernovas::DynamicObserver.

References OrbitalObserver(), name(), and orbital().

◆ equals()

bool supernovas::OrbitalObserver::equals ( const Observer & other) const
overridevirtual

Checks if this observer is essentially the same as the other, within the tolerances associated to their defining components.

Note, that an observer may not equal itself if it contains NAN or infinite components.

Parameters
otherthe other observer
Returns
true if both observers effectively describe the same observing location, within tolerances, or else false.
Since
1.7
See also
operator==(), operator!=()

Reimplemented from supernovas::Observer.

References OrbitalObserver(), supernovas::Observer::className(), className(), and novas_equals_object().

◆ name()

std::string supernovas::OrbitalObserver::name ( ) const

Returns the name used for the ephemeris lookup by the currently configured novas_ephem_provider function.

Returns
the name used for the ephemeris lookup
Since
1.8

Referenced by OrbitalObserver(), and copy().

◆ orbital()

const Orbital supernovas::OrbitalObserver::orbital ( ) const

Returns a new instance of the Keplerian orbital elements that define this observer's location and movement.

Returns
the orbital parameters of this observer.
Since
1.8

References supernovas::Orbital::from_novas_orbit().

Referenced by OrbitalObserver(), copy(), and to_string().

◆ to_string()

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

Returns a string representation of this observer.

Returns
a new string with a brief description of this observer.
Since
1.6

Reimplemented from supernovas::DynamicObserver.

References className(), orbital(), and supernovas::Orbital::to_string().