26#ifndef MEASURES_EARTHMAGNETICMACHINE_H
27#define MEASURES_EARTHMAGNETICMACHINE_H
30#include <casacore/casa/aips.h>
31#include <casacore/casa/Arrays/ArrayFwd.h>
32#include <casacore/measures/Measures.h>
33#include <casacore/measures/Measures/MCDirection.h>
34#include <casacore/casa/Quanta/MVPosition.h>
35#include <casacore/measures/Measures/EarthField.h>
36#include <casacore/casa/Quanta/MVEarthMagnetic.h>
MVDirection in_p
Input position.
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.
Quantum< Double > operator()(const Quantum< Double > &in, const Unit &un)
Double operator()(const Double in)
MVPosition sub_p
Position sub-point.
Double getLOSField(const MVDirection &in)
Bool calculate(const Double hgt)
Quantum< Double > getLong(const Unit &un)
Longitude in units (e.g.
Quantum< Double > getLOSField(const Double in, const Unit &un)
void copy(const EarthMagneticMachine &other)
Copy data members.
const MVEarthMagnetic & getField()
Field (in nT, in ITRF)
EarthField fldc_p
Earth field calculator.
Quantum< Double > operator()(const Unit &un)
Quantum< Double > getLong(const MVDirection &in, const Unit &un)
Bool fex_p
Extension calculated.
Vector< Double > pl_p
Field position.
MVPosition pos_p
Observatory position.
Quantum< Double > getLOSField(const Quantum< Double > &in, const Unit &un)
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)
void set(const MEpoch &tm)
Double getLOSField()
Return data.
Double subl_p
Distance squared to sub-point.
void set(const MDirection::Ref &in)
Set or reset part of the machine.
Quantum< Double > getLOSField(const Unit &un)
Line-of-sight field in specified units (e.g.
Quantum< Double > operator()(const MVDirection &in, const Unit &un)
Quantum< Double > getLOSField(const MVDirection &in, const Unit &un)
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 Double in, 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)
Double los_p
Line-of-sight field.
Double getLong(const MVDirection &in)
MVEarthMagnetic fld_p
Magnetic field.
const MVEarthMagnetic & getField(const MVDirection &in)
void init()
Initialise machinery.
Double operator()(const MVDirection &in)
Bool calculate(const Quantum< Double > &hgt)
const MVPosition & getPosition()
Position point.
Int cumf_p
Cumulative filled fields.
EarthMagneticMachine(const EarthMagneticMachine &other)
Copy constructor.
EarthMagneticMachine & operator=(const EarthMagneticMachine &other)
Copy assignments.
Double posl_p
Distance to Earth centre.
const MVPosition & getPosition(const MVDirection &in)
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.