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 (such as in an aircraft or on balloon). 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 Observercopy () 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, in the local East-North-Up (ENU) directions, of a moving observer, such as an airborne or balloon-borne observatory.
 
EOP eop_at (const Time &time) const
 Returns the Earth Orientation Parameters (EOP), including diurnal corrections for libration and ocrean tides.
 
bool is_geodetic () const override
 Checks if this observer can be cast to a GeodeticObserver.
 
Velocity itrs_velocity () const
 Returns the surface velocity, in the ITRS, of a moving observer, such as an airborne or balloon-borne observatory.
 
const EOPmean_eop () const
 Returns the mean Earth Orientation Parameters (EOP) appropriate around the time of observation.
 
Site site () const
 Returns the fixed or momentary observing site for this observer.
 
GeocentricObserver to_geocentric_at (const Time &time, enum novas_accuracy accuracy=NOVAS_FULL_ACCURACY) const
 Returns an equivalent geocentric observer location and motion at the specified time and accuracy.
 
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.
 
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' stae 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

Position gcrs_position_at (const Time &time, enum novas_accuracy accuracy=NOVAS_FULL_ACCURACY) const override
 Returns the geocentric geometric position vector for this observer, in the GCRS, at the specified time and accuracy.
 
Velocity gcrs_velocity_at (const Time &time, enum novas_accuracy accuracy=NOVAS_FULL_ACCURACY) const override
 Returns the geocentric geometric velocity vector for this observer, in the GCRS, at the specified time and accuracy.
 
- 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;
 

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 Observerundefined ()
 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 location at a geodetic (longitude, latitude, altitude) location at the surface or above it (such as in an aircraft or on balloon).

The observer may be fixed at that location, or else moving with some velocity over the ground.

Since
1.6
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
eopMean (preferably interpolated) Earth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service.
Since
1.6

References supernovas::Validating::_valid, supernovas::Validating::is_valid(), 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),
eopMean (preferably interpolated) Earth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service.
Since
1.6
See also
Site::enu_to_itrf()

References supernovas::Vector::_array(), supernovas::Observer::_observer, supernovas::Validating::_valid, 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.
eopMean (preferably interpolated) Earth Orientation Parameters (EOP) appropriate around the time of observation, such as obtained from the IERS bulletins or data service.
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).
Since
1.6
See also
Site::enu_to_itrf()

References GeodeticObserver(), supernovas::Observer::_observer, supernovas::Validating::_valid, 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.
Since
1.6

Reimplemented from supernovas::Observer.

References GeodeticObserver().

◆ enu_velocity()

Velocity supernovas::GeodeticObserver::enu_velocity ( ) const

Returns the surface velocity, in the local East-North-Up (ENU) directions, 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.
Since
1.6
See also
itrs_velocity(), Site::itrs_to_enu()

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

Referenced by to_string().

◆ eop_at()

EOP supernovas::GeodeticObserver::eop_at ( const Time & time) const

Returns the Earth Orientation Parameters (EOP), including diurnal corrections for libration and ocrean tides.

Parameters
timeAstrometric time for which to apply diurnal corrections
Returns
EOP corrected for libration and ocean tides at the specified time.
Since
1.6
See also
mean_eop()

References supernovas::Time::_novas_timespec(), supernovas::Unit::arcsec, supernovas::Time::dUT1(), supernovas::Time::leap_seconds(), mean_eop(), novas_diurnal_eop_at_time(), supernovas::Angle::rad(), supernovas::Interval::seconds(), supernovas::EOP::xp(), and supernovas::EOP::yp().

Referenced by gcrs_position_at(), and gcrs_velocity_at().

◆ gcrs_position_at()

Position supernovas::GeodeticObserver::gcrs_position_at ( const Time & time,
enum novas_accuracy accuracy = NOVAS_FULL_ACCURACY ) const
overrideprotectedvirtual

Returns the geocentric geometric position vector for this observer, in the GCRS, at the specified time and accuracy.

Parameters
timeAstrometric time of observation
accuracy(optional) NOVAS_FULL_ACCURACY (default) or NOVAS_REDUCED_ACCURACY.
Returns
The ICRS geometric geocentric position vector of this observer at the specified time.
Since
1.6
See also
gcrs_velocity_at()

Reimplemented from supernovas::Observer.

References supernovas::Time::_novas_timespec(), supernovas::Observer::_observer, supernovas::Angle::arcsec(), supernovas::Unit::AU, eop_at(), supernovas::Validating::is_valid(), novas_site_gcrs_posvel(), supernovas::Position::undefined(), supernovas::EOP::xp(), and supernovas::EOP::yp().

Referenced by to_geocentric_at().

◆ gcrs_velocity_at()

Velocity supernovas::GeodeticObserver::gcrs_velocity_at ( const Time & time,
enum novas_accuracy accuracy = NOVAS_FULL_ACCURACY ) const
overrideprotectedvirtual

Returns the geocentric geometric velocity vector for this observer, in the GCRS, at the specified time and accuracy.

Parameters
timeAstrometric time of observation
accuracy(optional) NOVAS_FULL_ACCURACY (default) or NOVAS_REDUCED_ACCURACY.
Returns
The ICRS geometric geocentric velocity vector of this observer at the specified time.
Since
1.6
See also
gcrs_position_at()

Reimplemented from supernovas::Observer.

References supernovas::Time::_novas_timespec(), supernovas::Observer::_observer, supernovas::Angle::arcsec(), supernovas::Unit::AU_per_day, eop_at(), supernovas::Validating::is_valid(), novas_site_gcrs_posvel(), supernovas::Velocity::undefined(), supernovas::EOP::xp(), and supernovas::EOP::yp().

Referenced by to_geocentric_at().

◆ 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.
Since
1.6
See also
GeodeticObserver, is_geocentric()

Reimplemented from supernovas::Observer.

◆ itrs_velocity()

Velocity supernovas::GeodeticObserver::itrs_velocity ( ) const

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

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

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

◆ mean_eop()

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

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

Returns
the mean Earth Orientation Parameters (EOP) defined for this observer, not including libration and ocean tides.
Since
1.6
See also
eop_at()

Referenced by eop_at().

◆ site()

Site supernovas::GeodeticObserver::site ( ) const

Returns the fixed or momentary observing site for this observer.

Returns
the observing site (fixed or momentary).
Since
1.6
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_geocentric_at()

GeocentricObserver supernovas::GeodeticObserver::to_geocentric_at ( const Time & time,
enum novas_accuracy accuracy = NOVAS_FULL_ACCURACY ) const

Returns an equivalent geocentric observer location and motion at the specified time and accuracy.

Parameters
timeAstrometric time at which to convert this geodetic observing location to a geocentric observer place and movement.
accuracy(ooptional) NOVAS_FULL_ACCURACY (default) or NOVAS_REDUCED_ACCURACY.
Returns
The equivalent geocentric observer place and movement at the specified instant of time.
Since
1.6

References gcrs_position_at(), gcrs_velocity_at(), and supernovas::Validating::is_valid().

◆ 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.
Since
1.6

Reimplemented from supernovas::Observer.

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