S_TIDE相比T_TIDE优势
S_TIDE是基于T_TIDE开发的新一代潮汐调和分析工具包,其可以求解潮汐振幅和迟角的时间变化,同时也对T_TIDE存在的各种问题进行了改进,比如T_TIDE无法处理长时间数据(18.61年),无法处理不均匀采样数据。
这里提供一个S_TIDE与T_TIDE对比的实例,详细说明T_TIDE分析时可能出现的问题。程序使用了美国Astoria验潮站的水位,该数据文件已经包含在了s_tide工具包里。结果如下图所示,可以看到S2分潮振幅在第59年有一个突然的下降,K1分潮振幅有一个突然的上升。这种异常情况是因为当年水位观测的时间计算错误,这种错误没有被校正,而是保留在了原始数据中。
astoria=ncread('h572a.nc','sea_level');
%1925-01-26到2016-12-31
amp=zeros(91,67,'double');amp(:,:)=NaN;
for i=1:91
aa=1+8766*(i-1);bb=8766+aa;
if sum(isnan(astoria(aa:bb)))<8767*0.25
[NAME,FREQ,TIDECON,XOUT,z0]=t_tide(astoria(aa:bb),'interval',1);
amp(i,:)=TIDECON(:,1);
mwl(i)=z0;
end
end
plot(amp(:,20),'r.-');hold on;plot(amp(:,41),'k*-');
legend('K1','S2')
xlabel('Year');ylabel('Amplitude(mm)')

下面展示的S_TIDE处理结果,使用了鲁棒拟合robustfit来消除时间错乱的影响,结果如下图所示,异常的突降和突升几乎没有了。
amp=zeros(91,67,'double');amp(:,:)=NaN;
for i=1:91
aa=1+8766*(i-1);bb=8766+aa;
if sum(isnan(astoria(aa:bb)))<8767*0.25
[St,Ht,Gt,coef,xout,ju,Stint,Htint,Gtint]=s_tide(astoria(aa:bb),1,1,'autoselected','autoselected',1,'spline','robustfit');
amp(i,:)=Ht(:,1);
mwl(i)=z0;
end
end
plot(amp(:,20),'r.-');hold on;plot(amp(:,41),'k*-');
legend('K1','S2')
xlabel('Year');ylabel('Amplitude(mm)')
