در بسیاری از موارد نیاز بدان است که داده های روزانه یا ماهانه به صورت سری زمانی درآیند. در واقع معمولا داده ها به صورت جدولی ارائه می شوند که در ستون ها شماره روز و در سطرها شماره ماه قرار دارد. با این حال اگر چند سال داده و چند ایستگاه در یک فایل وجود داشته باشد، تبدیل به سری زمانی پیوسته داده ها کاری بسیار مشکل و طاقت فرسا است. در اینجا یک نمونه از نحوه کار با حجم زیاد داده های بارانسنجی در محیط MATLAB ارائه شده است.
فایل Prcip2.xls به عنوان ورودی در نظر گرفته شده است. این فایل مجموعه ای از داده های روزانه بارش در حدود 80 ایستگاه بارانسنجی و طی سال های مختلف است. با استفاده از کدهای ذیل به راحتی این مقادیر به سری های زمانی پیوسته روزانه بارش در هر ایستگاه تبدیل می شوند. در واقع خروجی این کدها فایل Excel به نام Time series results است که هر صفحه از آن (sheet) اطلاعات سری زمانی هر ایستگاه قرار دارد. البته اجرای کامل این برنامه حدود 5 دقیقه زمان نیاز دارد.
کد MATLAB برای تبدیل به سری زمانی حجم زیاد داده های بارانسنجی
clc
clear
[~, ~,totl] = xlsread('Prcip2'); % read the base data from excel
Stat_name = unique(totl(2:end,5)); % the names of raingauge stations
for ii = 1:numel(Stat_name)
f1 = find(strcmp(totl(:,5),Stat_name{ii}));
DataSt = totl(f1,:);% the data in each station
Years = unique(cell2mat(DataSt(:,3)));% the years of data in current station
Tot_data = [];
for jj = 1:numel(Years)
f2 = find(cell2mat(DataSt(:,3)) == Years(jj));
Data_year2 = reshape(DataSt(f2,18:-1:7),[],1);
Years2 = [repmat(Years(jj),numel(f2),6),...
repmat(Years(jj)+1,numel(f2),6)];
Days = repmat(cell2mat(DataSt(f2,6)),1,12);% create days
Months = repmat([7:12,1:6],numel(f2),1);% create months
Tot_data_yrar = [Years2(:),Months(:),Days(:),cell2mat(Data_year2)];% time series data
Tot_data_yrar(Tot_data_yrar(:,2) > 6 &...
Tot_data_yrar(:,3) == 31 ,:) = [];% autumns and winter data in days 31 are removed
Tot_data = [Tot_data;Tot_data_yrar];
end
xlswrite('Time series results',Tot_data,Stat_name{ii})% write data of staion data in sheet of excel Time series results
end