Matlab算中国沿海七个验潮站多年调和常数

数据来自网站http://uhslc.soest.hawaii.edu/data/?rq#uh288a,普通浏览器如果进不去就Fanqiang吧。

中国沿海有十几个验潮站,大部分验潮站是75-97年的每小时的数据。我下载的是dat格式的ascii文本数据,个人觉得csv格式更好,数据方便读取。选取其中七个计算,分别是'Dalian','lianyungang','Lusi','Kanmen','Shanwei','Zhapo','Beihai',算各个验潮站每一年的调和常数。只算四个主要分潮'M2';'S2';'O1';'K1'。

数据是这样:

 

数据只需要第四列到最后一列。

下面附上代码:

 1 clear;
 2 tic
 3 location={'Dalian','lianyungang','Lusi','Kanmen','Shanwei','Zhapo','Beihai'};   
 4 latitude=[38.925,34.750,32.133,28.088,22.750,21.583,21.483];
 5 for j=1:length(location)
 6     Dir=fullfile('C:','Users','Lenovo','Desktop','Documents','本科生毕业论文','验潮站数据资料',location{j});
 7     File=dir(Dir);
 8     File_num=length(File);
 9     amp_pha=struct('time',{[]},'data',{[]});
10     for i=3:File_num
11         File_name=File(i).name;
12         fileID=fopen(fullfile(Dir,File_name));
13         C = textscan(fileID,'%s %s %s %f %f %f %f %f %f %f %f %f %f %f %f','headerlines',1);
14         fclose(fileID);
15         data=zeros(size(C{1},1),12);   
16         for m=1:12
17             data(:,m)=C{1,m+3};
18         end
19         data=data';
20         data=reshape(data,[1,numel(data)]);
21         data(data==9999)=NaN;
22         [NAME,FREQ,TIDECON,XOUT]=t_tide(data,'interval',1,'latitude',latitude(j),'start time',[str2double(File_name(6:7))+1900,00,00,00],'rayleigh',['M2';'S2';'O1';'K1'] );
23         amp_pha(i-2).time=str2double(File_name(6:7))+1900;   amp_pha(i-2).data=TIDECON(:,[1,3]);
24     end
25     save([location{j},'.mat'],'amp_pha');
26 end
27 toc

 关于T_Tide的使用可以参考http://blog.sina.com.cn/s/blog_aed5bd1d0102w9vb.html

第21行,数据有很多9999的坏数据用NaN代替。

最终得到的结果用struct类型保存,第一个字段是多少年time,第二个字段是四个分潮调和常数data。结果用mat文件保存。

查看Beihai的结果:

>> clear;
>> load('Beihai.mat')

 

转载于:https://www.cnblogs.com/keegentang/p/10822915.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值