casa
5.7.0-16
|
Calculates magnetic field in a direction. More...
#include <EarthMagneticMachine.h>
Public Member Functions | |
EarthMagneticMachine () | |
Construct an empty machine (probably not usable unles set() used) More... | |
EarthMagneticMachine (const MDirection::Ref &in, const Quantum< Double > &hgt, MeasFrame &frame) | |
Construct a machine from the input values. More... | |
EarthMagneticMachine (const MDirection::Ref &in, const Quantum< Double > &hgt, const MPosition &pos, const MEpoch &tm) | |
EarthMagneticMachine (const MDirection::Ref &in, const MVDirection &dir, MeasFrame &frame) | |
EarthMagneticMachine (const MDirection::Ref &in, const MVDirection &dir, const MPosition &pos, const MEpoch &tm) | |
EarthMagneticMachine (const EarthMagneticMachine &other) | |
Copy constructor. More... | |
EarthMagneticMachine & | operator= (const EarthMagneticMachine &other) |
Copy assignments. More... | |
~EarthMagneticMachine () | |
Double | operator() () |
Return line-of-sight field (nT or given units) (from previous calculate if no direction or height given) More... | |
Quantum< Double > | operator() (const Unit &un) |
Double | operator() (const MVDirection &in) |
Quantum< Double > | operator() (const MVDirection &in, const Unit &un) |
Double | operator() (const Quantum< Double > &in) |
Quantum< Double > | operator() (const Quantum< Double > &in, const Unit &un) |
Double | operator() (const Double in) |
Quantum< Double > | operator() (const Double in, const Unit &un) |
void | set (const MDirection::Ref &in) |
Set or reset part of the machine. More... | |
void | set (const Quantum< Double > &hgt) |
void | set (MeasFrame &frame) |
void | set (const MPosition &pos) |
void | set (const MEpoch &tm) |
void | set (const MVDirection &dir) |
Bool | calculate (const MVDirection &in) |
Calculate a value from direction or height (in m if not Quantity) More... | |
Bool | calculate (const Quantum< Double > &hgt) |
Bool | calculate (const Double hgt) |
Double | getLOSField () |
Return data. More... | |
Double | getLOSField (const MVDirection &in) |
Double | getLOSField (const Quantum< Double > &in) |
Double | getLOSField (const Double in) |
Quantum< Double > | getLOSField (const Unit &un) |
Line-of-sight field in specified units (e.g. More... | |
Quantum< Double > | getLOSField (const MVDirection &in, const Unit &un) |
Quantum< Double > | getLOSField (const Quantum< Double > &in, const Unit &un) |
Quantum< Double > | getLOSField (const Double in, const Unit &un) |
const MVEarthMagnetic & | getField () |
Field (in nT, in ITRF) More... | |
const MVEarthMagnetic & | getField (const MVDirection &in) |
Double | getLong () |
Longitude (rad) More... | |
Double | getLong (const MVDirection &in) |
Quantum< Double > | getLong (const Unit &un) |
Longitude in units (e.g. More... | |
Quantum< Double > | getLong (const MVDirection &in, const Unit &un) |
const MVPosition & | getPosition () |
Position point. More... | |
const MVPosition & | getPosition (const MVDirection &in) |
void | reCalculate () |
Recalculate the machinery. More... | |
Private Member Functions | |
void | init () |
Initialise machinery. More... | |
void | copy (const EarthMagneticMachine &other) |
Copy data members. More... | |
void | calculate () |
Calculate field. More... | |
Private Attributes | |
MDirection::Ref | inref_p |
Input direction reference. More... | |
Double | hgt_p |
Height (m) More... | |
MVPosition | pos_p |
Observatory position. More... | |
Double | posl_p |
Distance to Earth centre. More... | |
Double | subl_p |
Distance squared to sub-point. More... | |
Double | epo_p |
Epoch. More... | |
MDirection::Convert | conv_p |
Conversion engine. More... | |
MVDirection | in_p |
Input position. More... | |
MVDirection | rin_p |
Re-typed input position. More... | |
Bool | fex_p |
Extension calculated. More... | |
Bool | pex_p |
MVPosition | sub_p |
Position sub-point. More... | |
EarthField | fldc_p |
Earth field calculator. More... | |
MVEarthMagnetic | fld_p |
Magnetic field. More... | |
Double | los_p |
Line-of-sight field. More... | |
Vector< Double > | pl_p |
Field position. More... | |
Int | fil_p |
Fields filled. More... | |
Int | cumf_p |
Cumulative filled fields. More... | |
Bool | clx_p |
Calc done. More... | |
Calculates magnetic field in a direction.
Public interface
From Earth' magnetic Field and machinery
The construction of an EarthMagneticMachine class object creates a machine that can calculate the magnetic field in an arbitrary direction.
The constructors need a reference code (and possibly frame) input MDirection::Ref to specify how the the input coordinates have to be interpreted (e.g. MDirection::HADEC). It also needs an altitude above the Earth for which the field has to be calculated. The position on Earth can be given as either a position, or as a frame containing the position. In the latter case the frame will also be used in the coordinate transformations.
Once the EarthMagneticMachine has been established, it can be used to calculate the field by the calculate(MVDirection) method. A variety of get methods let you obtain e.g. the field along the line of sight, the longitude of the point for which the field was calculated (e.g. the sub-ionospheric point).
To aid calculating fields in a simple way.
Definition at line 116 of file EarthMagneticMachine.h.
casacore::EarthMagneticMachine::EarthMagneticMachine | ( | ) |
Construct an empty machine (probably not usable unles set() used)
casacore::EarthMagneticMachine::EarthMagneticMachine | ( | const MDirection::Ref & | in, |
const Quantum< Double > & | hgt, | ||
MeasFrame & | frame | ||
) |
casacore::EarthMagneticMachine::EarthMagneticMachine | ( | const MDirection::Ref & | in, |
const Quantum< Double > & | hgt, | ||
const MPosition & | pos, | ||
const MEpoch & | tm | ||
) |
casacore::EarthMagneticMachine::EarthMagneticMachine | ( | const MDirection::Ref & | in, |
const MVDirection & | dir, | ||
MeasFrame & | frame | ||
) |
casacore::EarthMagneticMachine::EarthMagneticMachine | ( | const MDirection::Ref & | in, |
const MVDirection & | dir, | ||
const MPosition & | pos, | ||
const MEpoch & | tm | ||
) |
casacore::EarthMagneticMachine::EarthMagneticMachine | ( | const EarthMagneticMachine & | other | ) |
Copy constructor.
casacore::EarthMagneticMachine::~EarthMagneticMachine | ( | ) |
Bool casacore::EarthMagneticMachine::calculate | ( | const MVDirection & | in | ) |
Calculate a value from direction or height (in m if not Quantity)
|
private |
Calculate field.
|
private |
Copy data members.
const MVEarthMagnetic& casacore::EarthMagneticMachine::getField | ( | ) |
Field (in nT, in ITRF)
const MVEarthMagnetic& casacore::EarthMagneticMachine::getField | ( | const MVDirection & | in | ) |
Double casacore::EarthMagneticMachine::getLong | ( | ) |
Longitude (rad)
Double casacore::EarthMagneticMachine::getLong | ( | const MVDirection & | in | ) |
Longitude in units (e.g.
deg)
Quantum<Double> casacore::EarthMagneticMachine::getLong | ( | const MVDirection & | in, |
const Unit & | un | ||
) |
Double casacore::EarthMagneticMachine::getLOSField | ( | ) |
Return data.
Line-of-sight field in nT
Double casacore::EarthMagneticMachine::getLOSField | ( | const MVDirection & | in | ) |
Line-of-sight field in specified units (e.g.
G)
Quantum<Double> casacore::EarthMagneticMachine::getLOSField | ( | const MVDirection & | in, |
const Unit & | un | ||
) |
Quantum<Double> casacore::EarthMagneticMachine::getLOSField | ( | const Quantum< Double > & | in, |
const Unit & | un | ||
) |
const MVPosition& casacore::EarthMagneticMachine::getPosition | ( | ) |
Position point.
const MVPosition& casacore::EarthMagneticMachine::getPosition | ( | const MVDirection & | in | ) |
|
private |
Initialise machinery.
Double casacore::EarthMagneticMachine::operator() | ( | ) |
Return line-of-sight field (nT or given units) (from previous calculate if no direction or height given)
Double casacore::EarthMagneticMachine::operator() | ( | const MVDirection & | in | ) |
Quantum<Double> casacore::EarthMagneticMachine::operator() | ( | const MVDirection & | in, |
const Unit & | un | ||
) |
Quantum<Double> casacore::EarthMagneticMachine::operator() | ( | const Quantum< Double > & | in, |
const Unit & | un | ||
) |
EarthMagneticMachine& casacore::EarthMagneticMachine::operator= | ( | const EarthMagneticMachine & | other | ) |
Copy assignments.
void casacore::EarthMagneticMachine::reCalculate | ( | ) |
Recalculate the machinery.
void casacore::EarthMagneticMachine::set | ( | const MDirection::Ref & | in | ) |
Set or reset part of the machine.
void casacore::EarthMagneticMachine::set | ( | MeasFrame & | frame | ) |
void casacore::EarthMagneticMachine::set | ( | const MPosition & | pos | ) |
void casacore::EarthMagneticMachine::set | ( | const MEpoch & | tm | ) |
void casacore::EarthMagneticMachine::set | ( | const MVDirection & | dir | ) |
|
private |
Calc done.
Definition at line 256 of file EarthMagneticMachine.h.
|
private |
Conversion engine.
Definition at line 231 of file EarthMagneticMachine.h.
|
private |
Cumulative filled fields.
Definition at line 254 of file EarthMagneticMachine.h.
|
private |
Epoch.
Definition at line 229 of file EarthMagneticMachine.h.
|
private |
Extension calculated.
Definition at line 238 of file EarthMagneticMachine.h.
|
private |
Fields filled.
Definition at line 252 of file EarthMagneticMachine.h.
|
private |
Magnetic field.
Definition at line 246 of file EarthMagneticMachine.h.
|
private |
Earth field calculator.
Definition at line 244 of file EarthMagneticMachine.h.
|
private |
Height (m)
Definition at line 221 of file EarthMagneticMachine.h.
|
private |
Input position.
Definition at line 233 of file EarthMagneticMachine.h.
|
private |
Input direction reference.
Definition at line 219 of file EarthMagneticMachine.h.
|
private |
Line-of-sight field.
Definition at line 248 of file EarthMagneticMachine.h.
|
private |
Definition at line 239 of file EarthMagneticMachine.h.
Field position.
Definition at line 250 of file EarthMagneticMachine.h.
|
private |
Observatory position.
Definition at line 223 of file EarthMagneticMachine.h.
|
private |
Distance to Earth centre.
Definition at line 225 of file EarthMagneticMachine.h.
|
private |
Re-typed input position.
Definition at line 235 of file EarthMagneticMachine.h.
|
private |
Position sub-point.
Definition at line 242 of file EarthMagneticMachine.h.
|
private |
Distance squared to sub-point.
Definition at line 227 of file EarthMagneticMachine.h.