disp('eval_scs_rhb_06') %reads etl ship data system files, computes 1-min medians of selected variables, writes processed %ascii file %data files are expected to be in directory named 'dayddd' %ddd is julian day it must be specified from the keyboard or in a program %that calls read_scs %cwf 11/03 %changed by cwf to inlcde imet PIR 12/2004 fclose('all'); st2=[];timegps=[];lat=[];latns=[];lon=[];cog=[];sog=[];tsg=[];tss=[]; rh=[];ta=[];solar=[];imrain=[];lrg=[];odec=[];imu=[];imd=[];ir=[];lons=[]; st3=[];gpstime=[];latm=[];lonm=[];cogx=[];sogx=[];tsgm=[];tssm=[]; rhm=[];tam=[];solarm=[];imrainm=[];lrgm=[];odecm=[];imum=[];imdm=[];irm=[]; secs=[]; sx=[];headr=[]; stx1=[];headr1=[]; scstime=[]; %make string out of file jul day jd=num2str(ddd); if ddd<100 jd=['0' num2str(ddd)]; end; if ddd<10 jd=['00' num2str(ddd)]; end; hr='00'; g=0.0098; %adiabatic lapse rate eps_w=0.97; %emissivity of water sig_sb=5.67e-8; %Stefan Boltzmann constant blk=1; %10-min index jax=1; %line counter backchk=0; %first time index stx=[]; st2=[]; clear data for jam=hhh:hhh, %cycle thru 24 hourly stats files if jam<10, hr=['0' num2str(jam)]; else hr=num2str(jam); end; e=[way_raw_data, 'day' ,jd,'\P6_' jd hr]; disp(['Reading scs file from hour ',jd,':',hr]); flist=fopen(e,'r'); if flist>0, %if the file exists, while ~feof(flist), dmp=fgets(flist); %read header line stx=fscanf(flist,'%g,%g,%g%*c,%10f%*c,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g',[17,inf]); % if isempty(stx) % stx=ones(17,1683).*NaN % end; [nr1,nl1]=size(stx); if nr1==17 secs = [garbage stx(1,:)]; timegps = [timegps stx(2,:)]; lat = [lat stx(3,:)./100]; lon = [lon stx(4,:)./100]; cog = [cog stx(5,:)]; sog = [sog stx(6,:)*0.514]; tsg = [tsg stx(7,:)]; tss = [tss stx(8,:)]; rh = [rh stx(9,:)]; ta = [ta stx(10,:)]; solar = [solar stx(11,:)]; imrain = [imrain stx(12,:)]; lrg = [lrg stx(13,:)]; odec = [odec stx(14,:)]; imu = [imu stx(15,:)*.514]; imd = [imd stx(16,:)]; ir = [ir stx(17,:)]; else x=fgets(flist); end; end; end; flist2=fopen(e,'r'); if flist2>0, %if the file exists, dmp2=fgetl(flist2); while ~feof(flist2), headr=fgetl(flist2); if length(headr)>100 latns = [latns headr(32)]; lons = [lons headr(44)]; else dmp3=fgets(flist2); end; end; end; end; %0-23 loop % if jam<10, % hr=['0' num2str(jam)]; % else % hr=num2str(jam); % end; % e=['d:\data\day',jd,'\P6_' jd hr]; % %e=[way_data '\day',jd,'\P6_' jd hr]; % disp(['Reading scs file from hour ',jd,':',hr]); % flist=fopen(e,'r'); % if flist>0, % while ~feof(flist), % %if the file exists, % dmp=fgets(flist); %read header line % %stx=fscanf(flist,'%g,%g,%g%c,%g%c,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,%g,',[18,inf]); % stx=fgets(flist); % stx=deblank(stx); % if length(stx)==137, % garbage = str2num(stx(1:14)); % timegps = [timegps str2num(stx(16:21))]; % lat = [lat str2num(stx(23:31))/100]; % latns = [latns stx(32)]; % lon = [lon str2num(stx(34:43))/100]; % cog = [cog str2num(stx(46:50))]; % sog = [sog str2num(stx(52:56))*0.514]; % tsg = [tsg str2num(stx(58:63))]; % tss = [tss str2num(stx(65:71))]; % rh = [rh str2num(stx(73:79))]; % ta = [ta str2num(stx(81:87))]; % solar = [solar str2num(stx(89:95))]; % imrain = [imrain str2num(stx(97:102))]; % lrg = [lrg str2num(stx(104:108))]; % odec = [odec str2num(stx(110:117))]; % imu = [imu str2num(stx(119:124))*.514]; % imd = [imd str2num(stx(126:131))]; % ir = [ir str2num(stx(133:137))]; % else % disp('bad line') % stx=[]; % end; % jax=jax+1; % end; %end flist % end; %end while % end; %0-23 loop if ~isempty(timegps) % if timegps(1)>10, % timegps(1)=str2num(hr).*10000; % end; if timegps(1)>timegps(2), timegps(1)=0; end; for ii=2:length(timegps) if timegps(ii)= 1) lat2(slats)=-lat2(slats); end lonmin=(lon-floor(lon))*100; lon2=floor(lon)+lonmin/60; lat=lat2;lon=-lon2; %********************* account for change of SW sensor on day 342 %if ddd>341;solar=solar/1.04;end; %******************** st2(1,:)=gpstim; st2(2,:)=lat; st2(3,:)=lon; st2(4,:)=cog; st2(5,:)=sog; st2(6,:)=tsg; st2(7,:)=tss; st2(8,:)=rh; st2(9,:)=ta; st2(10,:)=solar; st2(11,:)=imrain; st2(12,:)=lrg; st2(13,:)=odec; st2(14,:)=imu; st2(15,:)=imd; st2(16,:)=ir; st2(17,:)=scstim; st2=st2'; st2(:,4)=sog'.*cos(cog'*rdcon); %convert to N st2(:,5)=sog'.*sin(cog'*rdcon); %convert to E st2(:,14)=imu'.*cos(imd'*rdcon); %convert to N st2(:,15)=imu'.*sin(imd'*rdcon); %convert to E lrgc=cos(lrg'*rdcon); %convert to N lrgs=sin(lrg'*rdcon); %convert to E jk=[]; flagup=1; for iii=2:length(st2); if flagup, oldgps=st2(iii-1,1).*60; flagup=0; end; if oldgps+1 < st2(iii,1).*60, jk=[jk iii-1]; flagup=1; end; end; st3=zeros(length(jk),17); lrgsm=zeros(1,length(jk)); lrgcm=zeros(1,length(jk)); %1-min medians of all quantities if jk(1)<3, jk(1)=3; end; st3(1,:)=median(st2(1:jk(1)-1,:)); lrgcm(1)=median(lrgc(1:jk(1)-1,:)); lrgsm(1)=median(lrgs(1:jk(1)-1,:)); for iii=2:length(jk); st3(iii,1:17)=median(st2(jk(iii-1):jk(iii)-1,1:17)); lrgcm(iii)=median(lrgc(jk(iii-1):jk(iii)-1)); lrgsm(iii)=median(lrgs(jk(iii-1):jk(iii)-1)); end; gpstime=st3(:,1); scstime=st3(:,17); latm=st3(:,2);%./100; lonm=st3(:,3);%./100; sogx=st3(:,4); sogy=st3(:,5); tsgm=st3(:,6); %Tsea tssm=st3(:,7); %salinity rhm=st3(:,8); %relative humidity tam=st3(:,9); %Tair solarm=st3(:,10); %solar rainm=st3(:,11); %Rain odecm=st3(:,13); %ODEC imux=st3(:,14); imuy=st3(:,15); irm=st3(:,16); sogm=sqrt(sogx.*sogx+sogy.*sogy); %1-min sog cogm=mod(atan2(sogy,sogx)/rdcon+360,360); imum=sqrt(imux.*imux+imuy.*imuy); %1-min imet speed, m/s imdm=mod(atan2(imuy,imux)/rdcon+360,360); lrgm=mod(atan2(lrgsm,lrgcm)/rdcon+360,360); %laser ring gyro for iii=2:length(gpstim), if gpstim(iii)