28 #ifndef MEASURES_EARTHMAGNETICMACHINE_H
29 #define MEASURES_EARTHMAGNETICMACHINE_H
32 #include <casacore/casa/aips.h>
33 #include <casacore/casa/Arrays/ArrayFwd.h>
34 #include <casacore/measures/Measures.h>
35 #include <casacore/measures/Measures/MCDirection.h>
36 #include <casacore/casa/Quanta/MVPosition.h>
37 #include <casacore/measures/Measures/EarthField.h>
38 #include <casacore/casa/Quanta/MVEarthMagnetic.h>
MVDirection in_p
Input position.
Quantum< Double > getLong(const MVDirection &in, const Unit &un)
Double getLOSField(const Double in)
EarthMagneticMachine(const MDirection::Ref &in, const Quantum< Double > &hgt, const MPosition &pos, const MEpoch &tm)
EarthMagneticMachine(const MDirection::Ref &in, const Quantum< Double > &hgt, MeasFrame &frame)
Construct a machine from the input values.
const MVEarthMagnetic & getField()
Field (in nT, in ITRF)
Double operator()(const Double in)
MVPosition sub_p
Position sub-point.
Double getLOSField(const MVDirection &in)
Quantum< Double > getLOSField(const MVDirection &in, const Unit &un)
Quantum< Double > operator()(const MVDirection &in, const Unit &un)
Bool calculate(const Double hgt)
void copy(const EarthMagneticMachine &other)
Copy data members.
Quantum< Double > operator()(const Double in, const Unit &un)
const MVEarthMagnetic & getField(const MVDirection &in)
EarthField fldc_p
Earth field calculator.
Bool fex_p
Extension calculated.
Vector< Double > pl_p
Field position.
MVPosition pos_p
Observatory position.
EarthMagneticMachine(const MDirection::Ref &in, const MVDirection &dir, const MPosition &pos, const MEpoch &tm)
EarthMagneticMachine()
Construct an empty machine (probably not usable unles set() used)
Quantum< Double > getLOSField(const Double in, const Unit &un)
const MVPosition & getPosition()
Position point.
void set(const MEpoch &tm)
Double getLOSField()
Return data.
const MVPosition & getPosition(const MVDirection &in)
Double subl_p
Distance squared to sub-point.
EarthMagneticMachine & operator=(const EarthMagneticMachine &other)
Copy assignments.
void set(const MDirection::Ref &in)
Set or reset part of the machine.
Quantum< Double > getLong(const Unit &un)
Longitude in units (e.g.
MDirection::Convert conv_p
Conversion engine.
Double getLOSField(const Quantum< Double > &in)
Double getLong()
Longitude (rad)
MVDirection rin_p
Re-typed input position.
Quantum< Double > operator()(const Unit &un)
void set(MeasFrame &frame)
MDirection::Ref inref_p
Input direction reference.
Double operator()()
Return line-of-sight field (nT or given units) (from previous calculate if no direction or height giv...
EarthMagneticMachine(const MDirection::Ref &in, const MVDirection &dir, MeasFrame &frame)
void set(const MVDirection &dir)
void calculate()
Calculate field.
void reCalculate()
Recalculate the machinery.
void set(const MPosition &pos)
Bool calculate(const MVDirection &in)
Calculate a value from direction or height (in m if not Quantity)
void set(const Quantum< Double > &hgt)
Double operator()(const Quantum< Double > &in)
Quantum< Double > getLOSField(const Quantum< Double > &in, const Unit &un)
Double los_p
Line-of-sight field.
Double getLong(const MVDirection &in)
MVEarthMagnetic fld_p
Magnetic field.
void init()
Initialise machinery.
Double operator()(const MVDirection &in)
Bool calculate(const Quantum< Double > &hgt)
Quantum< Double > getLOSField(const Unit &un)
Line-of-sight field in specified units (e.g.
Quantum< Double > operator()(const Quantum< Double > &in, const Unit &un)
Int cumf_p
Cumulative filled fields.
EarthMagneticMachine(const EarthMagneticMachine &other)
Copy constructor.
Double posl_p
Distance to Earth centre.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.