SuperNOVAS C++ API v1.6
High-precision C/C++ astrometry library
Loading...
Searching...
No Matches
supernovas::Interferometric Class Reference

u, v, w projections of an interferometric station along a line of sight. More...

#include <supernovas.h>

+ Inheritance diagram for supernovas::Interferometric:

Public Member Functions

 Interferometric (const Coordinate &u, const Coordinate &v, const Coordinate &w)
 Instantiates an interferometric projection with the specified components.
 
 Interferometric (const Coordinate &u, const Coordinate &v, const Interval &geom_delay)
 Instantiates an interferometric projection with the specified components.
 
 Interferometric (double u, double v, double w)
 Instantiates an interferometric projection with the specified components.
 
bool equals (const Interferometric &p, double precision) const
 Checks if this interferometric projection is the same as another, within the specified precision.
 
Interval geometric_delay () const
 Returns the geometric delay of this projection along the line of sight, relative to the interferometric reference.
 
bool operator!= (const Interferometric &p) const
 Checks if this interferometric projection differs from the specified other projection by more than the 12th significant figure, or 1nm (whichever is larger).
 
Interferometric operator+ (const Interferometric &r) const
 Returns the vector sum of this interferometric projection and the specified other projection on the right hand side.
 
Interferometric operator- (const Interferometric &r) const
 Returns vector the difference of this interferometric projection and the specified other projection on the right hand side.
 
bool operator== (const Interferometric &p) const
 Checks if this interferometric projection is the same as the specified other propjection to 12 significant figures, or 1nm (whichever is larger).
 
std::string to_string (int decimals=6) const override
 Returns a human-readable representation of these interferometric projection.
 
Coordinate u () const
 Returns the u coordinate of this projection, which is the offset of this station projection from the interferometric reference in the direction of the local East, as seen from the line of sight.
 
Coordinate v () const
 Returns the v coordinate of this projection, which is the offset of this station projection from the interferometric reference in the direction of the local North, as seen from the the line of sight.
 
Coordinate w () const
 Returns the w coordinate of this projection, which is the offset of this station projection from the interferometric reference along the line of sight.
 
- Public Member Functions inherited from supernovas::Vector
virtual ~Vector ()
 
const double * _array () const
 Returns the underlying double[3] C array that stores the components of this vector internally.
 
double abs () const
 Returns the absolute value (length / magnitude) of this vector.
 
double dot (const Vector &v) const
 Returns the dot product of this vector and the specified other vector.
 
bool is_zero () const
 Checks if this verctor is a null vector, that is all of its components are zero.
 
Vector operator* (double r) const
 Scales a vector by a factor, for example to cast it to/from a physical unit.
 
double operator[] (int idx) const
 Returns the component at the specified index.
 
Angle phi () const
 Returns the azumithal angle of this vector.
 
double projection_on (const Vector &v) const
 Returns the projection of this vector along the direction of another vector.
 
Vector scaled (double factor) const
 Returns a rescaled version of this vector, for example to cast it to/from a physical unit.
 
Angle theta () const
 Returns the polar angleof this vector, that is the angle from the z axis.
 
Vector unit_vector () const
 Returns a unit vector in the direction of this vector.
 
- Public Member Functions inherited from supernovas::Validating
bool is_valid () const
 Returns the previously set 'valid' stae of the implementing instance.
 
 operator bool () const
 Objects that implement Validating can be used in conditionals directly, without explicitly calling is_valid().
 

Static Public Member Functions

static const Interferometricundefined ()
 Returns a reference to a statically defined standard invalid interferometric instance.
 

Additional Inherited Members

- Protected Member Functions inherited from supernovas::Vector
 Vector ()
 Instantiates an undefined vector.
 
 Vector (double x, double y, double z)
 Instantiates a vector from its cartesian components.
 
bool equals (const Vector &v, double precision) const
 Checks if this vector is the same as another vector, within the specified precision.
 
- Protected Member Functions inherited from supernovas::Validating
 Validating ()
 dummy constructor;
 
- Protected Attributes inherited from supernovas::Vector
double _component [3]
 [arb.u] Array containing the x, y, z components.
 
- Protected Attributes inherited from supernovas::Validating
bool _valid = false
 the state variable.
 

Detailed Description

u, v, w projections of an interferometric station along a line of sight.

The u and v coordinates are the orthogonal projections of the station, relative to the array reference, in the direction of the local East and North, as seen from the source; while w is the distance from the array reference location along the line of sight.

Since
1.6
See also
Observer::to_interferometric(), AstrometricPosition::to_interferometric()

Constructor & Destructor Documentation

◆ Interferometric() [1/3]

supernovas::Interferometric::Interferometric ( double u,
double v,
double w )

Instantiates an interferometric projection with the specified components.

Parameters
u[m] Projection along the East direction
v[m] Projection along the orthogonalized North Direction
w[m] Projection along the line of sight
Since
1.6

References supernovas::Vector::Vector(), supernovas::Validating::_valid, u(), v(), and w().

◆ Interferometric() [2/3]

supernovas::Interferometric::Interferometric ( const Coordinate & u,
const Coordinate & v,
const Coordinate & w )

Instantiates an interferometric projection with the specified components.

Parameters
uProjection along the East direction
vProjection along the orthogonalized North Direction
wProjection along the line of sight
Since
1.6

References u(), v(), and w().

◆ Interferometric() [3/3]

supernovas::Interferometric::Interferometric ( const Coordinate & u,
const Coordinate & v,
const Interval & geom_delay )

Instantiates an interferometric projection with the specified components.

Parameters
uProjection along the East direction
vProjection along the orthogonalized North Direction
geom_delaygeometric delay in the arrival time of light relative to the arrival time at the interferometric reference place.
Since
1.6

References u(), and v().

Member Function Documentation

◆ equals()

bool supernovas::Interferometric::equals ( const Interferometric & p,
double precision ) const

Checks if this interferometric projection is the same as another, within the specified precision.

Parameters
pthe reference projection
precisionthe precision for testing equality.
Returns
true if this projection equals the argument within the specified precision, or else false.
Since
1.6
See also
operator==(), operator!=()

References supernovas::Vector::equals().

Referenced by operator==().

◆ geometric_delay()

Interval supernovas::Interferometric::geometric_delay ( ) const

Returns the geometric delay of this projection along the line of sight, relative to the interferometric reference.

Returns
The geometric delay of this projection, relative to the interferometric reference station.
Since
1.6
See also
w()

References supernovas::Constant::c, and w().

Referenced by to_string().

◆ operator!=()

bool supernovas::Interferometric::operator!= ( const Interferometric & p) const

Checks if this interferometric projection differs from the specified other projection by more than the 12th significant figure, or 1nm (whichever is larger).

Parameters
pthe reference projection
Returns
true if this projection equals the argument to 12 significant figures or 1 nm, or else false.
Since
1.6
See also
equals(), operator==()

◆ operator+()

Interferometric supernovas::Interferometric::operator+ ( const Interferometric & r) const

Returns the vector sum of this interferometric projection and the specified other projection on the right hand side.

Parameters
rthe interferometric projection on the right hand side.
Returns
the difference between this projection and the argument.
Since
1.6
See also
operator-()

References supernovas::Vector::_component, and supernovas::Validating::is_valid().

◆ operator-()

Interferometric supernovas::Interferometric::operator- ( const Interferometric & r) const

Returns vector the difference of this interferometric projection and the specified other projection on the right hand side.

Parameters
rthe interferometric projection on the right hand side.
Returns
the difference between this projection and the argument.
Since
1.6
See also
operator+()

References supernovas::Vector::_component, and supernovas::Validating::is_valid().

◆ operator==()

bool supernovas::Interferometric::operator== ( const Interferometric & p) const

Checks if this interferometric projection is the same as the specified other propjection to 12 significant figures, or 1nm (whichever is larger).

Parameters
pthe reference projection
Returns
true if this projection equals the argument to 12 significant figures or 1 nm, or else false.
Since
1.6
See also
equals(), operator!=()

References supernovas::Vector::abs(), equals(), and supernovas::Unit::nm.

◆ to_string()

std::string supernovas::Interferometric::to_string ( int decimals = 6) const
overridevirtual

Returns a human-readable representation of these interferometric projection.

Parameters
decimals(optional) [0:16] Number of decimal places to print for u, v, and the geometric delay (default: 6).
Returns
a string representation of this interferometric projection.
Since
1.6

Reimplemented from supernovas::Vector.

References geometric_delay(), supernovas::Coordinate::to_string(), supernovas::Interval::to_string(), u(), and v().

Referenced by supernovas::AstrometricPosition::to_string().

◆ u()

Coordinate supernovas::Interferometric::u ( ) const

Returns the u coordinate of this projection, which is the offset of this station projection from the interferometric reference in the direction of the local East, as seen from the line of sight.

Returns
the station offset, relative to the interferometric reference station, in the direction of the local East from the line of sight.
Since
1.6
See also
v(), w()

References supernovas::Vector::_component.

Referenced by Interferometric(), Interferometric(), Interferometric(), and to_string().

◆ undefined()

const Interferometric & supernovas::Interferometric::undefined ( )
static

Returns a reference to a statically defined standard invalid interferometric instance.

Returns
a reference to a standard instance of invalid interferometric projection.
Since
1.6

Referenced by supernovas::Observer::to_interferometric().

◆ v()

Coordinate supernovas::Interferometric::v ( ) const

Returns the v coordinate of this projection, which is the offset of this station projection from the interferometric reference in the direction of the local North, as seen from the the line of sight.

Returns
the station offset, relative to the interferometric reference station, in the direction of the local North from the line of sight.
Since
1.6
See also
u(), w()

References supernovas::Vector::_component.

Referenced by Interferometric(), Interferometric(), Interferometric(), and to_string().

◆ w()

Coordinate supernovas::Interferometric::w ( ) const

Returns the w coordinate of this projection, which is the offset of this station projection from the interferometric reference along the line of sight.

Returns
the station offset, relative to the interferometric reference station, along the line-of-sight.
Since
1.6
See also
geometric_delay(), u(), v()

References supernovas::Vector::_component.

Referenced by Interferometric(), Interferometric(), and geometric_delay().