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

More...

`#include <ParAngleMachine.h>`

## Public Member Functions

| ParAngleMachine ()
| Create an empty machine.
| ParAngleMachine (const MDirection &in)
| Construct for the specified direction.
| ParAngleMachine (const ParAngleMachine &other)
| Copy constructor (deep copy).
ParAngleMachine & | operator= (const ParAngleMachine &other)
| Copy assignments (deep copy).
| ~ParAngleMachine ()
Quantum< Vector< Double > > | operator() (const Quantum< Vector< Double > > &ep) const
| Return parallactic angles (epoch in days if given as Double).
Quantum< Vector< Double > > | operator() (const Vector< MVEpoch > &ep) const
Quantum< Vector< Double > > | operator() (const Vector< MEpoch > &ep) const
Quantum< Double > | operator() (const Quantum< Double > &ep) const
Quantum< Double > | operator() (const MVEpoch &ep) const
Quantum< Double > | operator() (const MEpoch &ep) const
Double | operator() (const Double &ep) const
Vector< Double > | operator() (const Vector< Double > &ep) const
void | set (const MDirection &in)
| Will have a group of set methods (in direction; reference time; a frame; a reference time valid period.
void | set (const MeasFrame &frame)
void | setInterval (const Double ttime)
| Set the test interval (in days) over which to use simple formula.

## Private Member Functions

Double | posAngle (const Quantum< Double > &ep) const
| Get position angle (Epoch is supposed to be in days if Double).
Vector< Double > | posAngle (const Quantum< Vector< Double > > &ep) const
Double | posAngle (const Double &ep) const
Vector< Double > | posAngle (const Vector< Double > &ep) const
void | init ()
| Initialise machinery.
void | initConv () const
| Initialise conversion.
Double | calcAngle (const Double ep) const
| Calculate position angle.

## Private Attributes

MDirection * | indir_p
| Input direction.
MDirection::Convert * | convdir_p
| Conversion engine.
MeasFrame * | frame_p
| Measure frame.
MVDirection | zenith_p
| Converted zenith.
MVDirection | mvdir_p
| Intermediate conversion result.
Double | lastep_p
| Time of last full solution (in days).
Double | defintvl_p
| Default time interval over which to do simple solution (days).
Double | intvl_p
| Time interval over which to do simple solution (days).
Double | UTfactor_p
| Calculation cache.
Double | longoff_p
Double | longdiff_p
Double | slat1_p
Double | clat1_p
Double | slat2_p
Double | clat2_p

## Detailed Description

Converts a direction into parallactic angle

### Intended use:

Public interface

### Review Status

Reviewed By:
  Mark Wieringa
Date Reviewed:
  2001/10/06
Test programs:
  tParAngleMachine

### Prerequisite

- MDirection class

### Etymology

From Parallactic Angle and machinery

### Synopsis

The construction of a ParAngleMachine class object creates a machine that can create parallactic angles from a series of time epochs given.

The machinery needs an input MDirection to specify the input coordinates reference direction and coordinate system. The parallactic (vertical) angle will be calculated as the angle between the vertical in the local coordinate system (Az, El) through the given direction and the pole of the J2000 coordinate system.
Tip: To calculate the parallactic angle for another coordinate system pole, add the positionAngle between the J2000 system and the pole in the other coordinate system;

The machinery also needs a MeasFrame, with a position on Earth and a reference epoch. The reference time is necessary to have an epoch type.

The actual calculation of the parallactic angles is done by the operator() accepting a time or a list of times in various formats.

The machine calculates the paralaactic angle for the first time given to the machine. For subsequent times that are within a check interval, the angle is calculated assuming that only the hour angle changes within that interval. For moving objects the test interval is always forced to zero. Tests show that the machine with a zero interval is about 8 times faster than using brute force. Having an interval of an hour improves that by another factor of 4.
Tip: If the parallactic angles for a series of directions have to be calculated, it is best to have separate machines for each such field;

### Example

### Motivation

To speed up parallactic angle calculations

### To Do

Definition at line 109 of file ParAngleMachine.h.

## Constructor & Destructor Documentation

## ParAngleMachine() [1/3]

casacore::ParAngleMachine::ParAngleMachine | ( |  | ) |

Create an empty machine.

It can only be used after appropriate 'set' methods

Referenced by operator=(), and ParAngleMachine().

## ParAngleMachine() [2/3]

casacore::ParAngleMachine::ParAngleMachine | ( | const MDirection & | in | ) |

Construct for the specified direction.

## ParAngleMachine() [3/3]

casacore::ParAngleMachine::ParAngleMachine | ( | const ParAngleMachine & | other | ) |

Copy constructor (deep copy).

References ParAngleMachine().

## ~ParAngleMachine()

casacore::ParAngleMachine::~ParAngleMachine | ( |  | ) |

## Member Function Documentation

## calcAngle()

Double casacore::ParAngleMachine::calcAngle | ( | const Double | ep | ) | const

private

Calculate position angle.

## init()

void casacore::ParAngleMachine::init | ( |  | ) |

private

Initialise machinery.

## initConv()

void casacore::ParAngleMachine::initConv | ( |  | ) | const

private

Initialise conversion.

## operator()() [1/8]

Double casacore::ParAngleMachine::operator() | ( | const Double & | ep | ) | const

## operator()() [2/8]

Quantum< Double > casacore::ParAngleMachine::operator() | ( | const MEpoch & | ep | ) | const

## operator()() [3/8]

Quantum< Double > casacore::ParAngleMachine::operator() | ( | const MVEpoch & | ep | ) | const

## operator()() [4/8]

Quantum< Double > casacore::ParAngleMachine::operator() | ( | const Quantum< Double > & | ep | ) | const

## operator()() [5/8]

Quantum< Vector< Double > > casacore::ParAngleMachine::operator() | ( | const Quantum< Vector< Double > > & | ep | ) | const

Return parallactic angles (epoch in days if given as Double).

### Thrown Exceptions

- AipsError if no frame or a frame without an Epoch (for type) or
  Position.

## operator()() [6/8]

Vector< Double > casacore::ParAngleMachine::operator() | ( | const Vector< Double > & | ep | ) | const

## operator()() [7/8]

Quantum< Vector< Double > > casacore::ParAngleMachine::operator() | ( | const Vector< MEpoch > & | ep | ) | const

## operator()() [8/8]

Quantum< Vector< Double > > casacore::ParAngleMachine::operator() | ( | const Vector< MVEpoch > & | ep | ) | const

## operator=()

ParAngleMachine & casacore::ParAngleMachine::operator= | ( | const ParAngleMachine & | other | ) |

Copy assignments (deep copy).

References ParAngleMachine().

## posAngle() [1/4]

Double casacore::ParAngleMachine::posAngle | ( | const Double & | ep | ) | const

private

## posAngle() [2/4]

Double casacore::ParAngleMachine::posAngle | ( | const Quantum< Double > & | ep | ) | const

private

Get position angle (Epoch is supposed to be in days if Double).

### Thrown Exceptions

- AipsError if no frame or a frame without an Epoch (for type) or Position.

## posAngle() [3/4]

Vector< Double > casacore::ParAngleMachine::posAngle | ( | const Quantum< Vector< Double > > & | ep | ) | const

private

## posAngle() [4/4]

Vector< Double > casacore::ParAngleMachine::posAngle | ( | const Vector< Double > & | ep | ) | const

private

## set() [1/2]

void casacore::ParAngleMachine::set | ( | const MDirection & | in | ) |

Will have a group of set methods (in direction; reference time; a frame; a reference time valid period.

## set() [2/2]

void casacore::ParAngleMachine::set | ( | const MeasFrame & | frame | ) |

## setInterval()

void casacore::ParAngleMachine::setInterval | ( | const Double | ttime | ) |

Set the test interval (in days) over which to use simple formula.

## Member Data Documentation

## clat1_p

Double casacore::ParAngleMachine::clat1_p

mutable private

Definition at line 178 of file ParAngleMachine.h.

## clat2_p

Double casacore::ParAngleMachine::clat2_p

mutable private

Definition at line 180 of file ParAngleMachine.h.

## convdir_p

MDirection::Convert* casacore::ParAngleMachine::convdir_p

mutable private

Conversion engine.

Definition at line 159 of file ParAngleMachine.h.

## defintvl_p

Double casacore::ParAngleMachine::defintvl_p

mutable private

Default time interval over which to do simple solution (days).

Definition at line 169 of file ParAngleMachine.h.

## frame_p

MeasFrame* casacore::ParAngleMachine::frame_p

private

Measure frame.

Definition at line 161 of file ParAngleMachine.h.

## indir_p

MDirection* casacore::ParAngleMachine::indir_p

private

Input direction.

Definition at line 157 of file ParAngleMachine.h.

## intvl_p

Double casacore::ParAngleMachine::intvl_p

mutable private

Time interval over which to do simple solution (days).

Definition at line 171 of file ParAngleMachine.h.

## lastep_p

Double casacore::ParAngleMachine::lastep_p

mutable private

Time of last full solution (in days).

Definition at line 167 of file ParAngleMachine.h.

## longdiff_p

Double casacore::ParAngleMachine::longdiff_p

mutable private

Definition at line 176 of file ParAngleMachine.h.

## longoff_p

Double casacore::ParAngleMachine::longoff_p

mutable private

Definition at line 175 of file ParAngleMachine.h.

## mvdir_p

MVDirection casacore::ParAngleMachine::mvdir_p

mutable private

Intermediate conversion result.

Definition at line 165 of file ParAngleMachine.h.

## slat1_p

Double casacore::ParAngleMachine::slat1_p

mutable private

Definition at line 177 of file ParAngleMachine.h.

## slat2_p

Double casacore::ParAngleMachine::slat2_p

mutable private

Definition at line 179 of file ParAngleMachine.h.

## UTfactor_p

Double casacore::ParAngleMachine::UTfactor_p

mutable private

Calculation cache.

Definition at line 174 of file ParAngleMachine.h.

## zenith_p

MVDirection casacore::ParAngleMachine::zenith_p

mutable private

Converted zenith.

Definition at line 163 of file ParAngleMachine.h.

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

- measures/Measures/ParAngleMachine.h