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

More...

`#include <MEarthMagnetic.h>`

## Public Types

enum | Types { J2000 , JMEAN , JTRUE , APP , B1950 , BMEAN , BTRUE , GALACTIC , HADEC , AZEL , AZELSW , AZELGEO , AZELSWGEO , JNAT , ECLIPTIC , MECLIPTIC , TECLIPTIC , SUPERGAL , ITRF , TOPO , ICRS , N_Types , IGRF , N_Models , EXTRA , DEFAULT , AZELNE , AZELNEGEO }
| Types of known MEarthMagnetics Tip: The order defines the order in the translation matrix FromTo in the getConvert routine in MCEarthMagnetic; 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...
typedef MVEarthMagnetic | MVType
| Measure value container for this class (i.e.
typedef MCEarthMagnetic | MCType
| Measure conversion routines for this class (i.e.
typedef MeasRef< MEarthMagnetic > | Ref
| Measure reference (i.e.
typedef MeasConvert< MEarthMagnetic > | Convert
| Measure Convert (i.e.
typedef ScalarMeasColumn< MEarthMagnetic > | ScalarColumn
| Measure table Columns (e.g., MEarthMagnetic::ScalarColumn).
typedef ArrayMeasColumn< MEarthMagnetic > | 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:

## Public Member Functions

| MEarthMagnetic ()
| Note: 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 default IGRF type
| MEarthMagnetic (const MVEarthMagnetic &dt)
| Create from data and reference.
| MEarthMagnetic (const MVEarthMagnetic &dt, const MEarthMagnetic::Ref &rf)
| MEarthMagnetic (const MVEarthMagnetic &dt, MEarthMagnetic::Types rf)
| MEarthMagnetic (const Measure *dt)
| MEarthMagnetic (const MeasValue *dt)
| MEarthMagnetic (const MEarthMagnetic::Ref &rf)
| MEarthMagnetic (const MEarthMagnetic &)
MEarthMagnetic & | operator= (const MEarthMagnetic &)
virtual | ~MEarthMagnetic ()
virtual const String & | tellMe () const
| Tell me your type.
Bool | giveMe (MEarthMagnetic::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 > > | get (const Unit &inunit) const
| Get Measure data.
Quantum< Vector< Double > > | getAngle () const
Quantum< Vector< Double > > | getAngle (const Unit &inunit) const
virtual Measure * | clone () const
| Make copy.
Public Member Functions inherited from casacore::MeasBase< MVEarthMagnetic, MeasRef< MEarthMagnetic > >
| 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
MeasBase< MVEarthMagnetic, MeasRef< MEarthMagnetic > > & | operator= (const MeasBase< MVEarthMagnetic, MeasRef< MEarthMagnetic > > &other)
| Copy assignment.
virtual | ~MeasBase ()
virtual Bool | areYou (const String &tp) const
| Check the type of derived entity.
virtual void | assured (const String &tp) const
| Assert that we are the correct type.
void | set (const MVEarthMagnetic &dt)
| Refill the specified entities.
virtual Bool | putValue (const Vector< Quantum< Double > > &in)
MeasRef< MEarthMagnetic > | getRef () const
| Get reference.
const MVEarthMagnetic & | getValue () const
| Get Measure data.
const Unit & | getUnit () const
| Get Unit.
virtual MRBase * | getRefPtr () const
| Get reference pointer.
virtual const MeasValue * | getData () const
| Get pointer to data.
virtual void | print (std::ostream &os) const
| Print a Measure.
Public Member Functions inherited from casacore::Measure
virtual | ~Measure ()
| Destructor.
virtual void | set (const MeasValue &dt)=0
| Each Measure should have the following set functions (with appropiate MVs and Ref):
void | dummy_giveMe () const
| Each derived class should have a string-to-code translation routine for the reference type.
void | dummy_getRef () const
| Each class should have a function to return its reference:
void | dummy_getValue () const
| Each derived class should be able to get its internal value and have:

## Static Public Member Functions

static const String & | showMe ()
static void | assure (const Measure &in)
static MEarthMagnetic::Types | castType (uInt tp)
| Translate reference code.
static const String & | showType (MEarthMagnetic::Types tp)
static const String & | showType (uInt tp)
static Bool | getType (MEarthMagnetic::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 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.

## Friends

class | MeasConvert< MEarthMagnetic >
| Conversion of data.

## Additional Inherited Members

Protected Attributes inherited from casacore::MeasBase< MVEarthMagnetic, MeasRef< MEarthMagnetic > >
MVEarthMagnetic | data
| The measure value (e.g.
MeasRef< MEarthMagnetic > | ref
| Reference frame data.
Unit | unit
| Possible input units.

## Detailed Description

A Measure: Magnetic field on Earth

### Intended use:

Public interface

### Review Status

Reviewed By:
  UNKNOWN
Date Reviewed:
  before2004/08/25

### Prerequisite

- Measure class

### Etymology

Earth and Magnetic field

### Synopsis

MEarthMagnetic forms derived Measure class for Earth' magnetic flux density. The field can be specified as a model, or as a 3D vector (see MVEarthMagnetic) with a specified reference frame code. If a model is specified, a possibly specified explicit field will be ignored, since the field will be calculated from the model if a conversion is asked for.
The class contains the following magnetic field models:

- IGRF international reference field

The reference frame type can be any of the types specified in the MDirection direction types (e.g. AZEL).
Warning: The IGRF needs a Table of coefficients (at 5-year interval)

Conversion between field models is not supported (but not relevant anyway with only one model supported). Conversion to an explicit direction is done by the standard MeasConvert class and rules (see example) using MEarthMagnetic::Convert, and the reference types (e.g. MEarthMagnetic::AZEL).

An EarthMagneticMachine has been provided to get e.g. the field in a certain direction at a certain height.

### Example

// Where on Earth
MPosition pos(MVPosition(Quantity(20,'m'), Quantity(5,'deg'),
Quantity(52,'deg')), MPosition::WGS84);
// Time we want it
MEpoch epo(MVEpoch(50000));
// Put in frame
MeasFrame frame(pos, epo);
// Magnetic field model
MEarthMagnetic mf;
// Show field strength in Gauss in AzEl system
cout <<
MEarthMagnetic::Convert(mf, MEarthMagnetic::AZEL)().
getValue().getLength("G") << endl;
casacore::MEarthMagnetic::MEarthMagnetic
MEarthMagnetic()
Note: In the following constructors and other functions, all MeasRef can be replaced with simple Meas...
casacore::MEarthMagnetic::Convert
MeasConvert< MEarthMagnetic > Convert
Measure Convert (i.e.
Definition MEarthMagnetic.h:173
casacore::MEarthMagnetic::AZEL
@ AZEL
Definition MEarthMagnetic.h:140
casacore::MEpoch
Definition MEpoch.h:101
casacore::MPosition
Definition MPosition.h:76
casacore::MPosition::WGS84
@ WGS84
Definition MPosition.h:93
casacore::MVEarthMagnetic::getLength
Quantity getLength() const
Generate the length.
casacore::MVEpoch
Definition MVEpoch.h:87
casacore::MVPosition
Definition MVPosition.h:111
casacore::MeasBase< MVEarthMagnetic, MeasRef< MEarthMagnetic > >::getValue
const MVEarthMagnetic & getValue() const
casacore::MeasFrame
Definition MeasFrame.h:151
casacore::Quantity
Quantum< Double > Quantity
Definition Quantum.h:39

### Motivation

To have the Earth' magnetic field in the standard Measure environment.

### To Do

- maybe add other field models if necessary (e.g. dipole)

Definition at line 115 of file MEarthMagnetic.h.

## Member Typedef Documentation

## ArrayColumn

typedef ArrayMeasColumn<MEarthMagnetic> casacore::MEarthMagnetic::ArrayColumn

Definition at line 176 of file MEarthMagnetic.h.

## Convert

typedef MeasConvert<MEarthMagnetic> casacore::MEarthMagnetic::Convert

Measure Convert (i.e.

MEarthMagnetic::Convert)

Definition at line 173 of file MEarthMagnetic.h.

## MCType

typedef MCEarthMagnetic casacore::MEarthMagnetic::MCType

Measure conversion routines for this class (i.e.

MEarthMagnetic::MCType)

Definition at line 169 of file MEarthMagnetic.h.

## MVType

typedef MVEarthMagnetic casacore::MEarthMagnetic::MVType

Measure value container for this class (i.e.

MEarthMagnetic::MVType)

Definition at line 167 of file MEarthMagnetic.h.

## Ref

typedef MeasRef<MEarthMagnetic> casacore::MEarthMagnetic::Ref

Measure reference (i.e.

MEarthMagnetic::Ref)

Definition at line 171 of file MEarthMagnetic.h.

## ScalarColumn

typedef ScalarMeasColumn<MEarthMagnetic> casacore::MEarthMagnetic::ScalarColumn

Measure table Columns (e.g., MEarthMagnetic::ScalarColumn).

Definition at line 175 of file MEarthMagnetic.h.

## Member Enumeration Documentation

## Types

enum casacore::MEarthMagnetic::Types

Types of known MEarthMagnetics
Tip: The order defines the order in the translation matrix FromTo in the getConvert routine in MCEarthMagnetic; 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();
.

Enumerator
J2000 |
JMEAN |
JTRUE |
APP |
B1950 |
BMEAN |
BTRUE |
GALACTIC |
HADEC |
AZEL |
AZELSW |
AZELGEO |
AZELSWGEO |
JNAT |
ECLIPTIC |
MECLIPTIC |
TECLIPTIC |
SUPERGAL |
ITRF |
TOPO |
ICRS |
N_Types |
IGRF | Models. First one should be IGRF
N_Models |
EXTRA | All extra bits (for internal use only).
DEFAULT | Defaults.
AZELNE | Synonyms.
AZELNEGEO |

Definition at line 130 of file MEarthMagnetic.h.

## Constructor & Destructor Documentation

## MEarthMagnetic() [1/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( |  | ) |

Note: 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 default IGRF type

Referenced by MEarthMagnetic(), MeasConvert< MEarthMagnetic >, and operator=().

## MEarthMagnetic() [2/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( | const MVEarthMagnetic & | dt | ) |

Create from data and reference.

## MEarthMagnetic() [3/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( | const MVEarthMagnetic & | dt,
|  | const MEarthMagnetic::Ref & | rf )

## MEarthMagnetic() [4/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( | const MVEarthMagnetic & | dt,
|  | MEarthMagnetic::Types | rf )

## MEarthMagnetic() [5/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( | const Measure * | dt | ) |

## MEarthMagnetic() [6/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( | const MeasValue * | dt | ) |

## MEarthMagnetic() [7/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( | const MEarthMagnetic::Ref & | rf | ) |

## MEarthMagnetic() [8/8]

casacore::MEarthMagnetic::MEarthMagnetic | ( | const MEarthMagnetic & |  | ) |

References MEarthMagnetic().

## ~MEarthMagnetic()

virtual casacore::MEarthMagnetic::~MEarthMagnetic | ( |  | ) |

virtual

## Member Function Documentation

## allMyTypes()

const String * casacore::MEarthMagnetic::allMyTypes | ( | Int & | nall,
|  | Int & | nextra,
|  | const uInt *& | typ )

static

## allTypes()

virtual const String * casacore::MEarthMagnetic::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 casacore::Measure.

## assure()

void casacore::MEarthMagnetic::assure | ( | const Measure & | in | ) |

static

## castType()

MEarthMagnetic::Types casacore::MEarthMagnetic::castType | ( | uInt | tp | ) |

static

Translate reference code.

The uInt version has a check for valid codes (i.e. it is a safe cast).

### Thrown Exceptions

- AipsError in the uInt interface if illegal code given

## checkMyTypes()

void casacore::MEarthMagnetic::checkMyTypes | ( |  | ) |

static

## checkTypes()

virtual void casacore::MEarthMagnetic::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.

### Thrown Exceptions

- AipsError if a (programming) error in the types.

Implements casacore::Measure.

## clone()

virtual Measure * casacore::MEarthMagnetic::clone | ( |  | ) | const

virtual

Make copy.

Implements casacore::Measure.

## get()

Quantum< Vector< Double > > casacore::MEarthMagnetic::get | ( | const Unit & | inunit | ) | const

Get Measure data.

## getAngle() [1/2]

Quantum< Vector< Double > > casacore::MEarthMagnetic::getAngle | ( |  | ) | const

## getAngle() [2/2]

Quantum< Vector< Double > > casacore::MEarthMagnetic::getAngle | ( | const Unit & | inunit | ) | const

## getDefaultType()

virtual const String & casacore::MEarthMagnetic::getDefaultType | ( |  | ) | const

virtual

Get the default reference type.

Implements casacore::Measure.

## getRefString()

virtual String casacore::MEarthMagnetic::getRefString | ( |  | ) | const

virtual

Get the reference type (for records, including codes like R_).

Implements casacore::Measure.

## getType()

Bool casacore::MEarthMagnetic::getType | ( | MEarthMagnetic::Types & | tp,
|  | const String & | in )

static

Translate string to reference code.

## giveMe()

Bool casacore::MEarthMagnetic::giveMe | ( | MEarthMagnetic::Ref & | mr,
|  | const String & | in )

## isModel()

virtual Bool casacore::MEarthMagnetic::isModel | ( |  | ) | const

virtual

Tell me if you are a pure model (e.g.

a planet)

Reimplemented from casacore::Measure.

## operator=()

MEarthMagnetic & casacore::MEarthMagnetic::operator= | ( | const MEarthMagnetic & |  | ) |

References MEarthMagnetic().

## setOffset()

virtual Bool casacore::MEarthMagnetic::setOffset | ( | const Measure & | in | ) |

virtual

Set the offset in the reference (False if non-matching Measure).

Implements casacore::Measure.

## setRefString()

virtual Bool casacore::MEarthMagnetic::setRefString | ( | const String & | in | ) |

virtual

Set the reference type to the specified String.

False if illegal string, reference set to DEFAULT.

Implements casacore::Measure.

## showMe()

const String & casacore::MEarthMagnetic::showMe | ( |  | ) |

static

## showType() [1/2]

const String & casacore::MEarthMagnetic::showType | ( | MEarthMagnetic::Types | tp | ) |

static

## showType() [2/2]

const String & casacore::MEarthMagnetic::showType | ( | uInt | tp | ) |

static

## tellMe()

virtual const String & casacore::MEarthMagnetic::tellMe | ( |  | ) | const

virtual

Tell me your type.

Implements casacore::Measure.

## Friends And Related Symbol Documentation

## MeasConvert< MEarthMagnetic >

friend class MeasConvert< MEarthMagnetic >

friend

Conversion of data.

Definition at line 1 of file MEarthMagnetic.h.

References MEarthMagnetic().

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

- measures/Measures/MEarthMagnetic.h