casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
casa::ComponentUpdate Class Reference

This class updates components in UV plane. More...

#include <ComponentUpdate.h>

List of all members.

Public Member Functions

 ComponentUpdate ()
 Default constructor -- update not possible without one or more set() methods.
 ComponentUpdate (const ComponentList &model)
 Construct an update machine for the sources in the given ComponentList, using the 'separate' type of solution, and ILM solve.
 ComponentUpdate (const ComponentList &model, const ComponentUpdate::Solve solve)
 Construct an update machine for the sources in the given ComponentList, using the specified sovables and the separate type.
 ComponentUpdate (const ComponentList &model, const ComponentUpdate::Solve solve, const ComponentUpdate::Type tp)
 Construct an update machine for the sources in the given ComponentList, using the specified type of solution and solvables.
 ~ComponentUpdate ()
 Destructor.
void makeEquations (const Array< DComplex > &deriv, const Vector< DComplex > &data)
 Create the solution equations.
Bool solve (Matrix< Double > &sol, Matrix< Double > &err)
 Provide the solution (i.e.

Private Types

enum  Type {
  SEPARATE,
  COMBINED,
  CLUSTER,
  N_Type
}
 The different solution types. More...
enum  Solve {
  ILM,
  N_Solve
}
 The different solvable parameters. More...

Private Member Functions

 ComponentUpdate (const ComponentUpdate &other)
 Copy constructor (not implemented)
ComponentUpdateoperator= (const ComponentUpdate &other)
 Assignment (not implemented)
void init ()
 Initialise the list of fitting areas.
void clean ()
 Empty the list of fitting areas.

Private Attributes

ComponentUpdate::Type soltp_p
 Type of solution.
ComponentUpdate::Solve solve_p
 Solvable parameters.
Int nmodel_p
 Number of sources to fit.
Doubledt_p
 Work area for expression data.
ComponentList complist_p
 Component list to solve (note: a pointer to it)
PtrBlock< LSQaips * > fit_p
 List of solution fitting areas.

Static Private Attributes

static const Int N_unknown [N_Solve]
 List of number of unknowns for solvables.

Detailed Description

This class updates components in UV plane.

Intended use:

Public interface

 <h3>Review Status</h3><dl><dt>Date Reviewed:<dd>yyyy/mm/dd</dl> 

Prerequisite

Etymology

Component and Update

Synopsis

This class is an update machine for model components. The updating is done using UV-plane information (and, of course, already available calibration information). In principle all the elements of a component can be updated (like polarisation flux, position, etc), but certain combinations are more useful (and orthogonal enough) to be of practical use.

The update process works by comparing the theoretical UV-plane expectations of a model component, with the actual UV-plane data, and solve, in the least-squares sense) for the component data elements. In practice the full nodel sky, as known, is subtracted from the observed data, after which the solution for for differnces is done. This solution can proceed in a variety of ways:

Non-component sky models (like images) could be adjusted for their overall parameters (integrated flux, position) as well. This could be added at a later stage.

Not all of the different possibilities and adjustable parameters will be implemented initially.

Motivation

To provide an accurate way to adjust model component parameters from the observed data, using all the available data.

To Do

Definition at line 109 of file ComponentUpdate.h.


Member Enumeration Documentation

The different solvable parameters.

Enumerator:
ILM 

Solve for I and l,m.

N_Solve 

Number of solvable parameters.

Definition at line 122 of file ComponentUpdate.h.

The different solution types.

Enumerator:
SEPARATE 

Sove each source individually.

COMBINED 

Slove in one solution.

CLUSTER 

Solve in clusters of sources.

N_Type 

Number of options.

Definition at line 111 of file ComponentUpdate.h.


Constructor & Destructor Documentation

Default constructor -- update not possible without one or more set() methods.

Construct an update machine for the sources in the given ComponentList, using the 'separate' type of solution, and ILM solve.

Note that the component list must be a writable one to receive the updates.

Construct an update machine for the sources in the given ComponentList, using the specified sovables and the separate type.

Construct an update machine for the sources in the given ComponentList, using the specified type of solution and solvables.

Destructor.

Copy constructor (not implemented)


Member Function Documentation

void casa::ComponentUpdate::clean ( ) [private]

Empty the list of fitting areas.

void casa::ComponentUpdate::init ( ) [private]

Initialise the list of fitting areas.

void casa::ComponentUpdate::makeEquations ( const Array< DComplex > &  deriv,
const Vector< DComplex > &  data 
)

Create the solution equations.

For each series of UV points, provide the following information to the engine (we can speed it up later by having raw rather than Array type interface). Needed:

  • data: a vector(=data) of length equal to the number of UV points provided in one go (nuv) representing the observed residual data
  • A Cube with dimensions (3, nsource, nuv) (the 3 for the ILM case, but different for other solutions). nsource is the number of sources, and the 3 are the coefficients of the derivatives (in the default case the values provided should be X, 2pi.U.i.X and 2pi.V.i.X (i == sqrt(-1); X == the calculated UV plane value for the source model component). In this we solve dI/I, dl and dm. Order of indices is determined by VectorIterator...

Extra arguments possible: data weight.
Extra calls: Just provide list of data (and weight) and UVW coordinates. Calls to some Skymodel.visibility() and/or .derivative() would then suffice.
Improvements, by providing telescope rather than baseline based data; proper care taken analytically of integration over time and frequency.

ComponentUpdate& casa::ComponentUpdate::operator= ( const ComponentUpdate other) [private]

Assignment (not implemented)

Provide the solution (i.e.

dI/I and dl, dm) with errors (standard deviation of solution). The Matrices filled (and resized) are of sizes 3,nsource.


Member Data Documentation

Component list to solve (note: a pointer to it)

Definition at line 192 of file ComponentUpdate.h.

Work area for expression data.

Definition at line 190 of file ComponentUpdate.h.

List of solution fitting areas.

Definition at line 194 of file ComponentUpdate.h.

const Int casa::ComponentUpdate::N_unknown[N_Solve] [static, private]

List of number of unknowns for solvables.

Definition at line 182 of file ComponentUpdate.h.

Number of sources to fit.

Definition at line 188 of file ComponentUpdate.h.

Type of solution.

Definition at line 184 of file ComponentUpdate.h.

Solvable parameters.

Definition at line 186 of file ComponentUpdate.h.


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