潮位调和分析工具学习(1)——T_tide

潮位调和分析工具学习——T_tide

  • 调和分析基本原理
  • 潮位调和分析工具 T_tide
  • 应用实例
    • 数据集
    • T_Tide的使用
    • 分析结果

在海洋、浅海和海口等水域,潮汐(潮波)现象广泛存在。从潮汐的引发机制上来说,海洋的潮汐涨落与天体引力有密切的关系。天体运行周期各不相同,产生的引潮力也各不相同,这使得潮汐现象十分复杂。但它们共同作用所引起的潮位变化可采用叠加原理——调和分析法来考虑。
更多的相关教程推荐潘海东博士的博客和b站主页。

调和分析基本原理

根据潮波方程的解的线性性质,我们可采用叠加法分析潮位变化,即可将任一潮汐测站的潮位变化表大为
Z ( t ) = S 0 + ∑ j = 1 J H j c o s ( σ j t + g j ) + r   . . . ( 1 ) Z(t) = S_0 + \sum _{j = 1}^{J} H_j cos( \sigma_jt +g_j )+r \space ... (1) Z(t)=S0+j=1JHjcos(σjt+gj)+r ...(1)
式中,S0是平均海平面,r为非天文因素引起的非周期性水位变化,σj 为分潮圆频率,Hj为分潮振幅,gj为分潮的初相角。
仅考虑天文潮,把(1)式线性化,得到:
Z ( t ) = S 0 + ∑ j = 1 J ( a j c o s σ j t + b j s i n σ j t )   . . . . ( 2 ) Z(t) = S_0 + \sum _{j = 1}^{J} (a_j cos \sigma_jt + b_j sin \sigma_jt ) \space .... (2) Z(t)=S0+j=1J(ajcosσjt+bjsinσjt) ....(2)
其中
H j = a j 2 + b j 2 ,   g j = a r c t a n ( b j a j )   . . . ( 3 ) H_j = \sqrt {a_j^2 + b_j^2}, \space g_j=arctan( \frac {b_j}{a_j} ) \space ... (3) Hj=aj2+bj2 , gj=arctan(ajbj) ...(3)
对于有N个时刻的潮位序列,则(2)式可变为以下方程组
[ Z ( t 1 ) Z ( t 2 ) . . . Z ( t N ) ] = [ 1 c o s ( σ 1 t 1 ) . . . c o s ( σ J t 1 ) s i n ( σ 1 t 1 ) . . . s i n ( σ J t 1 ) 1 c o s ( σ 1 t 2 ) . . . c o s ( σ J t 2 ) s i n ( σ 1 t 2 ) . . . s i n ( σ J t 2 ) . . . . . . . . . . . . . . . . . . . . . 1 c o s ( σ 1 t N ) . . . c o s ( σ J t N ) s i n ( σ 1 t N ) . . . s i n ( σ J t N ) ] [ S 0 a 1 . . . a J b 1 . . . b J ] {\left[ \begin{array}{c} Z(t_1) \\ Z(t_2) \\ ... \\ Z(t_N ) \end{array} \right ]} = {\left[ \begin{array}{ccccccc} 1 & cos(\sigma_1t_1) & ... & cos(\sigma_Jt_1) & sin(\sigma_1t_1) & ... & sin(\sigma_Jt_1) \\ 1 & cos(\sigma_1t_2) & ... & cos(\sigma_Jt_2) & sin(\sigma_1t_2) & ... & sin(\sigma_Jt_2) \\ ... & ... & ... & ... & ... & ... & ... \\ 1 & cos(\sigma_1t_N) & ... & cos(\sigma_Jt_N) & sin(\sigma_1t_N) & ... & sin(\sigma_Jt_N) \end{array} \right ]} {\left[ \begin{array}{c} S_0 \\ a_1 \\ ... \\ a_J \\ b_1\\ ... \\ b_J\\ \end{array} \right ]} Z(t1)Z(t2)...Z(tN) = 11...1cos(σ1t1)cos(σ1t2)...cos(σ1tN)............cos(σJt1)cos(σJt2)...cos(σJtN)sin(σ1t1)sin(σ1t2)...sin(σ1tN)............sin(σJt1)sin(σJt2)...sin(σJtN) S0a1...aJb1...bJ
求解上述方程组,即可得到式(2)中的各个参数值,进一步可求得分潮振幅和相位(通过式(3))。

潮位调和分析工具 T_tide

T_tide 工具包是由Pawlowicz等人1开发,可用于长时间序列潮位、潮波的调和分析。该工具包基于MATLAB,包含了一百七十余个分潮参数。

应用实例

数据集

以下所用数据集来自中国南部某潮位测站的实测潮位记录。该潮位测站记录了长期(数十年)来的高低潮出现时间及对应潮位值,即该测站的潮位记录时非等时距的潮位时间序列;而调和分析一般需要等时距潮位序列,故需要利用潮位数据集,通过合适的插值法(详见关于潮位数据插值的博文.),得到可用于调和分析的时间序列。潮位过程时间序列如下所示。
潮位调和分析工具学习(1)——T_tide_第1张图片

T_Tide的使用

T_TIDE工具包最核心函数就是t_tide(xin,varargin),该函数的详细代码见T_tide工具包中的t_tide.m文件。该参数的表达式入下:

[nameu,fu,tidecon,xout]=t_tide(xin,varargin)

其中,输出的函数值包括:

  1. nameu(char类型),表示各分潮的名称(设分潮个数为Ntides);
  2. fu为一浮点数向量,包含Ntides个元素,表示各分潮对应的频率;
  3. tidecon为一浮点数矩阵,包含Ntides×4个元素,每列数字分别表示各分潮的振幅、振幅误差、相位和相位误差;
  4. xout为一浮点数向量,表示根据调和分析结果计算得出的潮位时间序列。

其输入值包括 xin ——潮位时间序列(一般为列向量)和分析参数varargin;varargin中的参数包括:

  1. interval:时间序列中,相邻数据的时间间隔(单位:小时);
  2. start time:时间序列的起始时刻(单位:小时);
  3. latitude:该时间序列所对应的位置的纬度值(单位为°,以北纬为正),该参数可选填
  4. output:分析结果的输出位置(‘none’ - 不显示;‘screen’ - 显示在屏幕上;FILENAME - 输出成某一文件,并给定文件名),该参数可选填,默认为’'screen’
  5. prefilt:校正因子,用于潮位时间序列的滤波,该参数可选填
  6. secular:在长系列时间序列的分析,用于天文常数的校正(‘mean’ - 假定为常数;‘linear’ - 假定为线性变化),该参数可选填,默认为’'mean’
  7. inference:设定inference parameters,需要给定所关联的分潮名称、对应的振幅与相位,该参数可选填
  8. shallow:用于设定浅水分潮的名称;
  9. rayleigh:设定用于分析的分潮名称 [**注意:**可能各个分潮名称的字符数不同,为保持各分潮字符数一致,在输入时可在分潮名后补空格使各名称字符数一致];
  10. error:用于设定误差的估计方式;
  11. synthesis:当该值为零,则给出所有设定分潮的分析结果,若该值大于零,则只输出SNR>2的分潮结果,若小于零,输出最小二乘拟合的结果;
  12. lsq:最小二乘法计算过程的效率参数(‘direct’ - use A\x fit;‘normal’ - use (A’A)(A’x) ;‘best’ - 自动选择最佳参数)。

我们在使用时设定如下指令:

% 此案例中暂不考虑下列参数
infername=[ ];
inferfrom=[ ];
infamp=[];
infphase=[];

% 使用t_tide函数
[tidestruc,pout] = t_tide(elev ,...   % time series of tide elevation (a vector)
       'interval',1, ...                     % hourly data
       'start',time(1),...               % start time; 'time' is the vector of time for the elevation series
       'latitude',23,...               % Latitude of obs
       'rayleigh',['M2 ';'S2 ';'K1 ';'O1 ';'MSF';'M4 '],...
       'inference', infername,inferfrom,infamp,infphase,...
       'shallow','M10',...                   % Add a shallow-water constituent 
       'error','linear',...                   % coloured boostrap CI
       'synthesis',1);                 % Use SNR=1 for synthesis.        
% 输出包含两部分,第一个是tidestruc结构体,它包含了分潮的各项参数;
% 第二是pout,它是根据分析结果推算出的潮位过程。

分析结果

分潮 频率 振幅 振幅误差 相位 相位误差 SNR
MSF 0.0028 0.0182 0.0540 357.7098 170.2116 0.1133
O1 0.0387 0.2418 0.0131 238.5980 3.4997 342.6091
K1 0.0418 0.2888 0.0131 290.6858 2.7928 488.9960
M2 0.0805 0.3204 0.0129 23.6743 2.2449 619.7153
S2 0.0833 0.0765 0.0129 94.0139 9.6573 35.3121
M4 0.1610 0.0444 0.0055 169.4662 6.8121 64.0243
M10 0.4026 0.0016 0.0009 48.9004 27.6618 3.3430

  1. Pawlowicz R , Beardsley B , Lentz S . Classical tidal harmonic analysis including error estimates in MATLAB using T_TIDE[J]. Computers & Geosciences, 2002, 28(8):929-937. ↩︎

你可能感兴趣的:(MATLAB,调和分析,学习,算法)