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

Observing frames are a combination of an observer place, and a 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 a 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. Both are referenced to an observer location and a specific time of observation. But, a coordinate reference frame (such as ICRF) also implies a particular choice of a coordinate system, whereas a SuperNOVAS observing frame does not.

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
An observing frame, which may be invaliud 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. The caller should typically check for validity after the call.
Since
1.6
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.
Since
1.6
See also
frame_at()

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

Referenced by reduced_accuracy_frame_at().