Class MetaData

Inheritance Relationships

Derived Type

Class Documentation

class icrar::cpu::MetaData

container of phaserotation constants and variables for calibrating a single beam. Can be mutated to calibrate for multiple directions.

Subclassed by icrar::cuda::HostMetaData

Public Functions

MetaData(const icrar::MeasurementSet &ms, boost::optional<unsigned int> refAnt = boost::none, double minimumBaselineThreshold = 0.0, bool computeInverse = true, bool useCache = true)

Construct a new MetaData object. SetUVW() and SetDirection() must be called after construction.

Parameters
  • ms:

  • minimumBaselineThreshold:

  • useCache:

MetaData(const icrar::MeasurementSet &ms, const std::vector<icrar::MVuvw> &uvws, boost::optional<unsigned int> refAnt = boost::none, double minimumBaselineThreshold = 0.0, bool computeInverse = true, bool useCache = true)

Construct a new MetaData object. SetDirection() must be called after construction.

Parameters
  • ms: measurement set to read observations from

  • uvws: uvw coordinates of stations

  • refAnt: the reference antenna index, default is the last index

  • minimumBaselineThreshold: baseline lengths less that the minimum in meters are flagged

  • useCache: whether to load Ad matrix from cache

MetaData(const icrar::MeasurementSet &ms, const SphericalDirection &direction, const std::vector<icrar::MVuvw> &uvws, boost::optional<unsigned int> refAnt = boost::none, double minimumBaselineThreshold = 0.0, bool computeInverse = true, bool useCache = true)

Construct a new MetaData object.

Parameters
  • ms: measurement set to read observations from

  • direction: the direction of the beam to calibrate for

  • uvws: uvw coordinates of stations

  • refAnt: the reference antenna index, default is the last index

  • minimumBaselineThreshold: baseline lengths less that the minimum in meters are flagged

  • useCache: whether to load Ad matrix from cache

const Constants &GetConstants() const
const Eigen::MatrixXd &GetA() const

Matrix of baseline pairs of shape [baselines, stations].

const Eigen::VectorXi &GetI() const

Vector of indexes of the stations that are not flagged, shape [stations].

const Eigen::MatrixXd &GetAd() const

The pseudoinverse of A with shape [stations, baselines].

Eigen::MatrixXd &GetAd()

Gets a mutable reference to Ad. Host references may need to reregister after resize.

const Eigen::MatrixXd &GetA1() const

Matrix of baselines using the reference antenna of shape [stations+1, stations] the last row represents the reference antenna.

const Eigen::VectorXi &GetI1() const
const Eigen::MatrixXd &GetAd1() const
Eigen::MatrixXd &GetAd1()

Gets a mutable reference to Ad1. Host references may need to reregister after resize.

const std::vector<icrar::MVuvw> &GetUVW() const
const SphericalDirection &GetDirection() const
const Eigen::Matrix3d &GetDD() const
void SetDirection(const SphericalDirection &direction)
void SetUVW(const std::vector<icrar::MVuvw> &uvws)
void ComputeInverse()

Computes the A and A1 inverse matrices.

void ValidateInverse() const

Output logs on the validity of inverse matrices.

Eigen::Matrix3d GenerateDDMatrix(const SphericalDirection &direction) const

Utility method to generate a direction matrix using the configured zenith direction.

Return

Eigen::Matrix3d

Parameters
  • direction:

const Eigen::MatrixXcd &GetAvgData() const
Eigen::MatrixXcd &GetAvgData()
bool operator==(const MetaData &rhs) const
bool operator!=(const MetaData &rhs) const

Protected Attributes

Constants m_constants
double m_minimumBaselineThreshold
bool m_useCache
Eigen::MatrixXd m_A
Eigen::VectorXi m_I
Eigen::MatrixXd m_A1
Eigen::VectorXi m_I1
Eigen::MatrixXd m_Ad

The pseudo-inverse of m_A, late intitialized.

Eigen::MatrixXd m_Ad1
std::vector<icrar::MVuvw> m_UVW
SphericalDirection m_direction
Eigen::Matrix3d m_dd
Eigen::MatrixXcd m_avgData

Friends

friend class icrar::cuda::DeviceMetaData
friend class icrar::cuda::ConstantBuffer