Visibility Comparison Plots

Last update: June 19, 2017

This document describes the visibility comparison plots that are available in the RHESSI software as of June 7, 2017. 

Description of Plots

The visibility comparison plots show the observed visibility amplitudes and errors overlaid by the visibilities computed from an image.   These plots are similar to the plot that the VIS FWDFIT image reconstruction algorithm produces, but can be generated for any image reconstruction algorithm, both visibility-based and not.  The observed visibilities have been filtered (edited for outliers, conjugate combined, and normalized) if those options are selected and regularized (photon or electron) if selected.  The visibilities from the image are computed using the vis_map2vis IDL routine.

The plot above shows the format of the new plot for an image generated by the VIS_FWDFIT algorithm. The amplitudes of the visibilities for all detectors are displayed. The red outline identifies the detectors that were used to make the image (1-6 in this case).  For visibility-based image algorithms, the white Xs for the detectors used in the image are the visibilities used to make the image. For non-visibility-based algorithms, the white Xs show the visibilities computed using the current settings of the detector, edit, combine, normalize, and vis type options in the image object. The normalization for the detectors used in the image is based only on those detectors. For the detectors not used in the image, the normalization is based on all detectors.  

The blue vertical bars show the 1-sigma error on the visibility amplitudes. The red diamonds show the visibilities computed from the image using vis_map2vis. The green triangles show the vector difference between the observed amplitudes and the image amplitudes ( sqrt(xdiff^2 + ydiff^2) ).

A chi-square comparison is computed and displayed for all detectors, for each detectors separately, and for the detectors used in the image. The chi-square is computed as:

chi-square = total( ( (vismapx-visx)^2 + (vismapy-visy)^2 ) / sigamp^2 ) / (nvis-1)

where vismapx, vismapy are the real, imaginary parts of the visibilities from the image, visx,visy are the real, imaginary parts of the observed visibilities, sigamp  is the sigma on the amplitude of the observed visibilities, and nvis is the number of visibilities.

Generating the Plots

In the RHESSI GUI, there is a button selection to send the visibility comparison plot to the screen or a PS file WHILE the images are being generated.  (Unfortunately the plot for each image goes to a separate PS file for each image in a cube, not one multi-page file.) There is also a button under the Display pull-down menu to display the plot on the screen for the most recent image made.

From the command line, you can call the hsi_image_vis_plot routine for any image in the image object. There are a number of keywords arguments that you can call hsi_image_vis_plot with - please see the header of the routine for details.  For example:

hsi_image_vis_plot, imobj=imobj, tb_index=3, eb_index=5, /ps

will send the plot for the image in the image object imobj for the 4th time bin, 6th energy bin to a PostScript file.

Parameters that control the generation of these plots from the object are:

viscomp_show_plot  If set, generate the visibility comparison plot while making the image(s)
viscomp_window  Window ID to draw viscomp plot in (set to -1 to open a new window)
viscomp_ps_plot  If set, output plot to PS file (auto-generated name)
viscomp_ps_dir  Directory to write PS file in (default is current directory)

The value of these parameters in the image object are used when you call the hsi_image_vis_plot routine, unless you override them through keyword arguments. (e.g. if viscomp_ps_plot is set to 1 in the object,  call hsi_image_vis_plot with ps=0 to send the plot to the screen.)

When plotting to the screen, the plots are directed to the window defined in the viscomp_window parameter and each new plot will replace the contents of that window.  To force the next plot to be drawn in a new window (e.g. you want to compare two plots and have them both displayed on the screen), set that parameter to -1:

imobj->set, viscomp_window=-1

By default, the y axis maximum is based on the amplitudes of the observed visibilities in the coarsest detectors to avoid scaling to bad values from the image. Use the yrange keyword argument to set it yourself.


(Note: widen Browser screen to see plots side-by-side.)

If we make a CLEAN image for 25-Sep-2011 03:30:07.467-03:30:47.261 12-25 keV using the default detectors (4,5,6,7,8),  (note: we also set clean_beam_width_factor=2 and clean_regress_combine=1) we get the following image and visibility comparison plot.


We can see that the detector selection should be modified since the visibilities for Detectors 1-3 show structure and Detectors 7-9 don't contribute much. 

If we remake the image with Detectors 1-6, we get the following:


The image now shows the fine structure, but we can see in the visibility comparison plot that for Detectors 1 and 2, the image peaks are not as narrow and high as the observed peaks. 

If we make the same image with the loop option in VIS_FWDFIT, we get a very narrow loop (~2 arcsec FWHM) and the visibility plot shows that the image visibilities track the structure in the observed visibilities for the finer detectors better.


Last Update: June 19, 2017,  Kim Tolbert