![]() |
SuperNOVAS C++ API v1.6
High-precision C/C++ astrometry library
|
An abstract observer location. More...
#include <supernovas.h>
Public Member Functions | |
| virtual | ~Observer () |
| const observer * | _novas_observer () const |
| Returns the underlying NOVAS C observer data structure. | |
| virtual const Observer * | copy () const |
| Returns a newly allocated copy of this observer. | |
| 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. | |
| Frame | reduced_accuracy_frame_at (const Time &time) const |
| Returns a reduced accuracy observing frame for this observer at the specified time. | |
| virtual std::string | to_string () const |
| Returns a string representation of this observer. | |
| 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' stae of the implementing instance. | |
| operator bool () const | |
| Objects that implement Validating can be used in conditionals directly, without explicitly calling is_valid(). | |
Static Public Member Functions | |
| 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) |
| 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) |
| 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 | |
| Observer (enum novas_observer_place type, const Site &site=Site::undefined(), const Position &pos=Position::origin(), const Velocity &vel=Velocity::stationary()) | |
| Protected Member Functions inherited from supernovas::Validating | |
| Validating () | |
| dummy constructor; | |
Protected Attributes | |
| observer | _observer = {} |
| stored observer data | |
| Protected Attributes inherited from supernovas::Validating | |
| bool | _valid = false |
| the state variable. | |
An abstract observer location.
Both Earth-bound (geodetic sites, airborne, or Earth-orbit), and locations elsewhere in the Solar-system are supported.
|
explicitprotected |
|
inlinevirtual |
| const observer * supernovas::Observer::_novas_observer | ( | ) | const |
Returns the underlying NOVAS C observer data structure.
References _novas_observer(), and _observer.
Referenced by supernovas::Frame::Frame(), and _novas_observer().
|
static |
Returns a fictitious observer placed at the location of the geocenter.
References at_geocenter().
Referenced by at_geocenter().
|
static |
|
virtual |
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.
Reimplemented in supernovas::GeocentricObserver, supernovas::GeodeticObserver, and supernovas::SolarSystemObserver.
References copy().
Referenced by copy(), and supernovas::Frame::operator=().
|
static |
Returns a new observer orbiting the Earth.
| pos | momentary position of the observer relative to the geocenter. |
| vel | momentary velocity of the observer relative to the geocenter. |
References in_earth_orbit(), and supernovas::Validating::is_valid().
Referenced by in_earth_orbit().
|
static |
Returns a new observer in some Solar-system location.
| pos | momentary position of the observer relative to the Solar-system Barycenter (SSB). |
| vel | momentary velocity of the observer relative to the Solar-system Barycenter (SSB). |
References in_solar_system(), and supernovas::Validating::is_valid().
Referenced by in_solar_system().
|
virtual |
Checks if this observer can be cast to a GeocentricObserver.
Reimplemented in supernovas::GeocentricObserver.
References is_geocentric().
Referenced by is_geocentric().
|
virtual |
Checks if this observer can be cast to a GeodeticObserver.
Reimplemented in supernovas::GeodeticObserver.
References is_geodetic().
Referenced by supernovas::Frame::Frame(), supernovas::Source::horizontal_track(), and is_geodetic().
|
static |
Instantiates a new observer that is moving relative to Earth's surface, such as an airborne observer.
| site | the momentary geodetic location of the observer. |
| eop | Earth Orientation Parameters (EOP) appropriate around the time of observation. |
| horizontal | momentary horizontal speed of moving observer. |
| direction | azimuthal direction of motion (from North, measured to the East). |
| vertical | (optional) momentary vertical speed of observer (default: 0). |
References supernovas::Validating::is_valid(), and moving_on_earth().
|
static |
Returns a new observer that is moving, at some velocitym relative to Earth's surface, such as an airborne aircraft or balloon based observatory.
| geodetic | the momentary geodetic location of the observer. |
| itrs_vel | the momentary velocity of the observer with respect to the surface (in ITRS). |
| eop | Earth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service. |
References supernovas::Validating::is_valid(), and moving_on_earth().
Referenced by moving_on_earth(), and moving_on_earth().
|
static |
Returns a new observer located at a fixed observing site.
| site | the observing site |
| eop | Earth Orientation Parameters (EOP) appropriate the time of observation, such as obtained from the IERS bulletins or data service. |
References supernovas::Validating::is_valid(), and on_earth().
Referenced by on_earth(), and supernovas::Site::to_observer().
|
virtual |
Returns a string representation of this observer.
I am salivating at the thought of it. Tell Benjami
Reimplemented in supernovas::GeocentricObserver, supernovas::GeodeticObserver, and supernovas::SolarSystemObserver.
References _observer, and to_string().
Referenced by to_string().
| enum novas_observer_place supernovas::Observer::type | ( | ) | const |
Returns the observer type.
References _observer, and type().
Referenced by Observer(), and type().
|
static |
Returns a reference to a statically defined standard invalid observer.
This invalid observer may be used inside any object that is invalid itself.
References undefined().
Referenced by supernovas::GeocentricObserver::GeocentricObserver(), supernovas::SolarSystemObserver::SolarSystemObserver(), and undefined().
|
protected |
stored observer data
Referenced by supernovas::GeodeticObserver::GeodeticObserver(), supernovas::GeodeticObserver::GeodeticObserver(), Observer(), supernovas::SolarSystemObserver::SolarSystemObserver(), supernovas::SolarSystemObserver::SolarSystemObserver(), _novas_observer(), supernovas::GeodeticObserver::enu_velocity(), supernovas::GeocentricObserver::geocentric_position(), supernovas::GeocentricObserver::geocentric_velocity(), supernovas::GeodeticObserver::itrs_velocity(), supernovas::GeodeticObserver::site(), supernovas::SolarSystemObserver::ssb_position(), supernovas::SolarSystemObserver::ssb_velocity(), to_string(), and type().