![]() |
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. | |
| 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. | |
| 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=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 | |
| 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 | |
| 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) locations, and locations elsewhere in the Solar-system are supported. See the static methods of this class for instantiating different subclasses as appropriate.
|
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 |
Returns a fictitious observer placed at the location of the Solar-System Barycenter (SSB).
References at_ssb().
Referenced by at_ssb(), and supernovas::SolarSystemSource::barycentric_at().
|
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=().
|
virtual |
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.
| other | the other observer |
Reimplemented in supernovas::GeodeticObserver.
References _observer, equals(), and novas_equals_observer().
Referenced by supernovas::GeodeticObserver::equals(), equals(), operator!=(), and operator==().
|
protectedvirtual |
Returns the geocentric geometric position vector for this observer, in the GCRS, at the specified time and accuracy.
| Time of observation and astronomical timescales | Astrometric time of observation |
| accuracy | (optional) NOVAS_FULL_ACCURACY (default) or NOVAS_REDUCED_ACCURACY. |
Reimplemented in supernovas::GeodeticObserver.
References supernovas::Time::_novas_timespec(), _observer, supernovas::Unit::AU, gcrs_position_at(), geo_posvel(), supernovas::Time::jd(), supernovas::Position::undefined(), and novas_timespec::ut1_to_tt.
Referenced by gcrs_position_at(), and to_interferometric().
|
protectedvirtual |
Returns the geocentric geometric velocity vector for this observer, in the GCRS, at the specified time and accuracy.
| Time of observation and astronomical timescales | Astrometric time of observation |
| accuracy | (optional) NOVAS_FULL_ACCURACY (default) or NOVAS_REDUCED_ACCURACY. |
Reimplemented in supernovas::GeodeticObserver.
References supernovas::Time::_novas_timespec(), _observer, supernovas::Unit::AU, gcrs_velocity_at(), geo_posvel(), supernovas::Time::jd(), supernovas::Velocity::undefined(), and novas_timespec::ut1_to_tt.
Referenced by gcrs_velocity_at(), and to_interferometric().
|
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::GeodeticObserver::equals(), 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 | Mean (preferably interpolated) Earth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service, or EOP::undefined() to let Frame fetch polar offsets from IERS as needed |
| 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 | (optional) Mean (preferably interpolated) Earth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service, or EOP::undefined() to let Frame fetch polar offsets from IERS as needed (default: undefined). |
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 | (optional) Mean (preferably interpolated) Earth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service, or EOP::undefined() to let Frame fetch polar offsets from IERS as needed (default: undefined). |
References supernovas::Validating::is_valid(), and on_earth().
Referenced by on_earth(), and supernovas::Site::to_observer().
| bool supernovas::Observer::operator!= | ( | const Observer & | other | ) | const |
Checks if two observers differ given standard tolerances associated to their defining components.
Same as !equals().
| other | the other observer |
References equals(), and operator!=().
Referenced by operator!=().
| bool supernovas::Observer::operator== | ( | const Observer & | other | ) | const |
Checks if two observers are essentially the same within the tolerances associated to their defining components.
Same as equals().
| other | the other observer |
References equals(), and operator==().
Referenced by operator==().
|
virtual |
Returns a string representation of this observer.
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(), equals(), supernovas::GeocentricObserver::gcrs_position(), supernovas::GeodeticObserver::gcrs_position_at(), gcrs_position_at(), supernovas::GeocentricObserver::gcrs_velocity(), supernovas::GeodeticObserver::gcrs_velocity_at(), gcrs_velocity_at(), supernovas::GeodeticObserver::itrs_velocity(), supernovas::GeodeticObserver::site(), supernovas::SolarSystemObserver::ssb_position(), supernovas::SolarSystemObserver::ssb_velocity(), to_string(), and type().