Private Members
- void newCalBuffer (const Vector<Int>& fieldIdKeys, const Vector<Int>& antennaId)
- Int getKnots (const Vector<Double>& times, Vector<Double>& knots)
- virtual void updateCalTable (const Vector<Int>& fieldIdKeys, const Vector<Int>& antennaId, const Vector<String>& freqGrpName, const Vector<String>& polyType, const Vector<String>& polyMode, const Vector<Complex>& scaleFactor, const Matrix<Double>& polyCoeffAmp, const Matrix<Double>& polyCoeffPhase, const Vector<String>& phaseUnits, const Vector<Double>& splineKnotsAmp, const Vector<Double>& splineKnotsPhase, const Vector<Matrix>& refFreq, const Vector<Int>& refAnt)
- Double getSplineVal (Double x, Vector<Double>& knots, Vector<Double>& coeff)
- void fillRawPhaseBuff()
- Double getRawPhase(Int ant1, Int ant2, Double time)
- void plotsolve(const Vector<Double>& x, const Matrix<Double>& yall, const Matrix<Double>& weightall, const Vector<Double>& errall, Matrix<Double>& coeff, Bool phasesoln)
- Vector<Int> fieldIdRange()
- void writeAsciiLog(const String& filename, const Matrix<Double>& coeff, const Vector<Double>& rmsFit, Bool phasesoln)
Prerequisite
- GJones module
- GJonesPoly module
Etymology
GJonesSpline describes the electronic gain visibility Jones matrix
parametrized as a spline polynomial over time.
Synopsis
See VisEquation for definition of the
Visibility Measurement Equation.
The elements of GJonesSpline are only non-zero on the diagonal.
Motivation
Support electronic gain calibration using splines polynomials over time.
To Do
i) Support solution and pre-averaging intervals
Member Description
Construct from a visibility data set
Destructor
Set the solver parameters
Set the interpolation parameters
Solve
Set raw phase transfer from another spw
void setPhaseWrapHelp(const Int& numpoi, const Double& phaseWrap)
Set parameters for phase wrapping resolution
virtual void checkCache(const VisBuffer& vb, const Int& spw, const Double& time)
Check the validity of the antenna and baseline gain cache;
re-compute the spline polynomial corrections and refresh
the cache as necessary.
void newCalBuffer (const Vector<Int>& fieldIdKeys, const Vector<Int>& antennaId)
Create and fill an empty output calibration buffer
Int getKnots (const Vector<Double>& times, Vector<Double>& knots)
Compute the number of spline knots required and their location
virtual void updateCalTable (const Vector<Int>& fieldIdKeys, const Vector<Int>& antennaId, const Vector<String>& freqGrpName, const Vector<String>& polyType, const Vector<String>& polyMode, const Vector<Complex>& scaleFactor, const Matrix<Double>& polyCoeffAmp, const Matrix<Double>& polyCoeffPhase, const Vector<String>& phaseUnits, const Vector<Double>& splineKnotsAmp, const Vector<Double>& splineKnotsPhase, const Vector<Matrix>& refFreq, const Vector<Int>& refAnt)
Update the output calibration table
Double getSplineVal (Double x, Vector<Double>& knots, Vector<Double>& coeff)
Compute a spline polynomial value
fill the raw phase buffer for usage
Double getRawPhase(Int ant1, Int ant2, Double time)
return the rawphase of
void plotsolve(const Vector<Double>& x, const Matrix<Double>& yall, const Matrix<Double>& weightall, const Vector<Double>& errall, Matrix<Double>& coeff, Bool phasesoln)
Plot solutions as compare with data
Return all field id.'s in the underlying MS
void writeAsciiLog(const String& filename, const Matrix<Double>& coeff, const Vector<Double>& rmsFit, Bool phasesoln)
Logging solution and rms