disp('rdson_07')   %('read_son_day_rhb_07')
fclose('all');
%Sonic model R3 used on AMMA06. Running at 10Hz
% S/N 000138

clear st1;clear st2;clear st3;clear jadson;clear sonraw;

jd=num2str(ddd);

if ddd<100
    jd=['0' num2str(ddd)];
end;
if ddd<10
    jd=['00' num2str(ddd)];
end;

plotit=1;
prtit=0;

hr='00';
jhold=0;
jax=1;
jaxx=1;
backchk=0;
st1=[];
st2=[];
st3=[];
jaxd=[];
%if 0 % DEW 5/15/2007
for jam=0:1   %23,						%cycle thru 24 hourly stats files
    clear sonraw
    if jam<10,
        hr=['0' num2str(jam)];
    else
        hr=num2str(jam);
    end;

    e=[way_raw_data, 'day',jd,'\P0_' jd hr];
    flist=fopen(e,'r');
    if flist>0,	   				%if the file exists,
        dmp=fgets(flist);			%read header lines and skip blanks
        % DEW commented out next line, because I son't see a blank space after SONIC title
        dmp2=fgets(flist);		%read header lines and skip blanks
        while feof(flist)==0,
            disp(['Reading Sonic file in rdson  ',e])
            st1=fscanf(flist,'%g,%g,%g,%g,%g',[5,inf]);
            % despike data  DEW 5/6/2007 fm CWK
            ss = size(st1)
            %put in because file P0_12812 was bombing after it look like it
            %read the file once after 64004 pts and then tried to read
            %again but was empty 71857 pts in file DEW 5/9/2007
            if ss(1) == 0
                break
            end
            sonraw = st1;   % load sonic array into temp array
            sonfix  % run despiking routine
            clear st1
            st1 = sonraw_dep; %copy despiked data into working array

            if backchk==0,
                tzilch=jam;
                backchk=1;
                tzero=st1(1);
            end;   % end if
            [nr1,nl1]=size(st1);
            nll=nl1-1;
            if nr1==5,
                st2(:,jax:jax+nl1-1)=st1(:,1:nl1);
                jax=jax+nl1;
            else
                x=fgets(flist);
            end;    %end if
        end;       %end while feof
        %      sonfac=1200 or 600; %sonic runs at 10Hz, 36000 values/hour...
        sonfac=3600*fsonic/60;
        if ~isempty(st2);
            jk=min(60,ceil(jax/sonfac));
            jade=str2num(jd)+((st2(1,:)-tzero)/1000/60/60+tzilch)/24;
            for j=1:jk,
                jl=sonfac*(j-1)+1;jj=min(jax-1,sonfac*j);
                st3(:,j+jhold)=median(st2(:,jl:jj)')';
                jadson(j+jhold)=jade(jl);
            end;    %end for
            stx=st2;
            jhold=jhold+jk;
            st2=[]; st1=[];
            jaxd=[jaxd jax];
            jax=1;
        end;       %if isempty
    end;         %end if flist
end;            %end for
clear u v w Tsonic U V dir
u=st3(2,:)/100;
v=st3(3,:)/100;
w=st3(4,:)/100;
%% DEW 5/18/2007
plot(u,'b')
hold
plot(v,'r')
plot(w,'b')
title('DEW 5/19/2007 AMMA')
legend('u','v','w')
if outputsonic==1
    Tsonic=st3(5,:)/100; %Temperature in degC
else
    speedson=st3(5,:)/50;
    Tsonic=(speedson.*speedson+(u.*u + w.*w)/2. + v.*v)/403-273.15;
end;

if rotationsonic==1
    C=strcmp(sonicmodel,'R3');
    if C==1                                            %means sonicmodel=R3
        U=u*cos(30/180*pi)-v*sin(30/180*pi);		   %to North
        V=u*sin(30/180*pi)+v*cos(30/180*pi);  		   %to West
    else
        U=-u*cos(30/180*pi)-v*sin(30/180*pi);		   %to North
        V=-u*sin(30/180*pi)+v*cos(30/180*pi);  		   %to West
    end;
else
    U=u;
    V=v;
end;

S=sqrt(u.*u+v.*v+w.*w);
dir=atan2(-V,U)*180/pi+180;		%jeff coordinates, +boward, +portward, 180 means wind from
dir=mod(dir+720,360);
np=jhold;

if prtit==1;
    prt_jas_son_rhb_07;
end;

if plotit==1;
    %set some plot limits
    Tll=-25;
    hll=70;
    uul=10;
    vul=10;
    Tul=-0;
    hul=100;
    sul=12;
    Rlul=30;
    Rlll=-100;
    Rtul=300;
    Rtll=125;
    Rsul=1000;
    Rsll=0;

    %plot T profiles
    j_st=jadson(1);
    j_en=jadson(np);

    figure;
    plot(jadson(1:np),Tsonic(1:np));
    xlabel(['Jday', year]);ylabel('Temperature (C)');title('Sonic Temperature');
    figure;
    plot(jadson(1:np),U(1:np),jadson(1:np),V(1:np),jadson(1:np),w(1:np),jadson(1:np),S(1:np));
    xlabel(['Jday', year]);ylabel('Sonic Winds (m/s)');title('Relative Wind Components:  U=blue,  V=green,  W=red,   Speed=cyan');

    for i=1:np % Jeff Otten's mod to display direction -180 to +180.
        if dir(i) > 180
            dir(i) = dir(i) - 360;
        end
    end
    figure;
    plot(jadson(1:np),dir(1:np),'b', ... 		%data points
        [ddd+4/24 ddd+4/24],[-180 180],'k', ...		%4 hour watch dividers
        [ddd+8/24 ddd+8/24],[-180 180],'k', ...
        [ddd+12/24 ddd+12/24],[-180 180],'k', ...
        [ddd+16/24 ddd+16/24],[-180 180],'k', ...
        [ddd+20/24 ddd+20/24],[-180 180],'k', ...
        [ddd ddd+1],[45 45],'g', ...			%45 degree good zone
        [ddd ddd+1],[-45 -45],'g', ...
        [ddd ddd+1],[60 60],'r', ...			%60 degree questionable zone
        [ddd ddd+1],[-60 -60],'r'); ...
        xlabel('Jday (2006)'); ...
        ylabel('Sonic Wind Direction (deg)'); ...
        title('Relative Wind Direction'); ...
        axis([j_st j_en -180 180]);
    figure;
    plot(jadson(1:np),sqrt(U(1:np).^2+V(1:np).^2+w(1:np).^2));
    xlabel(['Jday', year]);
    ylabel('Wind Speed m/s');
    title('Sonic Relative Wind Speed');%axis([j_st j_en 0 360]);
end;

%clear w vul v uul u tzilch tzero sul st3 speedson prtit prt_it plotit nr1 npz np nl1 jl jk jj jhold jd jazx jaxx jax jam jadson jade j_st j_en j hul hr hll flist
%clear f e dmp2 dmp dir backchk ans V U Tul Tsonic Tll S Rtul Rtll Rsul Rsll Rlul Rlll
