VIS_FWDFIT - Forward-Fit Algorithm based on visibilities

The original forward-fit algorithm (by Aschwanden) starts with the assumption that there are a very limited number of individual sources, usually only one or two. The parameters describing each source (e.g., the flux, location, size, and orientation of an elliptical Gaussian) are adjusted until the model-predicted count rates agree best with the measured count rates in a ?2 sense.

The new visibility version of forward fit, VIS_FWDFIT or VF, adjusts the source parameters such that the model-predicted visibilities agree best with the measured visibilities. This approach offers fast determinations of these source parameters. However, as with any forward-fitting method, it is critical that the assumptions concerning the number of sources and their shapes match reality.


Using the VIS_FWDFIT algorithm at the command line:

Select algorithm  o->set, image_algorithm='vis_fwdfit'or 'vf' or 'fwd' or 'hsi_vis_fwdfit'
Object Class  HSI_VIS_FWDFIT
Extract Objectvf_obj = o->get(/obj,class='hsi_vis_fwdfit')  Extract the object used in the hsi_image object, o
Parameter Prefix 

vf, e.g.
vf_srcin = o->get(/vf_srcin)
vf_control = o->get(/vf, /control)
vf_info = o-> get(/vf, /info)
vf_all = o->get(/vf)

All parameter names specific to this algorithm have this prefix
Parameter Table  VIS_FWDFIT Object Parameter Table

List and short description of control and info parameters specific to this algorithm

The user supplies VIS_FWDFIT with an initial estimate of the source configuration.  The configuration can include one or two (or more?) sources that are a point source, a circular, elliptical, or loop shaped source, or an albedo source.  Each source is represented by a structure, srcstr, containing the following items:

srcstr.srctype:        Label defining source type:  ‘point’, ‘circle’, ‘ellipse’, ‘loop’ or ‘albedo’
srcstr.srcflux:         Semi-calibrated flux (ph/cm^/s)
srcstr.srcx:            Offset (+W) relative to sun center
srcstr.srcy:            Offset (+N) relative to sun center
srcstr.srcfwhm:       Source FWHM diameter
srcstr.eccen           Eccentricity of source
srcstr.srcpa:           Position angle (E of N) of long axis (deg)
srcstr.loop_angle:    Angle subtended by loop as viewed from center of curvature (deg)
srcstr.albedo_ratio   Ratio of albedo flux to the sum of the other primary source fluxes.
srcstr.srcheight:      Average height of other source components above the ‘albedo surface’

Not all of the tags are meaningful for all source types, e.g. a circle only uses the flux, x, y, and fwhm tags. To create the structure and populate it with values, you could do something like this:

srcstr = {hsi_vis_src_structure}
srcstr.srcflux = 1.
srcstr.srcx = 300.
srcstr.srcy = -500.
srcstr.srcfwhm = 5.

To create two input sources, you can supply an array of srcstr structures, e.g.

srcstr = replicate({hsi_vis_src_structure},2)

The source structure(s) are input to the image object by setting the vf_srcin control parameter, e.g.

o -> set, vf_srcin=srcstr

The output fitted source(s) are stored in the info parameter vf_srcout.  vf_srcout is a structure (or an array of structures for multiple sources) with the same tags as the input structure.  The sigmas on fitted source parameters are stored in the vf_sigma info parameter, and the reduced chi-square of the fit is stored in vf_redchi2.  They are retrieved via calls to get, e.g.

srcout = o -> get(/vf_srcout)
srcsigma = o -> get(/vf_sigma)
chi2 = o -> get(/vf_redchi2)



Source Representation in HSI_VIS_FWDFIT - Hurford, 2007, doc