Default parameters
A number of parameters can be accessed by the user to apply one of the three implemented imaging approaches.
User-defined parameters
All parameters which explicitly require to be set by the user are defined in the imaging.main_input_imaging
script. Additional instructions on how to set these values are provided in the documentation below and in the source code of this script, to be modified by the user.
- imaging.main_input_imaging
Main imaging utility script, to be configured by the user to run an experiment.
This file calls the generic imaging pipeline
imaging.imaging()
to reconstruct an image from the input dataset.- Parameters
srcName (string) – Name of the target source to be reconstructed as specified during data extraction, used to get the data and generate output files.
datasetNames (cell of string) – Name of the different datasets used (e.g., in the cases of different acquisition configurations or different observation times), to be set to
[]
if one data set is imaged & no name tag of the MS is given during data extraction.dataFilename (anonymous function) – Function handle taking a channel index as an input, and returning the name of the associated data
.mat
file (one file per frequency channel and dataset) following the nomenclature adopted during data extraction. Do not modify unless the nomenclature has been altered.idChannels2Image (array[int]) – Indices of the input (physical) channels to be imaged.
nChannelsPerImage (int) – Number of consecutive channels to be concatenated into each output (effective) channel (set to 1 if full spectral resolution is considered, i.e. number of output channels is equal to the number of input channels).
effChans2Image (cell array) – Cell array containing the ids of the input (physical) channels to be concatenated for each output (effective) channel. Set automatically if idChannels2Image and nChannelsPerImage are provided.
main_dir (string) – Directory of the Faceted-HyperSARA repository.
data_dir (string) – Directory of the input
.mat
data files. Default./Faceted-HyperSARA/data
.imaging_dir (string) – Directory of the imaging experiment. Default
./Faceted-HyperSARA/imaging
.calib_type (string) – calibration type: dde, die or [] if no results from a calib pre-processing step.
preproc_calib_dir (string) – Sub-directory in data_dir containing files from a calibration pre-processing step. To be set to
[]
if not used or not available.json_filename (string) – Name of the input
.json
configuration file specifying the value of the algorithm and measurement operators’ parameters (PDFB, reweighting, ellipsoid, projection, preconditioning, w-projection, noise estimation).param_global.im_Nx (int) – Number of pixels along axis x in the reconstructed image.
param_global.im_Ny (int) – Number of pixels along axis y in the reconstructed image.
param_global.im_pixelSize (double) – Pixel-size in arcsec. Set to
[]
to use the default value corresponding to 2 times the resolution of the observation (given by the longest baseline at the highest frequency).param_global.adjust_flag_noise (bool) – Flag to activate noise estimation on the fly in the case of unreliable noise statistics.
param_global.measop_flag_visibility_gridding (bool) – Flag to activate visibility gridding for data dimensionality reduction.
param_global.data_flag_apply_imaging_weights (bool) – Flag to read and apply imaging weights (e.g. Briggs, uniform) to data. Typically, these are stored in the
MS
asIMAGING_WEIGHTS
orIMAGING_WEIGHTS_SPECTRUM
. If one of these columns are found, imaging weights will be automatically extracted asnWimag
in the.mat
data file.param_global.algo_solver (string) – Name of the imaging approach used. Possible values are
"fhs"
(Faceted-HyperSARA),"hs"
(HyperSARA) and"sara"
(SARA). Default: monochromatic imaging"sara"
, wideband imaging"fhs"
.param_global.facet_Qx (int) – Number of spatial facets along spatial axis x. Active only in
"fhs"
. If the field is not specified, the maximum possible number of facets will the selected along the y axis.param_global.facet_Qy (int) – Number of spatial facets along spatial axis y. Active only in
"fhs"
. If the field is not specified, the maximum possible number of facets will the selected along the y axis.param_global.facet_overlap_fraction (double[2]) – Fraction of the total size of facet overlapping with a neighbouring facet along each axis (y and x) for the faceted low-rankness prior. Active only in
"fhs"
. Will be reset automatically to[0, 0]
if the spatial faceting is not active in"fhs"
along at least one dimension (i.e.,param_global.facet_Qy = 1
and/orparam_global.facet_Qx = 1
).param_global.facet_subcubeInd (int) – Index of the subcube to be reconstructed (if spectral faceting is used). To be set to
0
otherwise.param_global.reg_gam (double) – Additional multiplicative factor affecting the joint average sparsity regularization term in
"fhs"
and"hs"
. Additional multiplicative factor affecting the average sparsity regularization term in"sara"
.param_global.reg_gam_bar (double) – Additional multiplicative factor affecting low-rankness prior regularization parameter. Active only in
"fhs"
and"hs"
.param_global.reg_flag_reweighting (bool) – Flag to activate the re-weighting procedure. Default set to
true
.param_global.reg_nReweights (int) – Maximum number of reweighting iterations.
param_global.parcluster (string) – Name of the parallel parcluster profile to launch the parpool. By default
"local"
profile is used. The user should set it to the name of the slurm parcluster profile created on his/her HPC machine, if prefered.param_global.algo_flag_computeOperatorNorm (bool) – Flag to activate computation of the measurement operator norm, default, true.
param_global.algo_flag_saveOperatorNorm (bool) – Flag to activate saving of the measurement operator norm, default, false.
param_global.algo_flag_solveMinimization (bool) – Flag to trigger the solver, true.
param_global.preproc_filename_noise_std (anonymous function) – Function handle, taking the indices of the physical channel and the dataset, and returning a string corresponding to the name of a file containing noise statistics obtained from a pre-processing step. Expected vars:
sigma
: the standard deviation of the noise,RESIDUAL
: (optional) the residual visibilities from a pre-processing step. If not used, should be set to[]
.param_global.preproc_filename_cal_solutions (anonymous function) – Function handle, taking the indices of the physical channel and the dataset, and returning a string corresponding to the name of a file containing DDE/DIE calibration solutions. Expected var:
DDEs
: complex array if DDE calibration andDIEs
: complex vector if DIE calibration . If not used, should be set to[]
.param_global.preproc_filename_model (anonymous function) – Function handle, taking the indices of the first and last physical channels, associated with an effective (output) channel, and returning the name of a file containing a model image to be used to initialize the reconstruction algorithm. If not used, should be set to
[]
.
Example
%% Examples to set the input (physical) and output (effective) channels IDs %% Option 1: provide `effChans2Image` a cell array containing the ids % of the physical channels to be concatenated for each effective channel. % example a: two effective channels, containing two physical % channels each effChans2Image = {[1,2], [3,4]}; % example b: one effective channel with one physical channel effChans2Image = {[1]}; %% Option 2: provide all ids of physical channels `nChannelsPerImage` & number % of channel per effective channel `nChannelsPerImage`. The list of the ids % of the physical channels to be concatenated for each effective % channel `effChans2Image` will be created automatically. % example c: subcube 1 (first channel from each spectral % window (in this example two spectral windows are flagged). % The number of output (effective) channels is equal to the number % of input (physical) channels idChannels2Image = [1:16:272, 289:16:304, 321:16:512]; nChannelsPerImage = 1; % example d: reduced imagecube containing 30 effective channels % each combining 16 physical channels. % In this example the number of output (effective) channels is reduced to 30 from % 480 input (physical) channels. idChannels2Image = [1:272, 289:304, 321:512]; nChannelsPerImage = 16;
Warning
Data files (example:
'data_ch_1.mat'
) are expected to contain the following variables :y
(complex vector of visibilities, Stokes I),u
,v
,w
(arrays of \(uvw\)-coordinates), maxProjBaseline (double, maximum projected baseline),nW
(noise whitening vector),frequency
(associated frequency) andnWimag
(optional, imaging weights such as uniform of Briggs)..Extracted data
y
are not whitened (i.e. natural weights not applied).The variables
maxProjBaseline
and the \(uvw\) coordinates are in units of the wavelength (i.e. normalised by the associated wavelength).When spectral faceting is enabled, run
imaging/main_input_imaging.m
for each sub-cube, by updating the ID of the sub-cube to imageparam_global.facet_subcubeInd
along with the associated channel frequencieseffChans2Image
.
Default values of the parameters listed below are included in imaging/default_parameters.json
. These will be utilised unless the user updates them directly or alternatively specifies them in imaging.main_input_imaging
, in such case, they will be overwritten.
Global parameters
- reg_flag_reweighting: true
Flag to activate the re-weighting procedure.
- measop_flag_wproj: false
Flag to activate w-projection.
- measop_flag_visibility_gridding: false
Flag to activate visibility gridding for data dimensionality reduction.
- adjust_flag_noise: false
Flag to estimate the effective noise level on the fly, activate only when reliable noise estimates are not available.
- data_flag_apply_imaging_weights: false
Flag to apply imaging weights to the data (such as uniform or Briggs, if available) and to incorporate them in the measurement operator. Natural weighting is adopted by default.
- algo_flag_computeOperatorNorm: true
Flag to compute the spectral norm of the measurement operator.
- algo_flag_saveOperatorNorm: true
Flag to save the spectral norm of the measurement operator.
- algo_flag_solveMinimization: true
Flag to run imaging.
- parcluster: “local”
Name of the parcluster profile.
- preproc_filename_noise_std: []
Filename of the estimated noise level.
- preproc_filename_cal_solutions: []
Filename of the DDE calibration kernels.
- preproc_filename_model: []
Filename of the initial image estimate.
Inner algorithmic parameters
The parameters listed below, defined in the imaging/default_parameters.json
file, specify the configuration in which the reweighting scheme and the primal-dual forward-backward (PDFB) algorithm are applied in the selected imaging approach. They also include the parameters involved in the w-projection to update the measurement operator, and the parameters involved in the estimation of the noise level on the fly in the PDFB algorithm, when available noise statistics are unreliable.
Default values can be overwritten by providing the name of a new .json
file to the imaging.main_input_imaging
configuration script (see the variable json_filename
). Note that all the fields specified in imaging/default_parameters.json
are required to be able to run the imaging pipeline.
Warning
The user is encouraged to use the default values provided in imaging/default_parameters.json
(particularly the list provided below) unless precisely aware of their impact on the reconstruction process.
Reweighting scheme [Candes2009]
- min_iter1
Minimum number of reweighting iterations.
- max_iter10
Maximum number of reweighting iterations.
- rel_var1e-4
Stopping criterion (relative variation of the objective function over two consecutive reweighting steps).
- alpha1
Additional
- backup_frequency1
Number of iterations after which all the variables within the algorithm are saved (for a warm-restart).
- verbose2
Run the algorithm in verbose mode (0: no information displayed, 1: partial information displayed, 2: most verbose state).
See src.sara.sara()
, src.hs.hyperSARA()
and src.fhs.facetHyperSARA()
for further details.
Primal-dual forward-backward algorithm (PDFB) [Condat2013, Vu2013, Pesquet2014]
- min_iter10
Minimum number of iterations.
- max_iter2000
Maximum number of iterations.
- rel_var1e-5
Stopping criterion (relative variation of the objective function). This criterion needs to be satisfied jointly with the data-fidelity criterion encoded in
fidelity_tolerance
.- fidelity_tolerance1.01
Data fidelity cirterion (norm of the residual in each data block is within
fidelity_tolerance
of the radius of the associated \(\ell_2\)-ball constraint). This criterion needs to be satisfied jointly with the relative variation criterion encoded inrel_var
.- rel_var_low5e-6
Additional relative variation criterion, taking precedence over
rel_var
andfidelity_tolerance
. This criterion avoids configurations in which the iterates are trapped in a local minimum, and very slowly evolve to satisfy the data-fidelity constraints.
See src.sara.sara()
, src.hs.hyperSARA()
and src.fhs.facetHyperSARA()
for further details.
Non-uniform fast Fourier transform (NUFFT) [Fessler2003]
- ox2
Fourier oversampling factor along the axis x.
- oy2
Fourier oversampling factor along the axis y.
- Kx7
Size of the NUFFT interpolation kernel along axis x.
- Ky7
Size of the NUFFT interpolation kernel along axis y.
- kernel“minmax:tuned”
Name of the selected NUFFT interpolation kernel. Possible options include
kaiser
,minmax:kb
andminmax:tuned
. See associated documentation of the lib.operators.op_nufft function from the RI-measurement-operator module.
Preconditioning (instrumental in PDFB) [Onose2017]
- gen_uniform_weight_matrixtrue
Flag to activate the generation of uniform weights (to be kept active)
- uniform_weight_sub_pixels1
Parameter to consider sub-pixel weights in the uniform weighting scheme.
See associated documentation of the lib.utils.util_gen_preconditioning_matrix function from the RI-measurement-operator module.
Ellipsoid projection (instrumental in PDFB) [Onose2017]
- min_iter1
Minimum number of iterations.
- max_iter20
Maximum number of iterations.
- eps1e-8
Stopping criterion based on the relative variation of the objective function (associated with the projection problem).
See associated documentation of the lib.utils.solver_proj_elipse_fb from the RI-measurement-operator module.
Wavelet dictionary (SARA dictionary by default) [Carrillo2012]
- basis[“db1”, “db2”, “db3”, “db4”, “db5”, “db6”, “db7”, “db8”, “self”]
Name of the wavelet dictionaries considered (“self” corresponding to the Dirac basis). By default, contains the list of wavelets defining the SARA dictionary [Carrillo2012]. Whenever used, the Dirac basis needs to be specified in last.
- nlevel4
Number of decomposition scales considered.
- filter_length[2, 4, 6, 8, 10, 12, 14, 16, 0]
Length of the filters corresponding to the selected wavelet dictionaries, where by convention 0 corresponds to the Dirac basis.
See associated documentation in the SARA-dictionary module.
Noise estimation on the fly
- min_iter100
Minimum number of iterations.
- rel_var1e-3
Tolerance to adjust the noise estimate.
- start_iter: 500
Iteration numbers to force triggering the noise estimation.
- change_percentage: 0.5
The weight of the update w.r.t the l2 norm of the residual data.
- start_change_percentage: 0.1
The weight of the update w.r.t the l2 norm of the residual data, if noise level update triggered at start_iter .
\(w\)-projection parameters [Dabbech2017]
- measop_wprojCEnergyL20.9999
Sparsification levels for the \(w\) kernel, to be selected in the interval \([0.99, 1]\).
- measop_wprojGEnergyL20.9999
Sparsification levels for convolution kernels involved in the degridding matrix \(G\) after \(w\)-correction. To be selected in the interval \([0.99, 1]\).