%Class for CO907. %__________________________________________ %Author: Jiarui Cao %Date: 19 Nov 2013 %Purpose: Problem Sheet 2. Q2.6 Detrend data close all; clear all; clc; clf; %% Load data %set file path %filepath =['/Users/jiaruicao/Dropbox/Teaching/TACO907/Sheet2/data/']; %The code below are generated from 'import data'. %filename1=[filepath 'ftse.dat']; filename1=['ftse.dat']; delimiter = '\t'; startRow = 2; formatSpec = '%f%f%[^\n\r]'; fileID = fopen(filename1,'r'); dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'HeaderLines' ,startRow-1, 'ReturnOnError', false); Day = dataArray{:, 1}; FTSE = dataArray{:, 2}; fclose(fileID); filename2=['xray.dat']; delimiter = ' '; startRow = 6; formatSpec = '%f%f%*s%*s%*s%*s%[^\n\r]'; fileID = fopen(filename2,'r'); dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'MultipleDelimsAsOne', true, 'EmptyValue' ,NaN,'HeaderLines' ,startRow-1, 'ReturnOnError', false); fclose(fileID); t_xray = dataArray{:, 1}; xray = dataArray{:, 2}; filename3=['temperatureanomaly.dat']; Temp=load(filename3); Month =1:1:length(Temp); %% Plot the raw data. hold on % plot(Day,FTSE,'om'); % xlabel('day'); % ylabel('FTSE'); %figure() %plot(t_xray,xray,'or'); % xlabel('time'); % ylabel('x-ray'); % figure() plot(Month,Temp,'xr'); xlabel('month'); ylabel('temp'); % % detrend FTSE % M=3; % here we use order 3 polynomials. % p = polyfit(Day,FTSE,M); % yfit = polyval(p,Day); % plot(Day,yfit,'k','linewidth',2.0); % Y = FTSE-yfit; % plot(Day,Y); % % lg=legend('Original','k','Derended'); % ptitle=['M=' num2str(M)]; % title(ptitle,'fontsize',20); % set(lg,'fontsize',24,'location','northwest'); % % % output data % savefilename = ['ftse_detrended.dat']; % dlmwrite(savefilename, [Day,Y], 'delimiter', '\t', 'precision', 6); % detrend temprature Month=Month.'; M=3; % still use order 3 polynomials p =polyfit(Month,Temp,M); TempFit = polyval(p,Month); plot(Month,TempFit,'k','linewidth',2.0); YTemp = Temp-TempFit; plot(Month,YTemp,'ob'); lg=legend('Original','fit','Derended'); ptitle=['M=' num2str(M)]; title(ptitle,'fontsize',20); set(lg,'fontsize',24,'location','northwest'); % output data savefilename = ['temperatureanomaly_detrended.dat']; dlmwrite(savefilename, YTemp, 'delimiter', '\t', 'precision', 6); % %% detrend xray % % % % truncate the original data. Not necessay. % t_xray=t_xray(1:4400); % xray=xray(1:4400); % % % Generate equally spaced data % tstep=(max(t_xray)-min(t_xray))/(length(xray)-1); %compute step size % tq = min(t_xray):tstep:max(t_xray); %generate new time array % % % interp1 is used for interpolating data equally spaced. % %vq1 = interp1(t_xray,xray,tq,'spline'); %Cubic spline interpolation % vq1 = interp1(t_xray,xray,tq,'pchip');%Piecewise cubic Hermite interpolation % % plot(t_xray,xray,'o',tq,vq1,'s'); % lg=legend('Original','interp1'); % set(lg,'fontsize',24,'location','northwest'); % % % % detrend data as before % M=3; % p =polyfit(tq,vq1,M) % TempFit = polyval(p,tq); % plot(tq,vq1,'k','linewidth',2.0); % Y = vq1-TempFit; % plot(tq,Y,'xr'); % % % lg=legend('Original','terp1','fit','Derended'); % ptitle=['M=' num2str(M)]; % title(ptitle,'fontsize',20); % set(lg,'fontsize',24,'location','northwest'); % % output data % tq=tq.'; % Y=Y.'; % %savefilename = [filepath 'xray_detrended.dat']; % savefilename = ['xray_detrended.dat']; % dlmwrite(savefilename, [tq,Y], 'delimiter', '\t', 'precision', 6);