casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
casacore::MVEarthMagnetic Class Reference

A 3D Earth magnetic field vector. More...

#include <MVEarthMagnetic.h>

Inheritance diagram for casacore::MVEarthMagnetic:
casacore::MVPosition casacore::MeasValue

Public Member Functions

 MVEarthMagnetic ()
 Default constructor generates a (0,0,0) EarthMagnetic. More...
 
 MVEarthMagnetic (const MVPosition &other)
 Creates from an MVPosition. More...
 
 MVEarthMagnetic (Double in0, Double in1, Double in2)
 Creates a specified vector. More...
 
 MVEarthMagnetic (Double in0)
 Creates a vector with specified length towards pole. More...
 
 MVEarthMagnetic (const Quantity &l)
 
 MVEarthMagnetic (const Quantity &l, Double angle0, Double angle1)
 Creates the EarthMagnetic from specified (azimuth,elevation) angles and length. More...
 
 MVEarthMagnetic (const Quantity &l, const Quantity &angle0, const Quantity &angle1)
 Creates the EarthMagnetic from specified angles and length. More...
 
 MVEarthMagnetic (const Quantum< Vector< Double > > &angle)
 If not enough angles: pole assumed (if none), or elevation =0 (if 1) More...
 
 MVEarthMagnetic (const Quantity &l, const Quantum< Vector< Double > > &angle)
 
 MVEarthMagnetic (const Vector< Double > &other)
 Create from specified length and/or angles and/or EarthMagnetic. More...
 
 MVEarthMagnetic (const Vector< Quantity > &other)
 
Double operator* (const MVEarthMagnetic &other) const
 Multiplication defined as in-product. More...
 
Bool operator== (const MVEarthMagnetic &other) const
 Equality comparisons. More...
 
Bool operator!= (const MVEarthMagnetic &other) const
 
Bool near (const MVEarthMagnetic &other, Double tol=1e-13) const
 
Bool near (const MVEarthMagnetic &other, Quantity tol) const
 
Bool nearAbs (const MVEarthMagnetic &other, Double tol=1e-13) const
 
MVEarthMagnetic operator- () const
 Addition and subtraction. More...
 
MVEarthMagneticoperator+= (const MVEarthMagnetic &right)
 
MVEarthMagnetic operator+ (const MVEarthMagnetic &right) const
 
MVEarthMagneticoperator-= (const MVEarthMagnetic &right)
 
MVEarthMagnetic operator- (const MVEarthMagnetic &right) const
 
virtual void adjust ()
 Normalise direction aspects by adjusting the length to 1. More...
 
virtual void adjust (Double &res)
 Adjustment with returned factor. More...
 
virtual void readjust (Double res)
 Re-adjust using factor given. More...
 
virtual Double radius ()
 Get modulus of EarthMagnetic. More...
 
Vector< Doubleget () const
 Generate a 3-vector of coordinates (length(T), angles(rad)) More...
 
const Vector< Double > & getValue () const
 Generate a 3-vector of x,y,z in tesla. More...
 
Quantum< Vector< Double > > getAngle () const
 Generate angle 2-vector (in rad) More...
 
Quantum< Vector< Double > > getAngle (const Unit &unit) const
 and with specified units More...
 
Quantity getLength () const
 Generate the length. More...
 
Quantity getLength (const Unit &unit) const
 and generate it with the specified units More...
 
Double earthMagneticAngle (const MVEarthMagnetic &other) const
 Get the EarthMagnetic angle between the directions. More...
 
Quantity earthMagneticAngle (const MVEarthMagnetic &other, const Unit &unit) const
 
Double separation (const MVEarthMagnetic &other) const
 Get the angular separation between two directions. More...
 
Quantity separation (const MVEarthMagnetic &other, const Unit &unit) const
 
MVEarthMagnetic crossProduct (const MVEarthMagnetic &other) const
 Produce the cross product. More...
 
virtual void print (ostream &os) const
 Print data. More...
 
virtual MeasValueclone () const
 Clone. More...
 
virtual Vector< DoublegetVector () const
 Get the value in internal units. More...
 
virtual void putVector (const Vector< Double > &in)
 Set the value from internal units (set 0 for empty vector) More...
 
virtual Vector< Quantum< Double > > getRecordValue () const
 Get the internal value as a Vector<Quantity>. More...
 
virtual Bool putValue (const Vector< Quantum< Double > > &in)
 Set the internal value if correct values and dimensions. More...
 
- Public Member Functions inherited from casacore::MVPosition
 MVPosition ()
 Default constructor generates a (0,0,0) position. More...
 
 MVPosition (const MVPosition &other)
 Copy constructor. More...
 
 MVPosition (Double in0, Double in1, Double in2)
 Creates a specified vector. More...
 
 MVPosition (Double in0)
 Creates a vector with specified length towards pole. More...
 
 MVPosition (const Quantity &l)
 
 MVPosition (const Quantity &l, Double angle0, Double angle1)
 Creates the position from specified (azimuth,elevation) angles and length. More...
 
 MVPosition (const Quantity &l, const Quantity &angle0, const Quantity &angle1)
 Creates the position from specified angles and length. More...
 
 MVPosition (const Quantum< Vector< Double > > &angle)
 If not enough angles: pole assumed (if none), or elevation =0 (if 1) More...
 
 MVPosition (const Quantity &l, const Quantum< Vector< Double > > &angle)
 
 MVPosition (const Vector< Double > &other)
 Create from specified length and/or angles and/or position. More...
 
 MVPosition (const Vector< Quantity > &other)
 
MVPositionoperator= (const MVPosition &other)
 Copy assignment. More...
 
virtual ~MVPosition ()
 Destructor. More...
 
Double operator* (const MVPosition &other) const
 Multiplication defined as in-product. More...
 
Bool operator== (const MVPosition &other) const
 Equality comparisons. More...
 
Bool operator!= (const MVPosition &other) const
 
Bool near (const MVPosition &other, Double tol=1e-13) const
 
Bool near (const MVPosition &other, Quantity tol) const
 
Bool nearAbs (const MVPosition &other, Double tol=1e-13) const
 
MVPosition operator- () const
 Addition and subtraction. More...
 
MVPositionoperator+= (const MVPosition &right)
 
MVPosition operator+ (const MVPosition &right) const
 
MVPositionoperator-= (const MVPosition &right)
 
MVPosition operator- (const MVPosition &right) const
 
MVPositionoperator*= (const RotMatrix &right)
 Multiplication with rotation matrix (see also global functions) More...
 
MVPositionoperator*= (Double right)
 Multiplication with constant. More...
 
Doubleoperator() (uInt which)
 Obtain an element. More...
 
const Doubleoperator() (uInt which) const
 
Vector< Doubleget () const
 Generate a 3-vector of coordinates (length(m), angles(rad)) More...
 
const Vector< Double > & getValue () const
 Generate a 3-vector of x,y,z in m. More...
 
Quantum< Vector< Double > > getAngle () const
 Generate angle 2-vector (in rad) More...
 
Quantum< Vector< Double > > getAngle (const Unit &unit) const
 and with specified units More...
 
Double getLong () const
 Get the longitudinal angle (in radians) More...
 
Quantity getLong (const Unit &unit) const
 and with specified units More...
 
Double getLat () const
 Get the latitude angle (rad) More...
 
Quantity getLat (const Unit &unit) const
 and with specified units More...
 
Quantity getLength () const
 Generate the length. More...
 
Quantity getLength (const Unit &unit) const
 and generate it with the specified units More...
 
Double positionAngle (const MVPosition &other) const
 Get the position angle between the directions. More...
 
Quantity positionAngle (const MVPosition &other, const Unit &unit) const
 
Double separation (const MVPosition &other) const
 Get the angular separation between two directions. More...
 
Quantity separation (const MVPosition &other, const Unit &unit) const
 
MVPosition crossProduct (const MVPosition &other) const
 Produce the cross product. More...
 
virtual Vector< Quantum< Double > > getXRecordValue () const
 
virtual Vector< Quantum< Double > > getTMRecordValue () const
 
- Public Member Functions inherited from casacore::MeasValue
void dummy_constr () const
 Each derived class should have at least the following constructors: More...
 
virtual ~MeasValue ()
 Destructor. More...
 
void dummy_operator () const
 The following operators should be present at least. More...
 

Static Public Member Functions

static void assure (const MeasValue &in)
 Tell me your type. More...
 
- Static Public Member Functions inherited from casacore::MVPosition
static void assure (const MeasValue &in)
 Tell me your type. More...
 

Additional Inherited Members

- Static Public Attributes inherited from casacore::MVPosition
static const Double loLimit
 Internal limts codes for negative height. More...
 
static const Double hiLimit
 
- Protected Member Functions inherited from casacore::MVPosition
Double getLat (Double ln) const
 Get the latitude assuming length is given. More...
 
- Protected Attributes inherited from casacore::MVPosition
Vector< Doublexyz
 Position vector (in m) More...
 

Detailed Description

A 3D Earth magnetic field vector.

Intended use:

Internal

Review Status

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

Prerequisite

Etymology

From Measure, Value and Earth Magnetic field

Synopsis

A MVEarthMagnetic is a 3-vector of the Earth's magnetic flux density in a rectangular frame with the z-axis to astronomical North pole, and x-axis towards longitude zero, in internal Units of nano tesla (== 0.00001 G).
It can be constructed with:

A void adjust(Double) function normalises the vector to a length of 1; a get() returns as a Double 3-vector the length and angles of the EarthMagnetic vector; a getAngle() returns a Quantum 2-vector, (uInt) returns the indicated element, and getValue returns the vector.
EarthMagnetics can be added and subtracted.
The multiplication of two EarthMagnetics produces the in-product.

Example

See MEarthMagnetic class.

Motivation

To use in ionospheric effect calculations

To Do

Definition at line 110 of file MVEarthMagnetic.h.

Constructor & Destructor Documentation

casacore::MVEarthMagnetic::MVEarthMagnetic ( )

Default constructor generates a (0,0,0) EarthMagnetic.

casacore::MVEarthMagnetic::MVEarthMagnetic ( const MVPosition other)

Creates from an MVPosition.

casacore::MVEarthMagnetic::MVEarthMagnetic ( Double  in0,
Double  in1,
Double  in2 
)

Creates a specified vector.

casacore::MVEarthMagnetic::MVEarthMagnetic ( Double  in0)
explicit

Creates a vector with specified length towards pole.

casacore::MVEarthMagnetic::MVEarthMagnetic ( const Quantity l)
casacore::MVEarthMagnetic::MVEarthMagnetic ( const Quantity l,
Double  angle0,
Double  angle1 
)

Creates the EarthMagnetic from specified (azimuth,elevation) angles and length.

casacore::MVEarthMagnetic::MVEarthMagnetic ( const Quantity l,
const Quantity angle0,
const Quantity angle1 
)

Creates the EarthMagnetic from specified angles and length.

or EarthMagnetics

Thrown Exceptions

  • AipsError if quantities not in angle format
casacore::MVEarthMagnetic::MVEarthMagnetic ( const Quantum< Vector< Double > > &  angle)

If not enough angles: pole assumed (if none), or elevation =0 (if 1)

casacore::MVEarthMagnetic::MVEarthMagnetic ( const Quantity l,
const Quantum< Vector< Double > > &  angle 
)
casacore::MVEarthMagnetic::MVEarthMagnetic ( const Vector< Double > &  other)

Create from specified length and/or angles and/or EarthMagnetic.

casacore::MVEarthMagnetic::MVEarthMagnetic ( const Vector< Quantity > &  other)

Member Function Documentation

virtual void casacore::MVEarthMagnetic::adjust ( )
virtual

Normalise direction aspects by adjusting the length to 1.

Reimplemented from casacore::MVPosition.

virtual void casacore::MVEarthMagnetic::adjust ( Double res)
virtual

Adjustment with returned factor.

Reimplemented from casacore::MVPosition.

static void casacore::MVEarthMagnetic::assure ( const MeasValue in)
static

Tell me your type.

virtual MeasValue* casacore::MVEarthMagnetic::clone ( ) const
virtual

Clone.

Reimplemented from casacore::MVPosition.

MVEarthMagnetic casacore::MVEarthMagnetic::crossProduct ( const MVEarthMagnetic other) const

Produce the cross product.

Double casacore::MVEarthMagnetic::earthMagneticAngle ( const MVEarthMagnetic other) const

Get the EarthMagnetic angle between the directions.

I.e. the angle between the direction from one to the pole, and from one to the other.

Quantity casacore::MVEarthMagnetic::earthMagneticAngle ( const MVEarthMagnetic other,
const Unit unit 
) const
Vector<Double> casacore::MVEarthMagnetic::get ( ) const

Generate a 3-vector of coordinates (length(T), angles(rad))

Quantum<Vector<Double> > casacore::MVEarthMagnetic::getAngle ( ) const

Generate angle 2-vector (in rad)

Quantum<Vector<Double> > casacore::MVEarthMagnetic::getAngle ( const Unit unit) const

and with specified units

Quantity casacore::MVEarthMagnetic::getLength ( ) const

Generate the length.

Quantity casacore::MVEarthMagnetic::getLength ( const Unit unit) const

and generate it with the specified units

virtual Vector<Quantum<Double> > casacore::MVEarthMagnetic::getRecordValue ( ) const
virtual

Get the internal value as a Vector<Quantity>.

Usable in records. The getXRecordValue() gets additional information for records. Note that the Vectors could be empty.

Reimplemented from casacore::MVPosition.

const Vector<Double>& casacore::MVEarthMagnetic::getValue ( ) const

Generate a 3-vector of x,y,z in tesla.

virtual Vector<Double> casacore::MVEarthMagnetic::getVector ( ) const
virtual

Get the value in internal units.

Reimplemented from casacore::MVPosition.

Bool casacore::MVEarthMagnetic::near ( const MVEarthMagnetic other,
Double  tol = 1e-13 
) const
Bool casacore::MVEarthMagnetic::near ( const MVEarthMagnetic other,
Quantity  tol 
) const
Bool casacore::MVEarthMagnetic::nearAbs ( const MVEarthMagnetic other,
Double  tol = 1e-13 
) const
Bool casacore::MVEarthMagnetic::operator!= ( const MVEarthMagnetic other) const
Double casacore::MVEarthMagnetic::operator* ( const MVEarthMagnetic other) const

Multiplication defined as in-product.

MVEarthMagnetic casacore::MVEarthMagnetic::operator+ ( const MVEarthMagnetic right) const
MVEarthMagnetic& casacore::MVEarthMagnetic::operator+= ( const MVEarthMagnetic right)
MVEarthMagnetic casacore::MVEarthMagnetic::operator- ( ) const

Addition and subtraction.

MVEarthMagnetic casacore::MVEarthMagnetic::operator- ( const MVEarthMagnetic right) const
MVEarthMagnetic& casacore::MVEarthMagnetic::operator-= ( const MVEarthMagnetic right)
Bool casacore::MVEarthMagnetic::operator== ( const MVEarthMagnetic other) const

Equality comparisons.

virtual void casacore::MVEarthMagnetic::print ( ostream &  os) const
virtual

Print data.

Reimplemented from casacore::MVPosition.

virtual Bool casacore::MVEarthMagnetic::putValue ( const Vector< Quantum< Double > > &  in)
virtual

Set the internal value if correct values and dimensions.

Reimplemented from casacore::MVPosition.

virtual void casacore::MVEarthMagnetic::putVector ( const Vector< Double > &  in)
virtual

Set the value from internal units (set 0 for empty vector)

Reimplemented from casacore::MVPosition.

virtual Double casacore::MVEarthMagnetic::radius ( )
virtual

Get modulus of EarthMagnetic.

Reimplemented from casacore::MVPosition.

virtual void casacore::MVEarthMagnetic::readjust ( Double  res)
virtual

Re-adjust using factor given.

Reimplemented from casacore::MVPosition.

Double casacore::MVEarthMagnetic::separation ( const MVEarthMagnetic other) const

Get the angular separation between two directions.

Quantity casacore::MVEarthMagnetic::separation ( const MVEarthMagnetic other,
const Unit unit 
) const

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