#include <MDirection.h>
Inheritance diagram for casa::MDirection:


Conversion between the different types is done with the standard MeasConvert class (MDirection::Convert in this case).
For some conversion additional MeasFrame information is essential. The following list specifies which information is needed if the conversion goes to or from the different types:
Conversions are based on the IAU system of precession and nutation (with IERS corrections if available); and on series expansions of the DE200 planetary ephemeris (J system; for B sytem older expansions) for the aberration and the solar position .
The HADEC position has corrections for polar motion and the equation of equinoxes; the AZEL will include Earth tides and refraction at a later stage.
Note that conversion between B1950 and J2000 can only be approximate, and is based on FK4 to FK% conversion. The best conversion is to convert first to an apparent position at the time of observation, and convert from there to the other standard (the correct route will be followed).
Another problem can arise if the source has proper motion and/or radial velocities. These should be taken into account. An MCatalog class will maybe take care of that. Warning: The offset that can be specified in the MDirection::Ref is an MDIrection offset, and can not be used for specifying angular offsets. shift() methods are available for these cases.
To aid in formatting of the angles without having to check all difference referencetypes, the following global types are provided:
See Measures module description for extensive examples.
Definition at line 176 of file MDirection.h.
| virtual const String & | tellMe () const |
| Tell me your type ('Direction'). | |
| static const String & | showMe () |
| Bool | giveMe (MDirection::Ref &mr, const String &in) |
| static Bool | getType (MDirection::Types &tp, const String &in) |
| Translate string to reference code. | |
| virtual const String *const | allTypes (Int &nall, Int &nextra, const uInt *&typ) const |
| Get a list of all known reference codes. | |
| static const String *const | allMyTypes (Int &nall, Int &nextra, const uInt *&typ) |
| virtual void | checkTypes () const |
| Check if all internal tables of types (both enum and String) are complete and correct. | |
| static void | checkMyTypes () |
Public Types | |
| enum | Types |
| Types of known MDirections Warning: The order defines the order in the translation matrix FromTo in the getConvert routine. More... | |
| enum | GlobalTypes |
| Global types. More... | |
| typedef MVDirection | MVType |
| Measure value container for this class (i.e. | |
| typedef MCDirection | MCType |
| Measure conversion routines for this class (i.e. | |
| typedef MeasRef< MDirection > | Ref |
| Measure reference (i.e. | |
| typedef MeasConvert< MDirection > | Convert |
| Measure Convert (i.e. | |
| typedef ROScalarMeasColumn< MDirection > | ROScalarColumn |
| Measure table Columns (e.g., MDirection::ROScalarColumn). | |
| typedef ScalarMeasColumn< MDirection > | ScalarColumn |
| typedef ROArrayMeasColumn< MDirection > | ROArrayColumn |
| typedef ArrayMeasColumn< MDirection > | ArrayColumn |
Public Member Functions | |
| typedef | WHATEVER_SUN_TYPEDEF (MDirection) Types Types |
| Reference enum Types (included originally for gcc 2.95). | |
| MDirection () | |
Tip: In the following constructors and other functions, all MeasRef can be replaced with simple Measure::TYPE where no offsets or frames are needed in the reference. | |
| virtual | ~MDirection () |
| virtual uInt | type () const |
| Tell me your reference type (as Register()). | |
| virtual Bool | setOffset (const Measure &in) |
| Set the offset in the reference (False if non-matching Measure). | |
| virtual Bool | setRefString (const String &in) |
| Set the reference type to the specified String. | |
| virtual const String & | getDefaultType () const |
| Get the default reference type. | |
| virtual String | getRefString () const |
| Get the reference type (for records, including codes like R_). | |
| virtual Bool | isModel () const |
| Tell me if you are a pure model (e.g. | |
| MDirection (const MVDirection &dt) | |
| Create from data and reference. | |
| MDirection (const MVDirection &dt, const MDirection::Ref &rf) | |
| MDirection (const MVDirection &dt, MDirection::Types rf) | |
| MDirection (const Quantity &dt, const Quantity &dt1) | |
| MDirection (const Quantity &dt, const Quantity &dt1, const MDirection::Ref &rf) | |
| MDirection (const Quantity &dt, const Quantity &dt1, MDirection::Types rf) | |
| MDirection (const Quantum< Vector< Double > > &dt) | |
| MDirection (const Quantum< Vector< Double > > &dt, const MDirection::Ref &rf) | |
| MDirection (const Quantum< Vector< Double > > &dt, MDirection::Types rf) | |
| MDirection (const Measure *dt) | |
| MDirection (const MeasValue *dt) | |
| MDirection (const MDirection::Ref &rf) | |
| MDirection (MDirection::Types rf) | |
| Quantum< Vector< Double > > | getAngle () const |
| Get Measure data. | |
| Quantum< Vector< Double > > | getAngle (const Unit &inunit) const |
| void | shift (const Quantum< Double > &lng, const Quantum< Double > &lat, Bool trueAngle=False) |
| Shift the direction in longitude (radians if Double) and/or latitude. | |
| void | shift (Double lng, Double lat, Bool trueAngle=False) |
| void | shiftLongitude (const Quantity &lng, Bool trueAngle=False) |
| void | shiftLongitude (Double lng, Bool trueAngle=False) |
| void | shiftLatitude (const Quantum< Double > &lat, Bool trueAngle=False) |
| void | shiftLatitude (Double lat, Bool trueAngle=False) |
| void | shift (const MVDirection &shft, Bool trueAngle=False) |
| void | shiftAngle (const Quantum< Double > &off, const Quantum< Double > &pa) |
| Shift over an angle off in the direction pa. | |
| void | shiftAngle (Double off, Double pa) |
| virtual Measure * | clone () const |
| Make a copy. | |
Static Public Member Functions | |
| static void | assure (const Measure &in) |
| Assert you are a direction. | |
| static MDirection::GlobalTypes | globalType (uInt tp) |
| Tell me the global type (like GRADEC) for tp (tp like MDirection::J2000). | |
| static uInt | myType () |
| Get my type (as Register). | |
| static MDirection::Types | castType (uInt tp) |
| Translate reference code tp. | |
| static const String & | showType (MDirection::Types tp) |
| static const String & | showType (uInt tp) |
Friends | |
| class | MeasConvert< MDirection > |
| Conversion of data. | |
| typedef MVDirection casa::MDirection::MVType |
Measure value container for this class (i.e.
Definition at line 245 of file MDirection.h.
| typedef MCDirection casa::MDirection::MCType |
Measure conversion routines for this class (i.e.
Definition at line 247 of file MDirection.h.
| typedef MeasRef<MDirection> casa::MDirection::Ref |
Measure Convert (i.e.
Reimplemented from casa::Measure.
Definition at line 251 of file MDirection.h.
Measure table Columns (e.g., MDirection::ROScalarColumn).
Definition at line 253 of file MDirection.h.
Definition at line 254 of file MDirection.h.
Definition at line 255 of file MDirection.h.
Definition at line 256 of file MDirection.h.
Types of known MDirections Warning: The order defines the order in the translation matrix FromTo in the getConvert routine.
Do not change the order without changing the array. Additions should be made before N_types, and an additional row and column should be coded in FromTo, and in showType().
Reimplemented from casa::Measure.
Definition at line 190 of file MDirection.h.
| casa::MDirection::MDirection | ( | ) |
Tip: In the following constructors and other functions, all MeasRef can be replaced with simple Measure::TYPE where no offsets or frames are needed in the reference.
Default constructor; generates the J2000 pole direction
| casa::MDirection::MDirection | ( | const MVDirection & | dt | ) |
Create from data and reference.
| casa::MDirection::MDirection | ( | const MVDirection & | dt, | |
| const MDirection::Ref & | rf | |||
| ) |
| casa::MDirection::MDirection | ( | const MVDirection & | dt, | |
| MDirection::Types | rf | |||
| ) |
| casa::MDirection::MDirection | ( | const Quantity & | dt, | |
| const Quantity & | dt1, | |||
| const MDirection::Ref & | rf | |||
| ) |
| casa::MDirection::MDirection | ( | const Quantity & | dt, | |
| const Quantity & | dt1, | |||
| MDirection::Types | rf | |||
| ) |
| casa::MDirection::MDirection | ( | const Quantum< Vector< Double > > & | dt, | |
| const MDirection::Ref & | rf | |||
| ) |
| casa::MDirection::MDirection | ( | const Quantum< Vector< Double > > & | dt, | |
| MDirection::Types | rf | |||
| ) |
| casa::MDirection::MDirection | ( | const Measure * | dt | ) |
| casa::MDirection::MDirection | ( | const MeasValue * | dt | ) |
| casa::MDirection::MDirection | ( | const MDirection::Ref & | rf | ) |
| casa::MDirection::MDirection | ( | MDirection::Types | rf | ) |
| virtual casa::MDirection::~MDirection | ( | ) | [virtual] |
| typedef casa::MDirection::WHATEVER_SUN_TYPEDEF | ( | MDirection | ) |
Reference enum Types (included originally for gcc 2.95).
| virtual const String& casa::MDirection::tellMe | ( | ) | const [virtual] |
| static const String& casa::MDirection::showMe | ( | ) | [static] |
| virtual uInt casa::MDirection::type | ( | ) | const [virtual] |
| static void casa::MDirection::assure | ( | const Measure & | in | ) | [static] |
Assert you are a direction.
| static MDirection::GlobalTypes casa::MDirection::globalType | ( | uInt | tp | ) | [static] |
Tell me the global type (like GRADEC) for tp (tp like MDirection::J2000).
| static MDirection::Types casa::MDirection::castType | ( | uInt | tp | ) | [static] |
Translate reference code tp.
The uInt version has a check for valid codes (i.e. it is a safe cast).
| static const String& casa::MDirection::showType | ( | MDirection::Types | tp | ) | [static] |
| static Bool casa::MDirection::getType | ( | MDirection::Types & | tp, | |
| const String & | in | |||
| ) | [static] |
Translate string to reference code.
| Bool casa::MDirection::giveMe | ( | MDirection::Ref & | mr, | |
| const String & | in | |||
| ) |
Set the reference type to the specified String.
False if illegal string, reference set to DEFAULT.
Implements casa::Measure.
| virtual const String& casa::MDirection::getDefaultType | ( | ) | const [virtual] |
| virtual const String* const casa::MDirection::allTypes | ( | Int & | nall, | |
| Int & | nextra, | |||
| const uInt *& | typ | |||
| ) | const [virtual] |
Get a list of all known reference codes.
nall returns the number in list, nextra the number of specials (like planets) that should be at end of list). typ returns the list of corresponding types.
Reimplemented from casa::Measure.
| static const String* const casa::MDirection::allMyTypes | ( | Int & | nall, | |
| Int & | nextra, | |||
| const uInt *& | typ | |||
| ) | [static] |
| virtual void casa::MDirection::checkTypes | ( | ) | const [virtual] |
Check if all internal tables of types (both enum and String) are complete and correct.
This function is called automatically if and when necessary.
Implements casa::Measure.
| static void casa::MDirection::checkMyTypes | ( | ) | [static] |
| virtual String casa::MDirection::getRefString | ( | ) | const [virtual] |
| static uInt casa::MDirection::myType | ( | ) | [static] |
Get my type (as Register).
| virtual Bool casa::MDirection::isModel | ( | ) | const [virtual] |
| void casa::MDirection::shift | ( | const Quantum< Double > & | lng, | |
| const Quantum< Double > & | lat, | |||
| Bool | trueAngle = False | |||
| ) |
Shift the direction in longitude (radians if Double) and/or latitude.
If the trueAngle switch is True, the longitude shift will be in angular units perpendicular to the direction to pole, along a great circle. See MVDirection for more details.
Referenced by casa::SimField::SimField().
| void casa::MDirection::shift | ( | const MVDirection & | shft, | |
| Bool | trueAngle = False | |||
| ) |
Shift over an angle off in the direction pa.
pa is measured from North, in the direction of increasing longitude. See MVDirection for implementation.
| virtual Measure* casa::MDirection::clone | ( | ) | const [virtual] |
friend class MeasConvert< MDirection > [friend] |
1.5.1