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

An observer location at a geodetic (longitude, latitude, altitude) location at the surface or above it (e.g. More...

#include <supernovas.h>

Inheritance diagram for supernovas::GeodeticObserver:

Public Member Functions

 GeodeticObserver (const Site &site, const EOP &eop)
 Instantiates a new observer at a fixed location on Earth.
 GeodeticObserver (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.
 GeodeticObserver (const Site &site, const Velocity &itrs_vel, const EOP &eop)
 Instantiates a new observer that is moving relative to Earth's surface, such as an airborne observer.
const Observer * copy () const override
 Returns a pointer to a newly allocated copy of this geodetic (Earth-based) observer instance.
Velocity enu_velocity () const
 Returns the surface velocity of a moving observer, such as an airborne or balloon borne observatory.
const EOPeop () const
 Earth Orientation Parameters (EOP) appropriate around the time of observation.
bool is_geodetic () const override
 Checks if this observer can be cast to a GeodeticObserver.
Velocity itrs_velocity () const
 Returns the surface velocity of a moving observer, such as an airborne or balloon borne observatory.
Site site () const
 Returns the fixed or momentary observing site for this observer.
std::string to_string () const override
 Returns a string representation of this Earth-based observer location.
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.
Frame reduced_accuracy_frame_at (const Time &time) const
 Returns a reduced accuracy observing frame for this observer at the specified time.
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().

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)
 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 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())
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 at a geodetic (longitude, latitude, altitude) location at the surface or above it (e.g.

in an aircraft or balloon). The observer may be fixed at that location, or else moving with some velocity over the ground.

See also
GeodeticFrame, GeocentricObserver

Constructor & Destructor Documentation

◆ GeodeticObserver() [1/3]

supernovas::GeodeticObserver::GeodeticObserver ( const Site & site,
const EOP & eop )

Instantiates a new observer at a fixed location on Earth.

Parameters
sitethe observing site
eopEarth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service.

References supernovas::Validating::_valid, eop(), NOVAS_OBSERVER_ON_EARTH, and site().

Referenced by GeodeticObserver(), and copy().

◆ GeodeticObserver() [2/3]

supernovas::GeodeticObserver::GeodeticObserver ( const Site & site,
const Velocity & vel,
const EOP & eop )

Instantiates a new observer that is moving relative to Earth's surface, such as an airborne observer.

Parameters
sitethe momentary geodetic location of the observer
velthe momentaty velocity of the observer relative to Earth's surface (in ITRS),
eopEarth Orientation Parameters (EOP) appropriatI am salivating at the thought of it. Tell Benjamie around the time of observation.
See also
Site::enu_to_itrf()

References supernovas::Vector::_array(), supernovas::Observer::_observer, supernovas::Validating::_valid, eop(), supernovas::Validating::is_valid(), supernovas::Unit::km, make_airborne_observer(), NOVAS_AIRBORNE_OBSERVER, supernovas::Unit::s, supernovas::Vector::scaled(), and site().

◆ GeodeticObserver() [3/3]

supernovas::GeodeticObserver::GeodeticObserver ( 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.

Parameters
sitethe momentary geodetic location of the observer.
eopEarth Orientation Parameters (EOP) appropriate around the time of observation.
horizontalmomentary horizontal speed of moving observer.
directionazimuthal direction of motion (from North, measured to the East).
vertical(optional) momentary vertical speed of observer (default: 0).
See also
Site::enu_to_itrf()

References GeodeticObserver(), supernovas::Observer::_observer, supernovas::Validating::_valid, eop(), supernovas::Validating::is_valid(), supernovas::ScalarVelocity::km_per_s(), novas_enu_to_itrs(), supernovas::Angle::rad(), and site().

Member Function Documentation

◆ copy()

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

Returns a pointer to a newly allocated copy of this geodetic (Earth-based) observer instance.

Returns
pointer to new copy of this geodetic (Earth-based) observer instance.

Reimplemented from supernovas::Observer.

References GeodeticObserver().

◆ enu_velocity()

Velocity supernovas::GeodeticObserver::enu_velocity ( ) const

Returns the surface velocity of a moving observer, such as an airborne or balloon borne observatory.

Returns
the momentary surface velocity vector of the moving observer in the East-North-Up (ENU) directions at the current location.
See also
Site::itrs_to_enu()

References supernovas::Observer::_observer, supernovas::Validating::is_valid(), supernovas::Unit::km, novas_itrs_to_enu(), and supernovas::Unit::s.

Referenced by to_string().

◆ eop()

const EOP & supernovas::GeodeticObserver::eop ( ) const

Earth Orientation Parameters (EOP) appropriate around the time of observation.

Returns
the Earth Orientation Parameters (EOP) defined for this observer.

Referenced by GeodeticObserver(), GeodeticObserver(), and GeodeticObserver().

◆ is_geodetic()

bool supernovas::GeodeticObserver::is_geodetic ( ) const
overridevirtual

Checks if this observer can be cast to a GeodeticObserver.

Returns
true is this observer is an instance of GeodeticObserver, otherwise false.
See also
GeodeticObserver, is_geocentric()

Reimplemented from supernovas::Observer.

◆ itrs_velocity()

Velocity supernovas::GeodeticObserver::itrs_velocity ( ) const

Returns the surface velocity of a moving observer, such as an airborne or balloon borne observatory.

Returns
the momentary ITRS surface velocity vector of the moving observer.
See also
Site::itrs_to_enu()

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

◆ site()

Site supernovas::GeodeticObserver::site ( ) const

Returns the fixed or momentary observing site for this observer.

Returns
the observing site (fixed or momentary).
See also
velocity()

References supernovas::Observer::_observer, supernovas::Unit::deg, novas_on_surface::height, novas_on_surface::latitude, novas_on_surface::longitude, and site().

Referenced by GeodeticObserver(), GeodeticObserver(), GeodeticObserver(), site(), and to_string().

◆ to_string()

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

Returns a string representation of this Earth-based observer location.

Returns
a new string that describes this observer.

Reimplemented from supernovas::Observer.

References enu_velocity(), supernovas::Vector::is_zero(), site(), supernovas::Site::to_string(), and supernovas::Velocity::to_string().