Loading...
Searching...
No Matches
casacore::Aberration Class Reference
measures package (libcasa_measures) » Measures_module

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.
Aberration & | operator= (const Aberration &other)
| Copy assignment.
| ~Aberration ()
const MVPosition & | operator() (Double epoch)
| Operator () calculates the Aberration direction cosine vector.
const MVPosition & | derivative (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

- Measure class, especially MEpoch
- MeasData class for constants

### 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:

- Aberration::STANDARD (at 1995/09/04 the IAU1980 definition)
- Aberration::NONE
- Aberration::B1950

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

enum casacore::Aberration::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 | ( |  | ) |

static private

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

inline static private

Definition at line 167 of file Aberration.h.

## interval_reg

uInt casacore::Aberration::interval_reg

inline static private

Interpolation interval.

Definition at line 164 of file Aberration.h.

## INTV

Double casacore::Aberration::INTV

static constexpr

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

inline static private

JPL use.

Definition at line 166 of file Aberration.h.

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

- measures/Measures/Aberration.h