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

An observer whose momentary position and velocity is defined dynamically through a state provider function. More...

#include <supernovas.h>

Inheritance diagram for supernovas::DynamicObserver:

Public Member Functions

 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.
const std::string & className () const override
 Returns the observer class name.
const Observer * copy () const override
 Returns a newly allocated copy of this observer.
novas_state_provider state_call () const
const void * state_call_arg () const
std::string to_string () const override
 Returns a string representation of this observer.
Public Member Functions inherited from supernovas::Observer
virtual ~Observer ()
const observer * _novas_observer () const
 Returns the underlying NOVAS C observer data structure.
virtual bool equals (const Observer &other) const
 Checks if this observer is essentially the same as the other, within the tolerances associated to their defining components.
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().

Protected Member Functions

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;

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 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 momentary position and velocity is defined dynamically through a state provider function.

Constructor & Destructor Documentation

◆ DynamicObserver()

supernovas::DynamicObserver::DynamicObserver ( novas_state_provider call,
const void * arg = NULL )
explicit

Instantiates a new observer with dynamically determined position / velocity via a designated state provider function.

Parameters
callthe state provider function
arg(optional) pointer argument to pass to the state provider function. It may be NULL if the function does not use externally supplied data. (default: NULL)
Since
1.8
See also
Observer::dynamic(), EphemerisObserver, OrbitalObserver

References supernovas::Validating::_valid, NOVAS_DYNAMIC_OBSERVER, and supernovas::Observer::undefined().

Referenced by supernovas::EphemerisObserver::EphemerisObserver(), supernovas::OrbitalObserver::OrbitalObserver(), and copy().

Member Function Documentation

◆ barycentric_at()

Geometric supernovas::DynamicObserver::barycentric_at ( const Time & time,
enum novas_accuracy accuracy = NOVAS_FULL_ACCURACY ) const

Returns the Solar System Barycentric position and velocity vectors of this observer for the specified time and accuracy.

Parameters
timeAstrometric time specification
accuracy(optional) NOVAS_FULL_ACCURACY or NOVAS_REDUCED_ACCURACY (default: full accuracy).
Returns
The geometric observer coordinates relative to the Solar System Barycenter (SSB)
Since
1.8

References supernovas::Position::Position(), supernovas::Unit::AU, supernovas::Unit::AU_per_day, supernovas::Frame::barycentric_at(), supernovas::Time::jd(), NOVAS_ICRS, NOVAS_TDB, and supernovas::Geometric::undefined().

◆ className()

const std::string & supernovas::DynamicObserver::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::Observer.

Reimplemented in supernovas::EphemerisObserver, and supernovas::OrbitalObserver.

Referenced by to_string().

◆ copy()

const Observer * supernovas::DynamicObserver::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::Observer.

Reimplemented in supernovas::EphemerisObserver, and supernovas::OrbitalObserver.

References DynamicObserver().

◆ set_arg()

void supernovas::DynamicObserver::set_arg ( const void * ptr)
protected

Sets the pointer argument to pass onto the state function call.

Parameters
ptrpointer to the data to pass along to the state function call.
Since
1.8

◆ state_call()

novas_state_provider supernovas::DynamicObserver::state_call ( ) const

◆ state_call_arg()

const void * supernovas::DynamicObserver::state_call_arg ( ) const

◆ to_string()

std::string supernovas::DynamicObserver::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::Observer.

Reimplemented in supernovas::EphemerisObserver, and supernovas::OrbitalObserver.

References className().