0001 function d = rfactorWrapper(d, plotparams, parm, field);
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 [d,q] = logcal(d, 'rfactor');
0016 if (q)
0017 disp('r-factor correction has already been applied')
0018 disp(' ')
0019 d=checkstatus(d);
0020 return
0021 end
0022
0023
0024 parFlag = checkpar(parm, 'rfactor');
0025
0026 if(parFlag)
0027 flagParams = [parm.rfactor.maxVal parm.rfactor.slope parm.rfactor.smooth];
0028 else
0029 display('Using Default rfactor parameters');
0030 flagParams = [2 30 10];
0031 end
0032
0033
0034
0035 autoFlag = checkpar(parm, 'autorun');
0036 if(autoFlag)
0037 autoFlag = parm.autorun.flag;
0038 else
0039 autoFlag = 0;
0040 end
0041
0042
0043
0044 if(~isempty(find(d.index.blank.slow)))
0045 calc_rf = 1;
0046 else
0047 calc_rf = 0;
0048 end
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064 alphaType = parm.alpha.type;
0065 switch alphaType
0066 case 1
0067 selection = 'CLASSIC';
0068 case 2
0069 selection = 'POLONLY';
0070 otherwise
0071 selection = 'FILTERED';
0072 end
0073 disp(['Calling calculateStokes with ' selection ' flag'])
0074 d = calculateStokes(d,selection);
0075
0076
0077
0078 flags.old.bit = d.flags.bit;
0079
0080 if(autoFlag)
0081
0082 flags.new.bit.fast = zeros(size(flags.old.bit.fast));
0083 else
0084 flags.new.bit.fast = zeros(size(flags.old.bit.fast));
0085 end
0086
0087
0088 setPlotDisplay(plotparams.plot);
0089 [d outFlags] = packd(d, flags, 'none', 'rfactor', plotparams, 'R-Factor correction Plots', field);
0090
0091 d = setNewFlag(d, outFlags.new.out, 'rfactor');
0092 d = updateFlags(d, 1);
0093
0094 d = logcal(d, 'rfactor');
0095
0096
0097 d.antenna0.receiver = rmfield(d.antenna0.receiver, 'switchData');
0098
0099
0100 return;
0101
0102
0103
0104 function d=checkstatus(d)
0105
0106 disp('Would you like to view the plots?')
0107
0108 if (query)
0109 d = packd(d, [], 'none', 'rfactor', 0, 'R-Factor correction Plots', '');
0110 end
0111
0112 disp(' ')
0113
0114