SuperNOVAS C++ API v1.6
High-precision C/C++ astrometry library
Loading...
Searching...
No Matches
Observing frames

Observing frames are a combination of an observer place, and an specific time of observation. More...

Classes

class  supernovas::Frame
 An observing frame, defined by an observer location and precise time of observation. More...

Enumerations

enum  novas_accuracy { NOVAS_FULL_ACCURACY = 0 , NOVAS_REDUCED_ACCURACY }
 Constants to control the precision of NOVAS nutation calculations. More...

Functions

Frame supernovas::Observer::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.
Frame supernovas::Observer::reduced_accuracy_frame_at (const Time &time) const
 Returns a reduced accuracy observing frame for this observer at the specified time.

Detailed Description

Observing frames are a combination of an observer place, and an specific time of observation.

SuperNOVAS observing frames are not to be confused with coordinate reference frames, even if the two do have aspects in common. Here, a frame provides a topological snapshot of apparent places of all sources on the sky, as well as their geometric locations and velocities in 3D space – without imposing a particular coordinate system on them. So, while a coordinate reference frame (such as ICRF) implies a particular choice of a coordinate system, a SuperNOVAS observing frame is essentially coordinate-system independent in nature.

The power of observing frames is that they make it easy to express locations on the celestial sphere in any coordinate system, and allow to convert apparent places and geometric coordinates between different coordinate systems with superior efficiency.

Enumeration Type Documentation

◆ novas_accuracy

Constants to control the precision of NOVAS nutation calculations.

See also
novas_make_frame()
Enumerator
NOVAS_FULL_ACCURACY 

Use full precision calculations to micro-arcsecond accuracy.

It can be computationally intensive when using the dynamical equator.

NOVAS_REDUCED_ACCURACY 

Calculate with truncated terms.

It can be significantly faster if a few milliarcsecond accuracy is sufficient.

Function Documentation

◆ frame_at()

Frame supernovas::Observer::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.

Full accuracy frames (default) require that a high-precision planet provider is configured prior, to the call.

Parameters
Time of observation and astronomical timescalesAstrometric time of observation
accuracyNOVAS_FULL_ACCYRACY (default) or NOVAS_REDUCED_ACCURACY
Returns
A valid observing frame or else std::nullopt if a valid observing frame could not be created with the accuracy, for example because no high accuracy planetary position provider was specified, or because either this observer or the time itself were invalid.
See also
reduced_accuracy_frame_at()
set_planet_provider_hp(), novas_use_calceph(), novas_use_calceph_planets(), novas_use_cspice()

References frame_at(), and supernovas::Validating::is_valid().

Referenced by frame_at().

◆ reduced_accuracy_frame_at()

Frame supernovas::Observer::reduced_accuracy_frame_at ( const Time & time) const

Returns a reduced accuracy observing frame for this observer at the specified time.

Reduced accuracy frames provide 1 mas accuracy typically, and do not require a planetary or other ephemeris provider to be configured. As such, they offer a simple way for obtaining astrometric positions for catalog and orbital sources at the 1 mas level.

Note, that the returned frame may be invalid, if the this observer or the time argument themselves are invalid.

Parameters
Time of observation and astronomical timescalesAstrometric time of observation
Returns
A reduced accuracy observing frame for the specified time of observation.
See also
frame_at()

References supernovas::Validating::is_valid(), supernovas::Frame::reduced_accuracy(), and reduced_accuracy_frame_at().

Referenced by reduced_accuracy_frame_at().