File: fb_example.yaml

package info (click to toggle)
purify 5.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 186,836 kB
  • sloc: cpp: 17,731; python: 510; xml: 182; makefile: 7; sh: 6
file content (71 lines) | stat: -rw-r--r-- 4,511 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
### Config file for Purify
Version: 4.2.0
GeneralConfiguration:
  InputOutput:
    input:
      # If the following parameter is "measurements", only the measurements block should
      # be provided, and the measurements will be read from file. If it's "simulation", only the
      # simulation block should be provided, and random measurements of the given
      # image will be generated with the requested noise.
      source: measurements # one from measurements, simulation
      measurements:
        measurements_files:
          - local/data/expected/fb/input_data.vis # path to the measurement set
        w_term: false
        measurements_polarization: I # one from I Q V XX LL
        measurements_units: radians # one from lambda, radians, pixels
        measurements_sigma: 0.0238 # the uncertainty of a visibility (RMS noise of the real or imaginary part of the visibility in Jy)
        warm_start: "" #path to fits file image of previous purify solution (assumig the same cell size), otherwise leave as an empty quotation ""
    output_prefix: local/data/expected/fb/ # results directory will be created inside this path, and called output_<timestamp>

  ### Execution parameters
  logging: debug # How much logging you want (debug, critical, ..). debug maybe the most useful in some cases because it gives the most output.
  iterations: 100 # number of iterations (>= 0). More iterations can give better results.
  epsilonScaling: 1 # factor to scale measurements_sigma by. We suggest 1, but it can be useful to change.

########## Measure Operators ##########
MeasureOperators:
  pixelSize: #pixel size in arcseconds. This should be estimated from the longest baseline (PURIFY should print out a suggestion)
    cellsizex: 1
    cellsizey: 1
  imageSize: # for the moment: power of two . For a simulation or when using a warm start, this must be same image size as the ground truth
    width: 128
    height: 128
  J: # Interpolation pixels for the anti-aliasing kernel (default 4x4). Input either a value or pair  (J == 6 is the only option for pswf)
    Jx: 4
    Jy: 4
    Jw: 30 #Maximum size of w kernel
  kernel: kb # kernel, choose between: kb, Gauss, box, pswf 
  oversampling: 2 # value > 1. Value of 2 is the standard
  gpu: False #This can be used when compiled with arrayfire gpu library
  powermethod:
    iters: 1000 # value > 0. This is the maximum number of iterations used with the power method for calculating the measurement operator norm.
    tolerance: 1e-5 # value > 0. This is the tolerance for convergence of the operator norm
    eigenvector: #Here we can choose real and imaginary fits images of the operator eigenvector associated with the operator norm. This speeds up convergence for repeat runs.
      real:  ""
      imag:  ""
  wide-field:
    wprojection: False # using radially symmetric w projection kernel
    mpi_wstacking: False # applies average w-stack correction on each node (always True with wprojection)
    mpi_all_to_all: False # performs all to all operation of the grid to even out computation. Highly recommended when using MPI for wide-field imaging!
    conjugate_w: True #reflects measurements onto the positive w-domain (can reduce computation)
    kmeans_iterations: 100 #number of iterations in w-stacking clustering algorithm

########## SARA ##########
SARA:
  # wavelet bases, to choose from: Dirac, DB1, ..., DBn (where n=0 is dirac, and 1 <= n <= 35 is DB basis)
  wavelet_dict: 0..8 # sequence of desired basis: 0,23,31 or 0,12..16,20 . We typically use 0..8, this gives good results but will be expensive for large images.
  wavelet_levels: 4 # maximum number of wavelet levels for each dictionary. More levels can be good for increasing quality of large scale structures in an image (we recommend 4 to 6).
  realValueConstraint: True # Boolean, we recommend this to be True for Stokes I
  positiveValueConstraint: True # Boolean, we recommend this to be True for Stokes I

AlgorithmOptions:
  algorithm: fb # will just read the options of that one. We recommend the primal dual algorithm, especially for large image sizes.
  fb: #solve the unconstrained problem
    mpiAlgorithm: none # one of none, serial-equivalent
    regularisation_parameter: 0.0001
    stepsize: 0.00056448
    relVarianceConvergence: 1e-2 # (>0) relative convergence of the objective function
    dualFBVarianceConvergence: 1e-3 # (>0) relative convergence tolerance of l1 proximal
    nonDifferentiableFunctionType: l1
    differentiableFunctionType: l2