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

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

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

调和分析基本原理

根据潮波方程的解的线性性质,我们可采用叠加法分析潮位变化,即可将任一潮汐测站的潮位变化表大为
Z(t)=S0+∑j=1JHjcos(σjt+gj)+r...(1)Z(t) = S_0 + \sum _{j = 1}^{J} H_j cos( \sigma_jt +g_j )+r \space ... (1) Z(t)=S0​+j=1∑J​Hj​cos(σj​t+gj​)+r ...(1)
式中,S0是平均海平面,r为非天文因素引起的非周期性水位变化,σj 为分潮圆频率,Hj为分潮振幅,gj为分潮的初相角。
仅考虑天文潮,把(1)式线性化,得到:
Z(t)=S0+∑j=1J(ajcosσjt+bjcosσjt)....(2)Z(t) = S_0 + \sum _{j = 1}^{J} (a_j cos \sigma_jt + b_j cos \sigma_jt ) \space .... (2) Z(t)=S0​+j=1∑J​(aj​cosσj​t+bj​cosσj​t) ....(2)
其中
Hj=aj2+bj2,gj=arctan(bjaj)...(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(aj​bj​​) ...(3)
对于有N个时刻的潮位序列,则(2)式可变为以下方程组
[Z(t1)Z(t2)...Z(tN)]=[1cos(σ1t1)...cos(σJt1)sin(σ1t1)...sin(σJt1)1cos(σ1t2)...cos(σJt2)sin(σ1t2)...sin(σJt2).....................1cos(σ1tN)...cos(σJtN)sin(σ1tN)...sin(σJtN)][S0a1...aJb1...bJ]{\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...1​cos(σ1​t1​)cos(σ1​t2​)...cos(σ1​tN​)​............​cos(σJ​t1​)cos(σJ​t2​)...cos(σJ​tN​)​sin(σ1​t1​)sin(σ1​t2​)...sin(σ1​tN​)​............​sin(σJ​t1​)sin(σJ​t2​)...sin(σJ​tN​)​⎦⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡​S0​a1​...aJ​b1​...bJ​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤​
求解上述方程组,即可得到式(2)中的各个参数值,进一步可求得分潮振幅和相位(通过式(3))。

潮位调和分析工具 T_tide

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

应用实例

数据集

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

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. ↩︎

潮位调和分析工具学习(1)——T_tide相关推荐

  1. 潮位调和分析工具学习(2)——使用T_tide时遇到的问题

    潮位调和分析工具学习--使用T_tide时遇到的问题 遇到的问题 原因 长期潮位序列调和分析中对迟角度18.61年循环的处理(参考潘海东博士的博客) 遇到的问题 在处理长时间(大于18.61年)的潮位 ...

  2. 3D游戏设计和创作工具学习教程 3D Game Design Creation Tools

    语言:英语+中英文字幕(根据原英文字幕机译更准确) 大小解压后:1.94G 1280X720 mp4 三维游戏设计和创作工具 用扎实的工作流程开始开发游戏 课程获取:3D游戏设计和创作工具学习教程 3 ...

  3. arcgis怎么压缩tif文件_地理工具学习--arcgis篇:单工具学习(1)

    一直以来就想做这个系列.记录学习arcgis.geoda.python.cad等工具的过程. 在arcgis篇,最开始的打算是想把arcgis中的工具都整理一遍,不过经过几年得使用和学习,发现其中有很 ...

  4. 第八模块:算法设计模式、企业应用 第2章 企业应用工具学习

    第八模块:算法&设计模式.企业应用 第2章 企业应用工具学习 转载于:https://www.cnblogs.com/tqtl911/p/9131614.html

  5. Postman接口测试工具学习笔记(二)Postman进阶实践:获取天气预报实例

    Postman接口测试工具学习笔记(一) 入门及基本概念 https://blog.csdn.net/sevensolo/article/details/87208546 Postman进阶实践:获取 ...

  6. Postman接口测试工具学习笔记(一)接口测试概念及Postman入门

    (下文照搬@Storm啊老师博文,留下记录为了方便学习和理解.大家可以去看看原文地址:https://blog.csdn.net/duzilonglove/article/details/786454 ...

  7. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  8. 通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换...

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  9. Design Compiler工具学习笔记(7)

    目录 引言 背景知识 多时钟设计 DC 输出文件分析 实际操作 设计源码 综合脚本 综合网表 SDF文件 SDC文件 REPORT文件 引言 本篇继续学习 DC的基本使用.本篇主要学习 DC 综合之后 ...

最新文章

  1. python 高阶函数
  2. php SQLite mysql_PHP实现的sqlite数据库连接类
  3. 第二阶段个人总结06
  4. 一个webpack,react,less,es6的DEMO
  5. 汽车行驶姿态 -- 初识
  6. JavaScript 读取CSV文件并转为js对象
  7. signature=94f3cd0155e1d8c8ff09aa94177adccd,研擬顆粒流與連體數值耦合方法模擬山崩產生之震動訊號...
  8. java大组件_Java的三大组件
  9. POJ2373-Dividing the Path【单调队列优化dp】
  10. 既然参与,那就做好,我相信我们是最棒的!!!
  11. 工作失职的处理决定_工作失职的处理决定
  12. tomcat中设置Java 客户端程序的http(https)访问代理
  13. 在线涂鸦画板小程序源码
  14. 我的第一个python web开发框架(15)——公司介绍编辑功能
  15. python和java反射_python实现反射功能
  16. xfce4快捷键设置
  17. C++使用Socks5协议进行代理上网(四)
  18. 华光职业学院计算机专业,关于给予张庆俊等同学省高校计算机一级 考试成绩优秀奖励的通知...
  19. 周鸿祎带头,十家安全公司接受了这些尖锐拷问
  20. 苍穹角色对接流程开发

热门文章

  1. 最好的投资是自己,有关怎样投资自己
  2. [置顶]记录脑残失误,让达摩克利斯之剑永远高悬
  3. P2V vCenter Converter Standalone迁移(问题记录)
  4. 【ES6闯关】Promise堪比原生的自定义封装then、catch、resolve、reject...
  5. mongodb的id查询
  6. 《跨语言文本相似性检测》第一周—前期调研
  7. 华钜同创:各大卖家提前备货万圣节,再不准备就晚啦!
  8. 创业-2022年五大互联网创业风口
  9. 南华大学计算机科学学院,计算机科学与技术学院89级校友回校联谊
  10. 洪荒:不周山上的绝世大能(二)