Loading...
Searching...
No Matches
casacore::MVuvw Class Reference
casa package (libcasa_casa) » Quanta_module

More...

`#include <MVuvw.h>`

## Public Member Functions

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

## Static Public Member Functions

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

## Additional Inherited Members

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

## Detailed Description

A 3D vector on Earth

### Intended use:

Public interface

### Review Status

Reviewed By:
  UNKNOWN
Date Reviewed:
  before2004/08/25
Test programs:
  tMuvw

### Prerequisite

- MeasValue

### Etymology

From Measure, Value and uvw

### Synopsis

A MVuvw is a 3-vector of uvws in a rectangular frame with internal units of m.
It can be constructed with:

- MVuvw() creates point at origin (0,0,0)
- MVuvw(MVuvw) creates a copy
- MVuvw(MVPosition) creates (x,y,z) from the given position
- MVuvw(Double, Double, Double) creates (x,y,z) with specified values (assuming meters)
- MVuvw(Quantity length,Double, Double) creates a MVuvw assuming that the two values are (in radians) angle along 'equator' and towards 'pole'.
- MVuvw(Quantity length, Quantity, Quantity) creates a MVuvw assuming angles as in previous, or uvws
- MVuvw(Quantity, Quantum<Vector<Double> >) creates a MVuvw from angle vector, using first two angles, and assuming second as zero if not present.
- MVuvw(Quantum<Vector<Double> > creates from angles or uvws, depending on the units in the quantum vector. In the angle case, the data derived can be scaled with the readjust() function. If the unit of the quantum vector is length, uvw is assumed.
- MVuvw(Vector<Double> creates from angles (less than or equal to two elements) or x,y,z (3 elements).
- MVuvw(Vector<Quantity> creates from length+angles, angles, or x,y,z, depending on units.
- MVuvw(MVBaseline, MVDirection) creates a uvw in the specified reference direction (in same reference frame)

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 uvw vector; a getAngle() returns a Quantum 2-vector, (uInt) returns the indicated element, and getValue returns the vector.
uvws can be added and subtracted.
The multiplication of two uvws produces the in-product.

### Example

See Muvw class.

### Motivation

To do coordinate transformations

### To Do

- Implement for EW
- Get sign (especially of V) correct
- Let it handle Vectors of UVW
- Add some rotation matrix history for speed

Definition at line 109 of file MVuvw.h.

## Constructor & Destructor Documentation

## MVuvw() [1/12]

casacore::MVuvw::MVuvw | ( |  | ) |

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

Referenced by crossProduct(), near(), near(), nearAbs(), operator!=(), operator*(), operator+(), operator+=(), operator-(), operator-(), operator-=(), operator==(), separation(), separation(), uvwAngle(), and uvwAngle().

## MVuvw() [2/12]

casacore::MVuvw::MVuvw | ( | const MVPosition & | other | ) |

Creates from an MVPosition.

References casacore::MVPosition::MVPosition().

## MVuvw() [3/12]

casacore::MVuvw::MVuvw | ( | Double | in0,
|  | Double | in1,
|  | Double | in2 )

Creates a specified vector.

## MVuvw() [4/12]

casacore::MVuvw::MVuvw | ( | Double | in0 | ) |

explicit

Creates a vector with specified length towards pole.

## MVuvw() [5/12]

casacore::MVuvw::MVuvw | ( | const Quantity & | l | ) |

## MVuvw() [6/12]

casacore::MVuvw::MVuvw | ( | const Quantity & | l,
|  | Double | angle0,
|  | Double | angle1 )

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

## MVuvw() [7/12]

casacore::MVuvw::MVuvw | ( | const Quantity & | l,
|  | const Quantity & | angle0,
|  | const Quantity & | angle1 )

Creates the uvw from specified angles and length.

or uvws

### Thrown Exceptions

- AipsError if quantities not in angle format

## MVuvw() [8/12]

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

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

## MVuvw() [9/12]

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

## MVuvw() [10/12]

casacore::MVuvw::MVuvw | ( | const Vector< Double > & | other | ) |

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

## MVuvw() [11/12]

casacore::MVuvw::MVuvw | ( | const Vector< Quantity > & | other | ) |

## MVuvw() [12/12]

casacore::MVuvw::MVuvw | ( | const MVBaseline & | pos,
|  | const MVDirection & | dr,
|  | Bool | ew = False )

uvw from a baseline and a reference direction (in same frame)

References casacore::False.

## Member Function Documentation

## adjust() [1/2]

virtual void casacore::MVuvw::adjust | ( |  | ) |

virtual

Normalise direction aspects by adjusting the length to 1.

Reimplemented from casacore::MVPosition.

## adjust() [2/2]

virtual void casacore::MVuvw::adjust | ( | Double & | res | ) |

virtual

Adjustment with returned factor.

Reimplemented from casacore::MVPosition.

## assure()

void casacore::MVuvw::assure | ( | const MeasValue & | in | ) |

static

Tell me your type.

## clone()

virtual MeasValue * casacore::MVuvw::clone | ( |  | ) | const

virtual

Clone.

Reimplemented from casacore::MVPosition.

## crossProduct()

MVuvw casacore::MVuvw::crossProduct | ( | const MVuvw & | other | ) | const

Produce the cross product.

References MVuvw().

## get()

Vector< Double > casacore::MVuvw::get | ( |  | ) | const

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

## getAngle() [1/2]

Quantum< Vector< Double > > casacore::MVuvw::getAngle | ( |  | ) | const

Generate angle 2-vector (in rad).

## getAngle() [2/2]

Quantum< Vector< Double > > casacore::MVuvw::getAngle | ( | const Unit & | unit | ) | const

and with specified units

## getLength() [1/2]

Quantity casacore::MVuvw::getLength | ( |  | ) | const

Generate the length.

## getLength() [2/2]

Quantity casacore::MVuvw::getLength | ( | const Unit & | unit | ) | const

and generate it with the specified units

## getRecordValue()

virtual Vector< Quantum< Double > > casacore::MVuvw::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.

## getTMRecordValue()

virtual Vector< Quantum< Double > > casacore::MVuvw::getTMRecordValue | ( |  | ) | const

inline virtual

Reimplemented from casacore::MVPosition.

Definition at line 232 of file MVuvw.h.

References getXRecordValue().

## getValue()

const Vector< Double > & casacore::MVuvw::getValue | ( |  | ) | const

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

## getVector()

virtual Vector< Double > casacore::MVuvw::getVector | ( |  | ) | const

virtual

Get the value in internal units.

Reimplemented from casacore::MVPosition.

## getXRecordValue()

virtual Vector< Quantum< Double > > casacore::MVuvw::getXRecordValue | ( |  | ) | const

virtual

Reimplemented from casacore::MVPosition.

Referenced by getTMRecordValue().

## near() [1/2]

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

References MVuvw().

## near() [2/2]

Bool casacore::MVuvw::near | ( | const MVuvw & | other,
|  | Quantity | tol ) const

References MVuvw().

## nearAbs()

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

References MVuvw().

## operator!=()

Bool casacore::MVuvw::operator!= | ( | const MVuvw & | other | ) | const

References MVuvw().

## operator*()

Double casacore::MVuvw::operator* | ( | const MVuvw & | other | ) | const

Multiplication defined as in-product.

References MVuvw().

## operator+()

MVuvw casacore::MVuvw::operator+ | ( | const MVuvw & | right | ) | const

References MVuvw().

## operator+=()

MVuvw & casacore::MVuvw::operator+= | ( | const MVuvw & | right | ) |

References MVuvw().

## operator-() [1/2]

MVuvw casacore::MVuvw::operator- | ( |  | ) | const

Addition and subtraction.

References MVuvw().

## operator-() [2/2]

MVuvw casacore::MVuvw::operator- | ( | const MVuvw & | right | ) | const

References MVuvw().

## operator-=()

MVuvw & casacore::MVuvw::operator-= | ( | const MVuvw & | right | ) |

References MVuvw().

## operator==()

Bool casacore::MVuvw::operator== | ( | const MVuvw & | other | ) | const

Equality comparisons.

References MVuvw().

## print()

virtual void casacore::MVuvw::print | ( | ostream & | os | ) | const

virtual

Print data.

Reimplemented from casacore::MVPosition.

## putValue()

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

virtual

Set the internal value if correct values and dimensions.

Reimplemented from casacore::MVPosition.

## putVector()

virtual void casacore::MVuvw::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::MVuvw::radius | ( |  | ) |

virtual

Get radius(i.e.

length of vector, in m) of uvw

Reimplemented from casacore::MVPosition.

## readjust()

virtual void casacore::MVuvw::readjust | ( | Double | res | ) |

virtual

Re-adjust using factor given.

Reimplemented from casacore::MVPosition.

## separation() [1/2]

Double casacore::MVuvw::separation | ( | const MVuvw & | other | ) | const

Get the angular separation between two directions.

References MVuvw().

## separation() [2/2]

Quantity casacore::MVuvw::separation | ( | const MVuvw & | other,
|  | const Unit & | unit ) const

References MVuvw().

## uvwAngle() [1/2]

Double casacore::MVuvw::uvwAngle | ( | const MVuvw & | other | ) | const

Get the uvw angle between the directions.

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

References MVuvw().

## uvwAngle() [2/2]

Quantity casacore::MVuvw::uvwAngle | ( | const MVuvw & | other,
|  | const Unit & | unit ) const

References MVuvw().

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

- casa/Quanta/MVuvw.h