casacore
Loading...
Searching...
No Matches
casacore::Aberration Class Reference

More...

#include <Aberration.h>

Public Types

enum  AberrationTypes {
  STANDARD ,
  NONE ,
  B1950
}
 Types of known Aberration calculations (at 1995/09/04 STANDARD == IAU1980). More...

Public Member Functions

 Aberration ()
 Default constructor, generates default J2000 Aberration identification.
 Aberration (const Aberration &other)
 Copy constructor.
 Aberration (AberrationTypes type)
 Constructor with type.
Aberrationoperator= (const Aberration &other)
 Copy assignment.
 ~Aberration ()
const MVPositionoperator() (Double epoch)
 Operator () calculates the Aberration direction cosine vector.
const MVPositionderivative (Double epoch)
 Return derivative of Aberration (d-1) w.r.t.
void init (AberrationTypes type=Aberration::STANDARD)
 Re-initialise Aberration object.
void refresh ()
 Refresh calculations.

Static Public Attributes

static constexpr Double INTV
 Interval to be used for linear approximation (in days).

Private Member Functions

void copy (const Aberration &other)
 Copy.
void calcAber (Double t)
 Calculate Aberration angles for time t.

Static Private Member Functions

static void initialize ()
 Fill an empty copy.

Private Attributes

AberrationTypes method
 Method to be used.
Double checkEpoch
 Check epoch for linear approximation.
Double aval [3]
 Cached calculated angles.
Double dval [3]
 Cached derivatives.
Int lres
 To be able to use referenced results in simple calculations, a circular result buffer is used.
MVPosition result [4]
 Last calculation.

Static Private Attributes

static uInt interval_reg
 Interpolation interval.
static uInt usejpl_reg
 JPL use.
static std::once_flag initialize_once_flag

Detailed Description

Aberration class and calculations

Intended use:

Public interface

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tMeasMath

Prerequisite

Etymology

Aberration

Synopsis

Aberration forms the class for Aberration calculations. It is a simple container with the selected method, and the mean epoch.
The method is selected from one of the following:

Epochs can be specified as the MJD (with defined constants MeasData::MJD2000 and MeasData::MJDB1950 or the actual MJD), leading to the following constructors:

  • Aberration() default; assuming JD2000, IAU1980
  • Aberration(method) assuming the correct default epoch of JD2000 or B1950
  • Aberration(method,epoch) with epoch Double(MJD).

Actual Aberration for a certain Epoch is calculated by the () operator as Aberration(epoch), with epoch Double MJD, values returned as an MVPosition.
The derivative (d-1) can be obtained as well by derivative(epoch).
The following details can be set with the Aipsrc mechanism:

  • measures.aberration.d_interval: approximation interval as time (fraction of days is default unit) over which linear approximation is used
  • measures.aberration.b_usejpl: use the JPL database values for IAU1980. Else analytical expression, relative error about 10-9 Note that the JPL database to be used can be set with measures.jpl.ephemeris (at the moment of writing DE200 (default), or DE405). If using the JPL database, the d_interval (and the output of derivative()) are irrelevant.

Example

Motivation

To calculate the Aberration angles. An alternate route could have been a global function, but having a simple container allows caching of some calculations for speed.
Using MJD (JD-2400000.5) rather than JD is for precision reasons.

Definition at line 107 of file Aberration.h.

Member Enumeration Documentation

◆ AberrationTypes

Types of known Aberration calculations (at 1995/09/04 STANDARD == IAU1980).

Enumerator
STANDARD 
NONE 
B1950 

Definition at line 116 of file Aberration.h.

Constructor & Destructor Documentation

◆ Aberration() [1/3]

casacore::Aberration::Aberration ( )

Default constructor, generates default J2000 Aberration identification.

Referenced by Aberration(), copy(), and operator=().

◆ Aberration() [2/3]

casacore::Aberration::Aberration ( const Aberration & other)

Copy constructor.

References Aberration().

◆ Aberration() [3/3]

casacore::Aberration::Aberration ( AberrationTypes type)

Constructor with type.

◆ ~Aberration()

casacore::Aberration::~Aberration ( )

Member Function Documentation

◆ calcAber()

void casacore::Aberration::calcAber ( Double t)
private

Calculate Aberration angles for time t.

◆ copy()

void casacore::Aberration::copy ( const Aberration & other)
private

Copy.

References Aberration().

◆ derivative()

const MVPosition & casacore::Aberration::derivative ( Double epoch)

Return derivative of Aberration (d-1) w.r.t.

time

◆ init()

void casacore::Aberration::init ( AberrationTypes type = Aberration::STANDARD)

Re-initialise Aberration object.

References STANDARD.

◆ initialize()

void casacore::Aberration::initialize ( )
staticprivate

Fill an empty copy.

◆ operator()()

const MVPosition & casacore::Aberration::operator() ( Double epoch)

Operator () calculates the Aberration direction cosine vector.

◆ operator=()

Aberration & casacore::Aberration::operator= ( const Aberration & other)

Copy assignment.

References Aberration().

◆ refresh()

void casacore::Aberration::refresh ( )

Refresh calculations.

Member Data Documentation

◆ aval

Double casacore::Aberration::aval[3]
private

Cached calculated angles.

Definition at line 154 of file Aberration.h.

◆ checkEpoch

Double casacore::Aberration::checkEpoch
private

Check epoch for linear approximation.

Definition at line 152 of file Aberration.h.

◆ dval

Double casacore::Aberration::dval[3]
private

Cached derivatives.

Definition at line 156 of file Aberration.h.

◆ initialize_once_flag

std::once_flag casacore::Aberration::initialize_once_flag
inlinestaticprivate

Definition at line 167 of file Aberration.h.

◆ interval_reg

uInt casacore::Aberration::interval_reg
inlinestaticprivate

Interpolation interval.

Definition at line 164 of file Aberration.h.

◆ INTV

Double casacore::Aberration::INTV
staticconstexpr

Interval to be used for linear approximation (in days).

Definition at line 112 of file Aberration.h.

◆ lres

Int casacore::Aberration::lres
private

To be able to use referenced results in simple calculations, a circular result buffer is used.

Current buffer pointer.

Definition at line 160 of file Aberration.h.

◆ method

AberrationTypes casacore::Aberration::method
private

Method to be used.

Definition at line 150 of file Aberration.h.

◆ result

MVPosition casacore::Aberration::result[4]
private

Last calculation.

Definition at line 162 of file Aberration.h.

◆ usejpl_reg

uInt casacore::Aberration::usejpl_reg
inlinestaticprivate

JPL use.

Definition at line 166 of file Aberration.h.


The documentation for this class was generated from the following file: