casa
$Rev:20696$
|
A Measure: astronomical direction. More...
#include <MDirection.h>
Public Types | |
enum | Types { J2000, JMEAN, JTRUE, APP, B1950, B1950_VLA, BMEAN, BTRUE, GALACTIC, HADEC, AZEL, AZELSW, AZELGEO, AZELSWGEO, JNAT, ECLIPTIC, MECLIPTIC, TECLIPTIC, SUPERGAL, ITRF, TOPO, ICRS, N_Types, MERCURY, VENUS, MARS, JUPITER, SATURN, URANUS, NEPTUNE, PLUTO, SUN, MOON, COMET, N_Planets, EXTRA, DEFAULT, AZELNE, AZELNEGEO } |
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(); More... | |
enum | GlobalTypes { GRADEC, GHADEC, GAZEL, GLONGLAT, N_GTypes } |
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 ScalarMeasColumn < MDirection > | ScalarColumn |
Measure table Columns (e.g., MDirection::ScalarColumn) | |
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; Default constructor; generates the J2000 pole direction | |
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) | |
virtual | ~MDirection () |
virtual const String & | tellMe () const |
Tell me your type ('Direction') | |
virtual uInt | type () const |
Tell me your reference type (as Register()) N.B. | |
Bool | giveMe (MDirection::Ref &mr, const String &in) |
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 const String * | allTypes (Int &nall, Int &nextra, const uInt *&typ) const |
Get a list of all known reference codes. | |
virtual void | checkTypes () const |
Check if all internal tables of types (both enum and String) are complete and correct. | |
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. | |
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 MDirection | makeMDirection (const String &sourceName) |
Make an MDirection object given the name of a moving source (SUN, etc.) or of a known standard source (CygA, etc.). | |
static const String & | showMe () |
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 MDirection::Types | castType (uInt tp) |
Translate reference code tp. | |
static const String & | showType (MDirection::Types tp) |
static const String & | showType (uInt tp) |
static Bool | getType (MDirection::Types &tp, const String &in) |
Translate string to reference code. | |
static const String * | allMyTypes (Int &nall, Int &nextra, const uInt *&typ) |
static void | checkMyTypes () |
static uInt | myType () |
Get my type (as Register) N.B. | |
Friends | |
class | MeasConvert< MDirection > |
Conversion of data. |
A Measure: astronomical direction.
Public interface
MDirection forms a derived Measure class for a direction in space.
An MDirection can be generated from a MVDirection or a pair of Quantities specifying a longitudinal and a latitudinal angle.
The different reference types that can be used for a Direction are:
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:
The conversion between B1950 and J2000 may have an Epoch. If none given an epoch of 2000.0 is assumed for the conversion, unless an aipsrc variable measures.b1950.d_epoch is given.
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 FK5 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:
they can be obtained with the globalType() method.
See Measures module description for extensive examples.
Definition at line 174 of file MDirection.h.
Definition at line 252 of file MDirection.h.
Measure Convert (i.e.
Reimplemented from casa::Measure.
Definition at line 249 of file MDirection.h.
typedef MCDirection casa::MDirection::MCType |
Measure conversion routines for this class (i.e.
Definition at line 245 of file MDirection.h.
typedef MVDirection casa::MDirection::MVType |
Measure value container for this class (i.e.
Definition at line 243 of file MDirection.h.
typedef MeasRef<MDirection> casa::MDirection::Ref |
Measure table Columns (e.g., MDirection::ScalarColumn)
Definition at line 251 of file MDirection.h.
Global types.
Definition at line 234 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 188 of file MDirection.h.
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 | ||
) |
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 | ) |
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 | ) |
virtual casa::MDirection::~MDirection | ( | ) | [virtual] |
static const String* casa::MDirection::allMyTypes | ( | Int & | nall, |
Int & | nextra, | ||
const uInt *& | typ | ||
) | [static] |
virtual const String* 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 void casa::MDirection::assure | ( | const Measure & | in | ) | [static] |
Assert you are a direction.
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 void casa::MDirection::checkMyTypes | ( | ) | [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.
virtual Measure* casa::MDirection::clone | ( | ) | const [virtual] |
Make a copy.
Implements casa::Measure.
Quantum<Vector<Double> > casa::MDirection::getAngle | ( | ) | const |
Get Measure data.
Quantum<Vector<Double> > casa::MDirection::getAngle | ( | const Unit & | inunit | ) | const |
virtual const String& casa::MDirection::getDefaultType | ( | ) | const [virtual] |
Get the default reference type.
Implements casa::Measure.
virtual String casa::MDirection::getRefString | ( | ) | const [virtual] |
Get the reference type (for records, including codes like R_)
Implements casa::Measure.
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 | ||
) |
static MDirection::GlobalTypes casa::MDirection::globalType | ( | uInt | tp | ) | [static] |
Tell me the global type (like GRADEC) for tp (tp like MDirection::J2000)
virtual Bool casa::MDirection::isModel | ( | ) | const [virtual] |
static MDirection casa::MDirection::makeMDirection | ( | const String & | sourceName | ) | [static] |
Make an MDirection object given the name of a moving source (SUN, etc.) or of a known standard source (CygA, etc.).
static uInt casa::MDirection::myType | ( | ) | [static] |
Get my type (as Register) N.B.
Being static, it does NOT return the type of an instance, i.e. use it as MDirection::myType(), not md.myType().
virtual Bool casa::MDirection::setOffset | ( | const Measure & | in | ) | [virtual] |
Set the offset in the reference (False if non-matching Measure)
Implements casa::Measure.
virtual Bool casa::MDirection::setRefString | ( | const String & | in | ) | [virtual] |
Set the reference type to the specified String.
False if illegal string, reference set to DEFAULT.
Implements casa::Measure.
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.
void casa::MDirection::shift | ( | Double | lng, |
Double | lat, | ||
Bool | trueAngle = False |
||
) |
void casa::MDirection::shift | ( | const MVDirection & | shft, |
Bool | trueAngle = False |
||
) |
void casa::MDirection::shiftAngle | ( | const Quantum< Double > & | off, |
const Quantum< Double > & | pa | ||
) |
Shift over an angle off in the direction pa.
pa is measured from North, in the direction of increasing longitude. See MVDirection for implementation.
void casa::MDirection::shiftAngle | ( | Double | off, |
Double | pa | ||
) |
void casa::MDirection::shiftLatitude | ( | const Quantum< Double > & | lat, |
Bool | trueAngle = False |
||
) |
void casa::MDirection::shiftLatitude | ( | Double | lat, |
Bool | trueAngle = False |
||
) |
void casa::MDirection::shiftLongitude | ( | const Quantity & | lng, |
Bool | trueAngle = False |
||
) |
void casa::MDirection::shiftLongitude | ( | Double | lng, |
Bool | trueAngle = False |
||
) |
static const String& casa::MDirection::showMe | ( | ) | [static] |
static const String& casa::MDirection::showType | ( | MDirection::Types | tp | ) | [static] |
Referenced by casa::QtEditRegionShape::systems().
static const String& casa::MDirection::showType | ( | uInt | tp | ) | [static] |
virtual const String& casa::MDirection::tellMe | ( | ) | const [virtual] |
Tell me your type ('Direction')
Implements casa::Measure.
virtual uInt casa::MDirection::type | ( | ) | const [virtual] |
Tell me your reference type (as Register()) N.B.
as defined in MDirection.cc, it does NOT return the type of an instance, i.e. it just returns Register(static_cast<MDirection *>(0)).
Implements casa::Measure.
typedef casa::MDirection::WHATEVER_SUN_TYPEDEF | ( | MDirection | ) |
Reference enum Types (included originally for gcc 2.95)
friend class MeasConvert< MDirection > [friend] |
Conversion of data.
Definition at line 179 of file MDirection.h.