Skip to content
Gijs Molenaar edited this page Feb 13, 2014 · 4 revisions

MeqParm

MeqParm initrec

The definiton of default and init has changed. When initializing, a Parm will first look for a table entry, then for an init_funklet and as a last resort fall back on a default_value. If nothing was specified default_value=1 is assumed. Also new is the possibility to set the shape of a polc-like funklet. If the shape field is filled, this shape is forced on the polc, even if it was initialised with a different shape. I.e. you can now in a first iteration solve for a n x m Polc and store the results in a table. If you decide to solve in a second iteration for a polc with shape n+-i x m+-j, you just set the shape field of the parm. The Polc will be initialized for the coefficients that are available from the table and the others will be set to 0. Shape will be ignored for non-polclike funklets (i.e. functionals).

  • init_funklet: if the MeqParm is not found in table_name, set its Funklet to whatever you put here.
  • default_value: if no init_funklet is found this will result in a init with Polc(default_value).
  • shape: after initialisation, the shape of a polclike funklet is forced to take this shape. NOTE: the shape is 1 based, i.e. values should be larger than 0. eg. shape=[1,3] returns a 1x3 polc.
  • table_name: string (or hiid referring to string in forest_state) that represents the directoryname of the MEP table in which the MeqParm must be stored.
  • node_groups: group of the MeqParm. It makes sense to set this to 'Parm'
  • tiling: specifies how many channels/timeslots should be in a tile. This is specified in a record, for example: tiling=record(time=10,freq=64) specifies that tiles should be 10 timeslots long and 64 channels wide. If one wants a tile over the full frequency domain, freq should be omitted. If one wants a tile over the full time domain, time should be omitted.
  • auto_save: if True (default = False) the updated coefficients are stored every iteration.
  • reset_funklet: if True (default = False) the Parm is reinitialised from the default_value or init_funklet field, even if an entry was found in the parmtable. If a matching entry exists in the table, its value will be overwritten after convergence.
  • use_previous: if 1 (default) the Parm is initialised with the solution of the previous timeslot (if available) instead of its default funklet, this will not happen if converged == False, i.e. the previous solution did not converge. The converge flag is only updated if last_update is true for the solver. See ["MeqSolver"] for more information. You can ignore convergence (i.e. always use the last solution) by setting use_previous >1. If reset_funklet is also true, the parm wil stil be initialised from the previous solution.
  • save_all: controls saving of non-converged solutions, if true (default=false) funklet is saved also if solver did not converge.
  • constrain: vector of 2 doubles that give the min and max for constant solvable funklets. Forces the C_00 to stay within these constraints. Also works for tiled constant funklets. You can also set the constrain_min and constrain_max values individually. Forces the C_00 to stay within these constraints. Also works for tiled funklets. NOTE: Only the C_00 value is constrained, not the value of the Parm. So if your funklet has more coefficients, the value of the parm can very well lie outside the constrain region.
  • force_positive: forces constant solvable funklets to be positive. The C_00 is replaced by abs(c_00). Also works for tiled constant funklets.
  • solve_domain: If a parameter is solvable, its domain is changed automatically to a small domain (default =[0,1]), by defining suitable offsets and scales (only true for predefined funklets like Polc and PolcLog). If needed, the coefficients of the funklet are transformed accordingly. The user can define its own solve_domain in the state record. The offsets and scales are stored in the ParmTable.
  • ignore_time: Ignores Time of Domain when searching for a funklet in the table. Useful for solutions of calibration runs.
  • cache_funklet: default = False. Keep the funklet in memory, only affects non-solvable parms.
Clone this wiki locally