0001
0002
0003
0004
0005
0006
0007
0008 LL = [d.antenna0.roach1.LL,fliplr(d.antenna0.roach2.LL)];
0009 RR = [d.antenna0.roach1.RR,fliplr(d.antenna0.roach2.RR)];
0010 L1 = [d.antenna0.roach1.load1,fliplr(d.antenna0.roach2.load1)];
0011 L2 = [d.antenna0.roach1.load2,fliplr(d.antenna0.roach2.load2)];
0012
0013 QQ = [d.antenna0.roach1.Q,fliplr(d.antenna0.roach2.Q)];
0014 UU = [d.antenna0.roach1.U,fliplr(d.antenna0.roach2.U)];
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 happy='n'
0026 while(happy=='n')
0027
0028 figure
0029 plot(mean(LL'))
0030 hold all
0031 plot(mean(RR'))
0032 disp('Now pick time ranges that you want to exclude from the data. Press return when done')
0033
0034 [x,y]=ginput
0035
0036
0037 for i=1:2:length(x)
0038 LL(x(i):x(i+1),:)=NaN;
0039 RR(x(i):x(i+1),:)=NaN;
0040 QQ(x(i):x(i+1),:)=NaN;
0041 UU(x(i):x(i+1),:)=NaN;
0042 L1(x(i):x(i+1),:)=NaN;
0043 L2(x(i):x(i+1),:)=NaN;
0044 end
0045 figure
0046 plot(mean(LL'))
0047 hold all
0048 plot(mean(RR'))
0049 happy = input('Happy? (y/n) ', 's');
0050 end
0051
0052
0053 happy='n'
0054 while(happy=='n')
0055
0056 figure
0057 plot(mean(QQ'))
0058 hold all
0059 plot(mean(UU'))
0060 disp('Now pick time ranges that you want to exclude from the data. Press return when done')
0061
0062 [x,y]=ginput
0063
0064
0065 for i=1:2:length(x)
0066 LL(x(i):x(i+1),:)=NaN;
0067 RR(x(i):x(i+1),:)=NaN;
0068 QQ(x(i):x(i+1),:)=NaN;
0069 UU(x(i):x(i+1),:)=NaN;
0070 L1(x(i):x(i+1),:)=NaN;
0071 L2(x(i):x(i+1),:)=NaN;
0072 end
0073 figure
0074 plot(mean(QQ'))
0075 hold all
0076 plot(mean(UU'))
0077 happy = input('Happy? (y/n) ', 's');
0078 end
0079
0080
0081 dodgyU=(UU<=-6e4);
0082 UU(dodgyU)=NaN;
0083 dodgyQ=(QQ<=-6e4);
0084 QQ(dodgyQ)=NaN;
0085
0086 goodchans = [8:61,68:125];
0087 mask=ones(1,128);
0088 mask(goodchans) = 0;
0089 mask=logical(mask);
0090 mask = ~mask;
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100 addpath('./Angelas_Raster_Code')
0101 happy='n'
0102 while(happy=='n')
0103
0104 LL(:,~mask)=NaN;
0105 RR(:,~mask)=NaN;
0106 QQ(:,~mask)=NaN;
0107 UU(:,~mask)=NaN;
0108 close all
0109 figure
0110 subplot(2,2,1)
0111 plot(nanstd2(RR))
0112 title('RR')
0113 subplot(2,2,2)
0114 plot(nanstd2(LL))
0115 title('LL')
0116 subplot(2,2,3)
0117 plot(nanstd2(UU))
0118 title('UU')
0119 subplot(2,2,4)
0120 plot(nanstd2(QQ))
0121 title('QQ')
0122 badchans = input('identify other bad chans: e.g.[75 96 24] ');
0123 mask(badchans)=0;
0124
0125 happy = input('Happy? (y/n) ', 's');
0126 close all
0127 end
0128
0129
0130
0131
0132 d.antenna0.receiver.data(:,1)= nanmean((LL(:,mask)-L2(:,mask))');
0133 d.antenna0.receiver.data(:,6)= nanmean((RR(:,mask)-L1(:,mask))');
0134 d.antenna0.receiver.data(:,2)= nanmean(QQ(:,mask)');
0135 d.antenna0.receiver.data(:,3)= nanmean(UU(:,mask)');
0136 d.antenna0.receiver.data(:,4) = d.antenna0.receiver.data(:,2);
0137 d.antenna0.receiver.data(:,5) = d.antenna0.receiver.data(:,3);
0138 d.antenna0.receiver.utc=d.antenna0.roach1.utc;
0139
0140
0141 nchan=4
0142 plot_labels = {'LL','RR','QQ','UU'};
0143 chan_order=[1 6 2 3];
0144
0145 trigpoint =0
0146
0147 if (trigpoint==1)
0148
0149
0150
0151
0152 az_trig=16
0153 el_trig=6.5
0154
0155
0156 d.azOffSave = (d.antenna0.servo.apparent(:,1)-az_trig).*cosd(d.antenna0.servo.apparent(:,2));
0157 d.elOffSave = d.antenna0.servo.apparent(:,2)-el_trig;
0158 d.angle = sqrt(d.elOffSave.^2 + d.azOffSave.^2);
0159
0160 else
0161 azApp = interp1(d.antenna0.tracker.utc, ...
0162 d.antenna0.tracker.horiz_topo(:,1), d.antenna0.roach2.utc);
0163 azOffSave = azApp - d.antenna0.servo.apparent(:,1);
0164 azOffSave = -azOffSave;
0165 azOffSave = azOffSave.*cos(d.antenna0.servo.el*pi/180);
0166
0167 elApp = interp1(d.antenna0.tracker.utc, ...
0168 d.antenna0.tracker.horiz_topo(:,2), d.antenna0.roach2.utc);
0169 elOffSave = elApp - d.antenna0.servo.apparent(:,2);
0170 elOffSave = -elOffSave;
0171 d.angle = sqrt(elOffSave.^2 + azOffSave.^2);
0172 d.elOffSave = elOffSave;
0173 d.azOffSave= azOffSave;
0174
0175 end
0176
0177 draster.antenna0.receiver.data(:,1)=d.antenna0.receiver.data(d.index.beammap.fast,1);
0178 draster.antenna0.receiver.data(:,6)=d.antenna0.receiver.data(d.index.beammap.fast,6);
0179 draster.antenna0.receiver.data(:,2)=d.antenna0.receiver.data(d.index.beammap.fast,2);
0180 draster.antenna0.receiver.data(:,3)=d.antenna0.receiver.data(d.index.beammap.fast,3);
0181
0182 draster.elOffSave=d.elOffSave(d.index.beammap.fast);
0183 draster.azOffSave=d.azOffSave(d.index.beammap.fast);
0184
0185
0186
0187
0188 pixel_size = 0.1;
0189
0190 azmin = -10;
0191 azmax = +10;
0192 elmin = -10;
0193 elmax = +10;
0194 nanflag = isnan(draster.antenna0.receiver.data(:,1));
0195 flag = ~nanflag;
0196 colLR = 1e5;
0197 colQU = 1e2;
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208 for i=1:4
0209 j=chan_order(i);
0210 [TauAmap{i}, xidx, yidx, TauAmapIdx{i}] = bin_quickly2d(azmin, azmax, elmin, elmax, pixel_size,...
0211 draster.azOffSave(flag), draster.elOffSave(flag),draster.antenna0.receiver.data(flag,j));
0212 figure(3)
0213 subplot(2,2,i)
0214 if i<3
0215 clim=[0.5e4 colLR];
0216 else
0217 clim=[-colQU colQU];
0218 end
0219
0220
0221 imagesc(fliplr(xidx),fliplr(yidx),TauAmap{i})
0222
0223
0224
0225 colormap('default')
0226 colorbar
0227 title(plot_labels{i})
0228 axis square
0229 figure(4)
0230 subplot(2,2,i)
0231
0232 contour(fliplr(xidx),yidx,TauAmap{i})
0233
0234 title(plot_labels{i})
0235 axis square
0236
0237 end
0238
0239
0240 LL(:,mask)=NaN;
0241 RR(:,mask)=NaN;
0242 QQ(:,mask)=NaN;
0243 UU(:,mask)=NaN;
0244
0245 mask=flagmask(mask, LL, RR, QQ, UU);
0246 display('Flagging channels: ')
0247 find(mask)
0248
0249
0250 std_start=2.156e4
0251 std_stop=4.479e4
0252
0253 stdQQ = std(QQ(std_start:std_stop,:));
0254 stdUU = std(UU(std_start:std_stop,:));
0255 stdLL = std(LL(std_start:std_stop,:)-L2(std_start:std_stop,:));
0256 stdRR = std(RR(std_start:std_stop,:)-L1(std_start:std_stop,:));
0257
0258 stdI1 = std(d.antenna0.receiver.data(std_start:std_stop,1));
0259 stdI2 = std(d.antenna0.receiver.data(std_start:std_stop,6));
0260
0261
0262 load_start1 = 2.96e4
0263 load_stop1 = 4.462e4
0264 mean1_L1 = mean(L1(load_start1:load_stop1,:))
0265 mean1_L2 = mean(L2(load_start1:load_stop1,:))
0266
0267
0268 load_start2 = 7.02e4
0269 load_stop2 = 8.057e4
0270 mean2_L1 = mean(L1(load_start2:load_stop2,:))
0271 mean2_L2 = mean(L2(load_start2:load_stop2,:))
0272
0273 load_step_L1 = mean2_L1 - mean1_L1;
0274 load_step_L2 = mean2_L2 - mean1_L2;
0275
0276
0277 loadK = 1.6920
0278
0279 loadK_units_L1 = loadK./load_step_L1;
0280 loadK_units_L2 = loadK./load_step_L2;
0281
0282 rmsQQ = loadK_units_L1.*stdQQ;
0283 rmsUU = loadK_units_L1.*stdUU;
0284 rmsLL = loadK_units_L2.*stdLL;
0285 rmsRR = loadK_units_L1.*stdRR;
0286 plot(rmsQQ)