Home > rfi_tuning > read_posflag.m

read_posflag

PURPOSE ^

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SYNOPSIS ^

function [d pointFlag galacticFlag sunFlag moonFlag] =read_posflag(startTime,endTime)

DESCRIPTION ^

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  function  [...] = read_posflag(xxx)

   Jan 27, 2012 (MAS) - Created.

   Reads in some data, then flags based upon position.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [d pointFlag galacticFlag sunFlag moonFlag] = ...
0002     read_posflag(startTime,endTime)
0003 
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %  function  [...] = read_posflag(xxx)
0006 %
0007 %   Jan 27, 2012 (MAS) - Created.
0008 %
0009 %   Reads in some data, then flags based upon position.
0010 %
0011 %
0012 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0013 
0014 % Maximum radii (in degrees) four sources:
0015 pointRad = 1.;
0016 galRad = 10.;
0017 sunRad = 5.;
0018 moonRad = 5.;
0019 
0020 
0021 % Choose the necessary registers.
0022 regs={ ...
0023     'array.frame.utc double',...
0024     'array.weather.pressure double',...
0025     'array.weather.airTemperature double',...
0026      'antenna0.thermal.ccTemperatureLoad double',...
0027     'antenna0.thermal.ccColdPlate double',...
0028     'antenna0.thermal.utc double',...
0029     'antenna0.tracker.lst double',...
0030     'antenna0.tracker.flexure double',...
0031     'antenna0.tracker.tilts double',...
0032     'antenna0.tracker.encoder_off double',...
0033     'antenna0.tracker.fixedCollimation double',...
0034     'antenna0.tracker.refraction double',...
0035     'antenna0.tracker.siteActual double',...
0036     'antenna0.tracker.utc double',...
0037     'antenna0.servo.utc double',...
0038     'antenna0.servo.fast_az_pos double',...
0039     'antenna0.servo.fast_el_pos double',...
0040     'antenna0.servo.fast_az_err double',...
0041     'antenna0.servo.fast_el_err double',...
0042     'antenna0.receiver.utc double',...
0043     'antenna0.receiver.data double',...
0044     'antenna0.receiver.flags double',...
0045 };
0046 
0047 %     'antenna0.thermal.ccHeaterCurrent double',...
0048 %     'antenna0.thermal.lsTemperatureSensors double',...
0049 %     'antenna0.thermal.dlpTemperatureSensors double',...
0050 
0051 
0052 %    'antenna0.servo.slow_az_pos double',...
0053 %    'antenna0.servo.slow_el_pos double',...
0054 %     'antenna0.servo.command_current_az1[0] double',...
0055 %     'antenna0.servo.command_current_az2[0] double',...
0056 %     'antenna0.servo.command_current_el1[0] double',...
0057 %     'antenna0.servo.actual_current_az1[0] double',...
0058 %     'antenna0.servo.actual_current_az2[0] double',...
0059 %     'antenna0.servo.actual_current_el1[0] double',...
0060 %     'antenna0.servo.enable_status_az1',...
0061 %     'antenna0.servo.enable_status_az2',...
0062 %     'antenna0.servo.enable_status_el1',...
0063 
0064 
0065 % regs={'array.frame.received'...
0066 %     'array.frame.features',...
0067 %     'array.weather.utc double',...
0068 %     'array.weather.windSpeed[0] double',...
0069 %     'array.weather.windDirection[0] double',...
0070 %     'array.weather.status double',...
0071 %     'array.weather.relativeHumidity double',...
0072 %     'antenna0.thermal.ccHeaterCurrent double',...
0073 %     'antenna0.thermal.lsTemperatureSensors double',...
0074 %     'antenna0.thermal.ccTemperatureLoad double',...
0075 %     'antenna0.thermal.utc double',...
0076 %     'antenna0.thermal.dlpTemperatureSensors double',...
0077 %     'antenna0.tracker.lacking double',...
0078 %     'antenna0.tracker.equat_geoc double',...
0079 %     'antenna0.tracker.horiz_topo double',...
0080 %     'antenna0.tracker.horiz_mount double',...
0081 %     'antenna0.tracker.horiz_off double',...
0082 %     'antenna0.tracker.sky_xy_off double',...
0083 %     'antenna0.tracker.source string',...
0084 %     'antenna0.tracker.scan_off double',...
0085 %     'antenna0.tracker.ut1utc double',...
0086 %     'antenna0.tracker.eqneqx double',...
0087 %     'antenna0.tracker.time_diff double',...
0088 %     'antenna0.tracker.offSource double',...
0089 %     'antenna0.tracker.siteActual double',...
0090 %     'antenna0.tracker.siteFiducial double',...
0091 %     'antenna0.frame.utc double',...
0092 %     'antenna0.frame.received double',...
0093 %     'antenna0.receiver.switchData double',...
0094 %     'antenna0.receiver.diagnostics double',...
0095 %     'antenna0.receiver.drainCurrent double',...
0096 %     'antenna0.receiver.drainVoltage double',...
0097 %     'antenna0.receiver.gateVoltage double',...
0098 %     };
0099 
0100 d = read_arc(startTime,endTime,regs);
0101 display('Finished with read_arc');
0102 
0103 
0104 % calculate the apparent az/el right off the bat;
0105 display('Calculating apparent Azimuth and Elevation');
0106 d = apparentAzEl(d);
0107 
0108 
0109 % Now calculate the ra/dec.
0110 display('Calculating RA/DEC Values')
0111 long=-118.2822;
0112 lat=37.2339;
0113 
0114 az = d.antenna0.servo.apparent(:,1);
0115 el = d.antenna0.servo.apparent(:,2);
0116 jd=mjd2jd(d.antenna0.receiver.utc);
0117 [equa] = horiz_coo([pi/180*(az) pi/180*(el)],jd,[pi/180*(long) pi/180*(lat)],'e');
0118 d.antenna0.servo.equa=equa;
0119 
0120 
0121 % Convert to Galactic coordinates...
0122 display('Calculating Galactic Long/Lat')
0123 [galactic,~]=coco(d.antenna0.servo.equa,'j2000.0','g','r','r');
0124 d.antenna0.servo.galactic=galactic;
0125 
0126 
0127 
0128 % Now flag based upon the list of point sources.
0129 display('Flagging on point sources.');
0130 
0131 % Read in the point source catalog:
0132 pointFile = open('nvss_select.mat');
0133 pointRA = pointFile.RA;
0134 pointDec = pointFile.Dec;
0135 nPoints = length(pointRA);
0136 
0137 pointFlag = zeros(length(d.antenna0.receiver.utc),1);
0138 for k=1:nPoints
0139 
0140     pFlag = spaceangle(pointRA(k), pointDec(k), ...
0141         d.antenna0.servo.equa(:,1)*180/pi, ...
0142         d.antenna0.servo.equa(:,2)*180/pi, 'deg') < pointRad;
0143     
0144     pointFlag = pointFlag | pFlag;
0145 
0146 end
0147 
0148 
0149 
0150 display('Flagging on Galactic plane.');
0151 galacticFlag = abs(galactic(:,2)) < (galRad / 180 * pi);
0152 
0153 
0154 display('Flagging on the Sun.');
0155 [sunDist, ~, ~] = calcSourceDist(d, 'sun');
0156 sunFlag = (sunDist < sunRad) & sunDist ~= 0;
0157 
0158 
0159 display('Flagging on the Moon.');
0160 [moonDist, ~, ~] = calcSourceDist(d, 'moon');
0161 moonFlag = (moonDist < moonRad) & moonDist ~= 0;
0162 
0163 
0164 
0165 
0166 end
0167

Generated on Sun 14-Jun-2015 17:12:45 by m2html © 2005