casacore
Public Member Functions | Static Public Member Functions | List of all members
casacore::MVEarthMagnetic Class Reference

More...

#include <MVEarthMagnetic.h>

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
 
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 radius of position. More...
 
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 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 Vector< Quantum< Double > > getXRecordValue () const
 
virtual Vector< Quantum< Double > > getTMRecordValue () const
 
virtual Bool putValue (const Vector< Quantum< Double > > &in)
 Set the internal value if correct values and dimensions. More...
 
- 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...
 
virtual void print (ostream &os) const =0
 Print a MeasValue. More...
 
virtual MeasValueclone () const =0
 Clone a MeasValue. More...
 
virtual Vector< DoublegetVector () const =0
 Get the internal value as a Vector<Double>. More...
 
virtual Vector< Quantum< Double > > getRecordValue () const =0
 Get the internal value as a Vector<Quantity>. More...
 
virtual Vector< Quantum< Double > > getXRecordValue () const
 
virtual Vector< Quantum< Double > > getTMRecordValue () const
 
virtual void putVector (const Vector< Double > &in)=0
 Set the internal value from a Vector of values (obtained in principle with a getVector()). More...
 
virtual Bool putValue (const Vector< Quantum< Double > > &in)=0
 Set the internal value if correct values and dimensions. More...
 
virtual void adjust ()
 Some of the Measure values used need the occasional adjustments to proper values. More...
 
virtual void adjust (Double &val)
 Adjust value and return a normalisation value. More...
 
virtual void readjust (Double val)
 Re-adjust, i.e. 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

◆ MVEarthMagnetic() [1/11]

casacore::MVEarthMagnetic::MVEarthMagnetic ( )

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

◆ MVEarthMagnetic() [2/11]

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

Creates from an MVPosition.

◆ MVEarthMagnetic() [3/11]

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

Creates a specified vector.

◆ MVEarthMagnetic() [4/11]

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

Creates a vector with specified length towards pole.

◆ MVEarthMagnetic() [5/11]

casacore::MVEarthMagnetic::MVEarthMagnetic ( const Quantity l)

◆ MVEarthMagnetic() [6/11]

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

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

◆ MVEarthMagnetic() [7/11]

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

◆ MVEarthMagnetic() [8/11]

casacore::MVEarthMagnetic::MVEarthMagnetic ( const Quantum< Vector< Double > > &  angle)

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

◆ MVEarthMagnetic() [9/11]

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

◆ MVEarthMagnetic() [10/11]

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

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

◆ MVEarthMagnetic() [11/11]

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

Member Function Documentation

◆ adjust() [1/2]

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

Normalise direction aspects by adjusting the length to 1.

Reimplemented from casacore::MVPosition.

◆ adjust() [2/2]

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

Adjustment with returned factor.

Reimplemented from casacore::MVPosition.

◆ assure()

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

Tell me your type.

◆ clone()

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

Clone.

Reimplemented from casacore::MVPosition.

◆ crossProduct()

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

Produce the cross product.

◆ earthMagneticAngle() [1/2]

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.

◆ earthMagneticAngle() [2/2]

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

◆ get()

Vector< Double > casacore::MVEarthMagnetic::get ( ) const

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

◆ getAngle() [1/2]

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

Generate angle 2-vector (in rad)

◆ getAngle() [2/2]

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

and with specified units

◆ getLength() [1/2]

Quantity casacore::MVEarthMagnetic::getLength ( ) const

Generate the length.

◆ getLength() [2/2]

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

and generate it with the specified units

◆ getRecordValue()

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.

◆ getValue()

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

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

◆ getVector()

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

Get the value in internal units.

Reimplemented from casacore::MVPosition.

◆ near() [1/2]

Bool casacore::MVEarthMagnetic::near ( const MVEarthMagnetic other,
Double  tol = 1e-13 
) const

◆ near() [2/2]

Bool casacore::MVEarthMagnetic::near ( const MVEarthMagnetic other,
Quantity  tol 
) const

◆ nearAbs()

Bool casacore::MVEarthMagnetic::nearAbs ( const MVEarthMagnetic other,
Double  tol = 1e-13 
) const

◆ operator!=()

Bool casacore::MVEarthMagnetic::operator!= ( const MVEarthMagnetic other) const

◆ operator*()

Double casacore::MVEarthMagnetic::operator* ( const MVEarthMagnetic other) const

Multiplication defined as in-product.

◆ operator+()

MVEarthMagnetic casacore::MVEarthMagnetic::operator+ ( const MVEarthMagnetic right) const

◆ operator+=()

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

◆ operator-() [1/2]

MVEarthMagnetic casacore::MVEarthMagnetic::operator- ( ) const

Addition and subtraction.

◆ operator-() [2/2]

MVEarthMagnetic casacore::MVEarthMagnetic::operator- ( const MVEarthMagnetic right) const

◆ operator-=()

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

◆ operator==()

Bool casacore::MVEarthMagnetic::operator== ( const MVEarthMagnetic other) const

Equality comparisons.

◆ print()

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

Print data.

Reimplemented from casacore::MVPosition.

◆ putValue()

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

Set the internal value if correct values and dimensions.

Reimplemented from casacore::MVPosition.

◆ putVector()

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.

◆ radius()

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

Get modulus of EarthMagnetic.

Reimplemented from casacore::MVPosition.

◆ readjust()

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

Re-adjust using factor given.

Reimplemented from casacore::MVPosition.

◆ separation() [1/2]

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

Get the angular separation between two directions.

◆ separation() [2/2]

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

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