赶紧写下来,一会又找不到重新写,会哭死的。对于已经处理好的in/out水汽文件(到现在没找到原来处理的程序放哪里了,找到以后补上来),计算月平均值并且输出
%计算水汽通量的月平均、趋势、及年变化
%
clc;clear;
path=['E:\ERA'];
lat(54,13)=0;lon(54,13)=0;a(3,13)=0;c(12)=0;%不计算经纬净通量就不用lat、lon数组
mounth=1:12;
for year=1979:2013
str_y=num2str(year);
name=[path,'zhujiang_WaterVapourInFlux_',str_y,'.txt'];
data=importdata(name);
east=data(1,:);
west=data(2,:);
north=data(3,:);
south=data(4,:);
lat(year-1959,:)=east-west;%东入西出
lon(year-1959,:)=south-north;%南入北出
end
%计算水汽通量的月平均值,tot为净水汽通量,正为输入、负为输出
for mon=1:13
avglat(mon)=mean(lat(:,mon));
avglon(mon)=mean(lon(:,mon));
tot=avglat+avglon;
end
%将计算所得数据重编,写入文件
a(1,:)=avglat;
a(2,:)=avglon;
a(3,:)=tot;
fid=fopen('F:\我的任务\水汽收支\文章\data\data\zhujiang\vaporflux.txt','wt');
[x,y]=size(a);
for i=1:1:x
for j=1:1:y
if j==y
fprintf(fid,'%g\n',a(i,j));
else
fprintf(fid,'%g\t',a(i,j));
end
end
end
fclose(fid);
for k=1:12
for q=1:3
b(q,k)=a(q,k)
;
%裁剪掉计算的年平均值
end
end
%画图
[AX,H1,H2]=plotyy(mounth,b(1,:),mounth,b(2,:));
set(get(AX(1),'Ylabel'),'string','纬向水汽通量');
set(get(AX(2),'Ylabel'),'string','经向水汽通量');
set(AX(1),'ylim',[-5 10],'ytick',[-5:2:10]);
set(AX(2),'ylim',[-5 10],'ytick',[-5:2:10]);
hold on
H3=plot(mounth,b(3,:),'r','linewidth',2);
plot(mounth,c,'y');
hold off
legend([H1,H2,H3],'纬向水汽通量','经向水汽通量','净水汽通量');
%axis([1 12 -5 10]);
title('1960-2013年水汽通量的月平均变化')
set(AX(1),'linewidth',2);
set(AX(2),'linewidth',2);
%saveas(AX,'F:\我的任务\水汽收支\文章\data\data\zhujiang\flux','tif');
%}
%保存月均值
for k=1:12
str_k=num2str(k);
temp1=lat(:,k) ;
temp2=lon(:,k);
temp3=(lat(:,k)+lon(:,k));
fid1=fopen([path,'lat_',str_k,'.txt'],'wt');
fprintf(fid1,'%g\n',temp1);
fid2=fopen([path,'lon_',str_k,'.txt'],'wt');
fprintf(fid2,'%g\n',temp2);
fid3=fopen([path,'netflux_',str_k,'.txt'],'wt');
fprintf(fid3,'%g\n',temp3);
fclose(fid1);
fclose(fid2);
fclose(fid3);
end
==============================小结=====================
过去编程和存放习惯太坏,数据与程序分离,不利于项目维护和数据校对。
虽然现在有更新一个存放目录,但是平常做完一个数据以后应该养成建立对应数据说明的习惯,
应包括:源数据的位置、处理程序的位置、数据的储存格式以及数据的单位、相关文献等。
对于已经做好的数据最好建立个数据库或者excel表格把他们放一块~数据库还要补充知识!
不要再像今天这么没头没脑的找东西了,好痛苦。。。
%计算水汽通量的月平均、趋势、及年变化
%
clc;clear;
path=['E:\ERA'];
lat(54,13)=0;lon(54,13)=0;a(3,13)=0;c(12)=0;%不计算经纬净通量就不用lat、lon数组
mounth=1:12;
for year=1979:2013
end
%计算水汽通量的月平均值,tot为净水汽通量,正为输入、负为输出
for mon=1:13
avglat(mon)=mean(lat(:,mon));
avglon(mon)=mean(lon(:,mon));
tot=avglat+avglon;
end
%将计算所得数据重编,写入文件
a(1,:)=avglat;
a(2,:)=avglon;
a(3,:)=tot;
fid=fopen('F:\我的任务\水汽收支\文章\data\data\zhujiang\vaporflux.txt','wt');
[x,y]=size(a);
for i=1:1:x
end
fclose(fid);
for k=1:12
end
%画图
[AX,H1,H2]=plotyy(mounth,b(1,:),mounth,b(2,:));
set(get(AX(1),'Ylabel'),'string','纬向水汽通量');
set(get(AX(2),'Ylabel'),'string','经向水汽通量');
set(AX(1),'ylim',[-5 10],'ytick',[-5:2:10]);
set(AX(2),'ylim',[-5 10],'ytick',[-5:2:10]);
hold on
H3=plot(mounth,b(3,:),'r','linewidth',2);
plot(mounth,c,'y');
hold off
legend([H1,H2,H3],'纬向水汽通量','经向水汽通量','净水汽通量');
%axis([1 12 -5 10]);
title('1960-2013年水汽通量的月平均变化')
set(AX(1),'linewidth',2);
set(AX(2),'linewidth',2);
%saveas(AX,'F:\我的任务\水汽收支\文章\data\data\zhujiang\flux','tif');
%}
%保存月均值
for k=1:12
end
==============================小结=====================
过去编程和存放习惯太坏,数据与程序分离,不利于项目维护和数据校对。
虽然现在有更新一个存放目录,但是平常做完一个数据以后应该养成建立对应数据说明的习惯,
应包括:源数据的位置、处理程序的位置、数据的储存格式以及数据的单位、相关文献等。
对于已经做好的数据最好建立个数据库或者excel表格把他们放一块~数据库还要补充知识!
不要再像今天这么没头没脑的找东西了,好痛苦。。。