0001 function d = calculateStokes(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 d = varargin{1};
0012 selection = varargin{2};
0013 if nargin == 2
0014 r = [1;1];
0015 else
0016 r = varargin{3};
0017 end
0018
0019 if strcmp(selection,'CLASSIC')
0020 d = DD(d,r);
0021 end
0022
0023 if strcmp(selection,'FILTERED')
0024 if d.antenna0.receiver.utc(1) < tstr2mjd('01-oct-2011:00:00:00')
0025 disp('calculateStokes:: Cannot apply FILTERED option to data before October 2011')
0026 else
0027
0028 end
0029 end
0030 if strcmp(selection,'POLONLY')
0031
0032 end
0033
0034 end
0035
0036 function d = DD(d,r)
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 if size(d.antenna0.receiver.data,2) ~= 10
0049 display('calculateStokes::DD:: R-factor should not be applied to this data');
0050 display('calculateStokes::DD:: Either you are trying to do alpha PolOnly');
0051 display('calculateStokes::DD:: Or you need to run assembleAlphaStreams');
0052 display('calculateStokes::DD:: and applyAlpha with "CLASSIC" option.')
0053 return;
0054 end
0055
0056 swd = d.antenna0.receiver.data;
0057 d.antenna0.receiver.data = zeros(size(d.antenna0.receiver.data,1),8);
0058
0059 d.antenna0.receiver.data(:,1) = swd(:,1)-r(1)*swd(:,2);
0060 d.antenna0.receiver.data(:,8) = swd(:,9)-r(2)*swd(:,10);
0061
0062
0063 d.antenna0.receiver.data(:,2) = swd(:,3);
0064 d.antenna0.receiver.data(:,3) = swd(:,4);
0065 d.antenna0.receiver.data(:,4) = swd(:,5);
0066 d.antenna0.receiver.data(:,5) = swd(:,6);
0067 d.antenna0.receiver.data(:,6) = swd(:,7);
0068 d.antenna0.receiver.data(:,7) = swd(:,8);
0069
0070 end