casacore
|
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. More... | |
typedef MCDirection | MCType |
Measure conversion routines for this class (i.e. More... | |
typedef MeasRef< MDirection > | Ref |
Measure reference (i.e. More... | |
typedef MeasConvert< MDirection > | Convert |
Measure Convert (i.e. More... | |
typedef ScalarMeasColumn < MDirection > | ScalarColumn |
Measure table Columns (e.g., MDirection::ScalarColumn) More... | |
typedef ArrayMeasColumn < MDirection > | ArrayColumn |
Public Types inherited from casacore::Measure | |
enum | Types { N_Types, DEFAULT } |
Each derived class should have a Types enumeration, specifying the recognised frame types. More... | |
typedef void * | Convert |
Each Measure should have typedefs of the form: More... | |
Public Member Functions | |
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 More... | |
MDirection (const MVDirection &dt) | |
Create from data and reference. More... | |
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') More... | |
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) More... | |
virtual Bool | setRefString (const String &in) |
Set the reference type to the specified String. More... | |
virtual const String & | getDefaultType () const |
Get the default reference type. More... | |
virtual const String * | allTypes (Int &nall, Int &nextra, const uInt *&typ) const |
Get a list of all known reference codes. More... | |
virtual void | checkTypes () const |
Check if all internal tables of types (both enum and String) are complete and correct. More... | |
virtual String | getRefString () const |
Get the reference type (for records, including codes like R_) More... | |
virtual Bool | isModel () const |
Tell me if you are a pure model (e.g. More... | |
Quantum< Vector< Double > > | getAngle () const |
Get Measure data. More... | |
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. More... | |
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. More... | |
void | shiftAngle (Double off, Double pa) |
virtual Measure * | clone () const |
Make a copy. More... | |
String | toString () const |
Convert to a String in astronomer-friendly format based on reference frame. More... | |
Public Member Functions inherited from casacore::MeasBase< MVDirection, MeasRef< MDirection > > | |
MeasBase () | |
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; For reasons of compiler limitations the formal arguments had to be specified as uInt rather than the Measure enums that should be used as actual arguments;Default constructor More... | |
MeasBase (const MeasBase< MVDirection, MeasRef< MDirection > > &other) | |
Copy constructor. More... | |
MeasBase (const MVDirection &dt, const MeasRef< MDirection > &rf) | |
Create from data and reference. More... | |
MeasBase (const MVDirection &dt, uInt rf) | |
MeasBase (const Quantity &dt, const MeasRef< MDirection > &rf) | |
MeasBase (const Quantity &dt, uInt rf) | |
MeasBase (const Measure *dt) | |
MeasBase (const MeasRef< MDirection > &rf) | |
MeasBase (const uInt rf) | |
MeasBase< MVDirection, MeasRef < MDirection > > & | operator= (const MeasBase< MVDirection, MeasRef< MDirection > > &other) |
Copy assignment. More... | |
virtual | ~MeasBase () |
virtual Bool | areYou (const String &tp) const |
Check the type of derived entity. More... | |
virtual void | assured (const String &tp) const |
Assert that we are the correct type. More... | |
void | set (const MVDirection &dt) |
Refill the specified entities. More... | |
void | set (const MeasRef< MDirection > &rf) |
void | set (const MVDirection &dt, const MeasRef< MDirection > &rf) |
void | set (const Unit &inunit) |
virtual void | set (const MeasValue &dt) |
Each Measure should have the following set functions (with appropiate MVs and Ref): More... | |
virtual Bool | putValue (const Vector< Quantum< Double > > &in) |
MeasRef< MDirection > | getRef () const |
Get reference. More... | |
const MVDirection & | getValue () const |
Get Measure data. More... | |
const Unit & | getUnit () const |
Get Unit. More... | |
virtual MRBase * | getRefPtr () const |
Get reference pointer. More... | |
virtual const MeasValue * | getData () const |
Get pointer to data. More... | |
virtual void | print (std::ostream &os) const |
Print a Measure. More... | |
Public Member Functions inherited from casacore::Measure | |
virtual | ~Measure () |
Destructor. More... | |
void | dummy_giveMe () const |
Each derived class should have a string-to-code translation routine for the reference type. More... | |
void | dummy_getRef () const |
Each class should have a function to return its reference: More... | |
void | dummy_getValue () const |
Each derived class should be able to get its internal value and have: More... | |
Static Public Member Functions | |
static MDirection | makeMDirection (const String &sourceName) |
Make an MDirection object given the case-insensitive name of a moving source (ZENITH, SUN, etc.), or of a known standard source (CygA, etc.). More... | |
static const String & | showMe () |
static void | assure (const Measure &in) |
Assert you are a direction. More... | |
static MDirection::GlobalTypes | globalType (uInt tp) |
Tell me the global type (like GRADEC) for tp (tp like MDirection::J2000) More... | |
static MDirection::Types | castType (uInt tp) |
Translate reference code tp. More... | |
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. More... | |
static const String * | allMyTypes (Int &nall, Int &nextra, const uInt *&typ) |
static void | checkMyTypes () |
Static Public Member Functions inherited from casacore::Measure | |
static uInt | giveMe (const String &in, Int N_name, const String tname[]) |
A general string checking routine to be used in derived measures. More... | |
Friends | |
class | MeasConvert< MDirection > |
Conversion of data. More... | |
Additional Inherited Members | |
Protected Attributes inherited from casacore::MeasBase< MVDirection, MeasRef< MDirection > > | |
MVDirection | data |
The measure value (e.g. More... | |
MeasRef< MDirection > | ref |
Reference frame data. More... | |
Unit | unit |
Possible input units. More... | |
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 conversion routines for this class (i.e.
Definition at line 245 of file MDirection.h.
Measure value container for this class (i.e.
Definition at line 243 of file MDirection.h.
typedef MeasRef<MDirection> casacore::MDirection::Ref |
Measure table Columns (e.g., MDirection::ScalarColumn)
Definition at line 251 of file MDirection.h.
Global types.
Enumerator | |
---|---|
GRADEC | |
GHADEC | |
GAZEL | |
GLONGLAT | |
N_GTypes |
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();
Definition at line 188 of file MDirection.h.
casacore::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
casacore::MDirection::MDirection | ( | const MVDirection & | dt | ) |
Create from data and reference.
casacore::MDirection::MDirection | ( | const MVDirection & | dt, |
const MDirection::Ref & | rf | ||
) |
casacore::MDirection::MDirection | ( | const MVDirection & | dt, |
MDirection::Types | rf | ||
) |
casacore::MDirection::MDirection | ( | const Quantity & | dt, |
const Quantity & | dt1, | ||
const MDirection::Ref & | rf | ||
) |
casacore::MDirection::MDirection | ( | const Quantity & | dt, |
const Quantity & | dt1, | ||
MDirection::Types | rf | ||
) |
casacore::MDirection::MDirection | ( | const Quantum< Vector< Double > > & | dt, |
const MDirection::Ref & | rf | ||
) |
casacore::MDirection::MDirection | ( | const Quantum< Vector< Double > > & | dt, |
MDirection::Types | rf | ||
) |
casacore::MDirection::MDirection | ( | const Measure * | dt | ) |
casacore::MDirection::MDirection | ( | const MeasValue * | dt | ) |
casacore::MDirection::MDirection | ( | const MDirection::Ref & | rf | ) |
casacore::MDirection::MDirection | ( | MDirection::Types | rf | ) |
|
virtual |
|
static |
|
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 casacore::Measure.
|
static |
Assert you are a direction.
|
static |
Translate reference code tp.
The uInt version has a check for valid codes (i.e. it is a safe cast).
|
static |
|
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 casacore::Measure.
|
virtual |
Make a copy.
Implements casacore::Measure.
|
virtual |
Get the default reference type.
Implements casacore::Measure.
|
virtual |
Get the reference type (for records, including codes like R_)
Implements casacore::Measure.
|
static |
Translate string to reference code.
Bool casacore::MDirection::giveMe | ( | MDirection::Ref & | mr, |
const String & | in | ||
) |
|
static |
Tell me the global type (like GRADEC) for tp (tp like MDirection::J2000)
|
virtual |
|
static |
Make an MDirection object given the case-insensitive name of a moving source (ZENITH, SUN, etc.), or of a known standard source (CygA, etc.).
Set the offset in the reference (False if non-matching Measure)
Implements casacore::Measure.
Set the reference type to the specified String.
False if illegal string, reference set to DEFAULT.
Implements casacore::Measure.
void casacore::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 casacore::MDirection::shift | ( | const MVDirection & | shft, |
Bool | trueAngle = False |
||
) |
void casacore::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.
|
static |
|
static |
|
virtual |
Tell me your type ('Direction')
Implements casacore::Measure.
String casacore::MDirection::toString | ( | ) | const |
Convert to a String in astronomer-friendly format based on reference frame.
|
friend |
Conversion of data.
Definition at line 179 of file MDirection.h.