casacore
|
Converts a direction into parallactic angle. More...
#include <ParAngleMachine.h>
Public Member Functions | |
ParAngleMachine () | |
Create an empty machine. More... | |
ParAngleMachine (const MDirection &in) | |
Construct for the specified direction. More... | |
ParAngleMachine (const ParAngleMachine &other) | |
Copy constructor (deep copy) More... | |
ParAngleMachine & | operator= (const ParAngleMachine &other) |
Copy assignments (deep copy) More... | |
~ParAngleMachine () | |
Quantum< Vector< Double > > | operator() (const Quantum< Vector< Double > > &ep) const |
Return parallactic angles (epoch in days if given as Double) More... | |
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. More... | |
void | set (const MeasFrame &frame) |
void | setInterval (const Double ttime) |
Set the test interval (in days) over which to use simple formula. More... | |
Private Member Functions | |
Double | posAngle (const Quantum< Double > &ep) const |
Get position angle (Epoch is supposed to be in days if Double) More... | |
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. More... | |
void | initConv () const |
Initialise conversion. More... | |
Double | calcAngle (const Double ep) const |
Calculate position angle. More... | |
Private Attributes | |
MDirection * | indir_p |
Input direction. More... | |
MDirection::Convert * | convdir_p |
Conversion engine. More... | |
MeasFrame * | frame_p |
Measure frame. More... | |
MVDirection | zenith_p |
Converted zenith. More... | |
MVDirection | mvdir_p |
Intermediate conversion result. More... | |
Double | lastep_p |
Time of last full solution (in days) More... | |
Double | defintvl_p |
Default time interval over which to do simple solution (days) More... | |
Double | intvl_p |
Time interval over which to do simple solution (days) More... | |
Double | UTfactor_p |
Calculation cache. More... | |
Double | longoff_p |
Double | longdiff_p |
Double | slat1_p |
Double | clat1_p |
Double | slat2_p |
Double | clat2_p |
Converts a direction into parallactic angle.
Public interface
From Parallactic Angle and machinery
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;
To speed up parallactic angle calculations
Definition at line 111 of file ParAngleMachine.h.
casacore::ParAngleMachine::ParAngleMachine | ( | ) |
Create an empty machine.
It can only be used after appropriate 'set' methods
casacore::ParAngleMachine::ParAngleMachine | ( | const MDirection & | in | ) |
Construct for the specified direction.
casacore::ParAngleMachine::ParAngleMachine | ( | const ParAngleMachine & | other | ) |
Copy constructor (deep copy)
casacore::ParAngleMachine::~ParAngleMachine | ( | ) |
Calculate position angle.
|
private |
Initialise machinery.
|
private |
Initialise conversion.
Quantum<Vector<Double> > casacore::ParAngleMachine::operator() | ( | const Quantum< Vector< Double > > & | ep | ) | const |
Return parallactic angles (epoch in days if given as Double)
Quantum<Vector<Double> > casacore::ParAngleMachine::operator() | ( | const Vector< MVEpoch > & | ep | ) | const |
ParAngleMachine& casacore::ParAngleMachine::operator= | ( | const ParAngleMachine & | other | ) |
Copy assignments (deep copy)
Get position angle (Epoch is supposed to be in days if Double)
|
private |
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.
void casacore::ParAngleMachine::set | ( | const MeasFrame & | frame | ) |
void casacore::ParAngleMachine::setInterval | ( | const Double | ttime | ) |
Set the test interval (in days) over which to use simple formula.
|
mutableprivate |
Definition at line 180 of file ParAngleMachine.h.
|
mutableprivate |
Definition at line 182 of file ParAngleMachine.h.
|
mutableprivate |
Conversion engine.
Definition at line 161 of file ParAngleMachine.h.
|
mutableprivate |
Default time interval over which to do simple solution (days)
Definition at line 171 of file ParAngleMachine.h.
|
private |
Measure frame.
Definition at line 163 of file ParAngleMachine.h.
|
private |
Input direction.
Definition at line 159 of file ParAngleMachine.h.
|
mutableprivate |
Time interval over which to do simple solution (days)
Definition at line 173 of file ParAngleMachine.h.
|
mutableprivate |
Time of last full solution (in days)
Definition at line 169 of file ParAngleMachine.h.
|
mutableprivate |
Definition at line 178 of file ParAngleMachine.h.
|
mutableprivate |
Definition at line 177 of file ParAngleMachine.h.
|
mutableprivate |
Intermediate conversion result.
Definition at line 167 of file ParAngleMachine.h.
|
mutableprivate |
Definition at line 179 of file ParAngleMachine.h.
|
mutableprivate |
Definition at line 181 of file ParAngleMachine.h.
|
mutableprivate |
Calculation cache.
Definition at line 176 of file ParAngleMachine.h.
|
mutableprivate |
Converted zenith.
Definition at line 165 of file ParAngleMachine.h.