VisEquation.h

Classes

VisEquation -- Visibility Measurement Equation (full description)

class VisEquation

Interface

Public Members
VisEquation(VisSet& vs)
virtual ~VisEquation()
VisEquation(const VisEquation& other)
VisEquation& operator=(const VisEquation& other)
void setVisSet(VisSet& vs)
void setVisJones(VisJones& j)
void unSetVisJones(VisJones& j)
void setMJones( MJones& j)
void setACoh( ACoh& j)
void setXCorr( XCorr& j)
virtual void correct()
virtual void corrupt()
void initChiSquare(VisJones& vj)
virtual void chiSquared(Matrix<Float>& iChisq, Matrix<Float>& iSumwt)
virtual void chiSquared(Vector<Float>& iChisq, Vector<Float>& iSumwt)
virtual void gradientsChiSquared(const Matrix<Bool>& required, VisJones& vj)
virtual void gradientsChiSquared(MJones& mj)
virtual Bool solve(MJones& mj)
virtual Bool solve(ACoh& ac)
virtual Bool solve(VisJones& vj)
const VisBuffer& corrected()
const VisBuffer& corrupted()
virtual VisBuffer& apply(VisBuffer& result)
virtual VisBuffer& applyInv(VisBuffer& result)
Protected Members
Bool ok()
void fixWeights(VisBuffer& vb)
virtual VisBuffer& applyGradient(VisBuffer& result, const Vector<Int>& antenna, Int i, Int j, Int pos)
virtual VisBuffer& applyGradient(VisBuffer& result)

Description

Prerequisite

Etymology

Visibility Equation describes a model for measurements from a generic synthesis telescope

Synopsis

This is responsible for the Measurement Equation of the Generic Interferometer due to Hamaker, Bregman and Sault and later extended by Noordam, and Cornwell.

See MeasurementEquations for more details of the form of the VisEquation.

The following components can be plugged into VisEquation

Example


      // Read the VisSet from disk
      VisSet vs("3c84.MS");

      // Define a VisEquation
      VisEquation ve(vs);

      // Solve for calibration of G matrix every 5 minutes
      GJones gj(vs, 5*60);

      ve.setVisJones(gj);

      ve.solve(gj);

      // Solve for calibration of D matrix every 12 hours
      DJones dj(vs, 12*60*60);

      ve.setVisJones(dj);

      ve.solve(dj);

Motivation

VisEquation is part of a framework of classes that are designed for synthesis and single dish imaging. The others are the MeasurementComponents.

To Do

Member Description

VisEquation(VisSet& vs)

virtual ~VisEquation()

VisEquation(const VisEquation& other)

VisEquation& operator=(const VisEquation& other)

void setVisSet(VisSet& vs)

void setVisJones(VisJones& j)

void unSetVisJones(VisJones& j)

void setMJones( MJones& j)

Set Closure error matrix

void setACoh( ACoh& j)

Set Additive error coherence vector

void setXCorr( XCorr& j)

Set non-linear correlator function

virtual void correct()

Correct the measured "Vis" coherences to obtain an estimate of the "Sky" visibilities

virtual void corrupt()

Corrupt the measred "Vis" coherences to simulate errors

void initChiSquare(VisJones& vj)

Initialize the gradient calculations, pre-computes & averages lhs and rhs of the equation.

virtual void chiSquared(Matrix<Float>& iChisq, Matrix<Float>& iSumwt)

Find sum of weights, Chi-squared per spectral window, and antenna

virtual void chiSquared(Vector<Float>& iChisq, Vector<Float>& iSumwt)

Find sum of weights, Chi-squared per antenna

virtual void gradientsChiSquared(const Matrix<Bool>& required, VisJones& vj)

VisJones: Find sum of weights, Chi-squared, and the first and second derivatives

virtual void gradientsChiSquared(MJones& mj)

MJones: Find sum of weights, Chi-squared, and the first and second derivatives

virtual Bool solve(MJones& mj)
virtual Bool solve(ACoh& ac)
virtual Bool solve(VisJones& vj)

Solve for variables.

const VisBuffer& corrected()

Accessor functions for the corrected and corrupted data

const VisBuffer& corrupted()

virtual VisBuffer& apply(VisBuffer& result)
virtual VisBuffer& applyInv(VisBuffer& result)

Apply actual Jones matrix and adjoint

Bool ok()

void fixWeights(VisBuffer& vb)

Fix up the weights for the VisBuffer (use sigmas)

virtual VisBuffer& applyGradient(VisBuffer& result, const Vector<Int>& antenna, Int i, Int j, Int pos)

Apply Gradient of VisJones

virtual VisBuffer& applyGradient(VisBuffer& result)

Apply Gradient of MJones