Loading...
Searching...
No Matches
supernovas::SolarSystemObserver Class Reference
Observer location

An observer location anywhere in the Solar System, defined by its momentary barycentric position and velocity vectors. More...

`#include <supernovas.h>`

Inheritance diagram for supernovas::SolarSystemObserver:

## Public Member Functions

| SolarSystemObserver ()
| Instantiates a new stationary observer located at the Solar-System Barycenter (SSB).
| SolarSystemObserver (const Position &pos, const Velocity &vel)
| Instantiates a new observer in the Solar System.
const Observer * | copy () const override
| Returns a pointer to a newly allocated copy of this observer instance at a Solar-system location.
Position | ssb_position () const
| Returns the momentary location of this observer relative to the Solar-System Barycenter (SSB).
Velocity | ssb_velocity () const
| Returns the momentary velocity of this observer relative to the Solar-System Barycenter (SSB).
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().

## 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 GeocentricObserver | in_earth_orbit (const Position &pos, const Velocity &vel)
| Returns a new observer orbiting the Earth.
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::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 location anywhere in the Solar System, defined by its momentary barycentric position and velocity vectors.

Since
  1.6

## Constructor & Destructor Documentation

## SolarSystemObserver() [1/2]

supernovas::SolarSystemObserver::SolarSystemObserver | ( |  | ) |

Instantiates a new stationary observer located at the Solar-System Barycenter (SSB).

Since
  1.6

References SolarSystemObserver(), supernovas::Observer::_observer, supernovas::Validating::_valid, and make_solar_system_observer().

Referenced by SolarSystemObserver(), and copy().

## SolarSystemObserver() [2/2]

supernovas::SolarSystemObserver::SolarSystemObserver | ( | const Position & | pos,
|  | const Velocity & | vel )

Instantiates a new observer in the Solar System.

Parameters

  pos | momentary ICRS position of the observer relative to the Solar-system Barycenter (SSB).
  vel | momentary ICRS velocity of the observer relative to the Solar-system Barycenter (SSB).

Since
  1.6

References supernovas::Vector::_array(), supernovas::Observer::_observer, supernovas::Validating::_valid, supernovas::Unit::au, supernovas::Unit::day, supernovas::Validating::is_valid(), make_solar_system_observer(), NOVAS_SOLAR_SYSTEM_OBSERVER, supernovas::Vector::scaled(), and supernovas::Observer::undefined().

## Member Function Documentation

## copy()

const Observer * supernovas::SolarSystemObserver::copy | ( |  | ) | const

override virtual

Returns a pointer to a newly allocated copy of this observer instance at a Solar-system location.

Returns
  pointer to new copy of thus Solar-system based observer instance.

Since
  1.6

Reimplemented from supernovas::Observer.

References SolarSystemObserver().

## ssb_position()

Position supernovas::SolarSystemObserver::ssb_position | ( |  | ) | const

Returns the momentary location of this observer relative to the Solar-System Barycenter (SSB).

Returns
  the momentary position of the observer relative to hte SSB.

Since
  1.6

See also
  ssb_velocity()

References supernovas::Observer::_observer, supernovas::Unit::au, and supernovas::Validating::is_valid().

Referenced by to_string().

## ssb_velocity()

Velocity supernovas::SolarSystemObserver::ssb_velocity | ( |  | ) | const

Returns the momentary velocity of this observer relative to the Solar-System Barycenter (SSB).

Returns
  the momentary velocity of the observer relative to hte SSB.

Since
  1.6

See also
  ssb_position()

References supernovas::Observer::_observer, supernovas::Unit::AU_per_day, and supernovas::Validating::is_valid().

Referenced by to_string().

## to_string()

std::string supernovas::SolarSystemObserver::to_string | ( |  | ) | const

override virtual

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.

References supernovas::Vector::is_zero(), ssb_position(), ssb_velocity(), supernovas::Position::to_string(), and supernovas::Velocity::to_string().