在Linux环境下使用OTPS工具箱提取TPXO9海潮模型数据作潮汐水位预报

  • 前期准备
    • 下载OTPS工具箱
    • 导入TPXO9数据
  • 提取数据并预报

前期准备

下文中提到的WSL环境,即Windows Subsystem for Linux,具体安装可参考文章 地址

下载OTPS工具箱

这里提供OTPS工具箱的百度网盘下载链接(密码:9z02):OTPS工具箱
里面包含原始TPXO7.2海潮数据和相关案例。

TPXO9海潮数据请点击下载,原始数据网址 Url。

导入TPXO9数据

我们将下载好的TPXO9数据(共25个)保存在同一个文件夹下,为了区分原始工具包中带有的TPXO7.2海潮数据,将文件夹命名为TPXO9_atlas,我这里是下载了两种数据格式的TPXO9数据(一种是二进制【binary】;一种是nc数据),所以我在TPXO9_atlas的文件夹下再次分了文件夹binary。

我的TPXO9海潮数据保存在 E:\TPXO9_atlas\binary\ 中。

同时有两种方式将TPXO9海潮数据移动到OTPS工具箱中:

一种是直接在Windows界面下直接将TPXO9_atlas文件夹直接移动到OTPS工具箱DATA文件夹中;

二是通过在WSL中的键入命令命令mv TPXO9_atlas Shell/OTPS/DATA/将其移动到DATA文件夹下。

注意:以上的操作都是要根据自己的实际文件名和文件位置来操作。

提取数据并预报

第一步
在Linux(WSL)中打开到OTPS工具箱下,cd /mnt/e/Shell/OTPS,(以自己实际保存路径为准)

zhuyh@LAPTOP-464DFIKA:OTPS$ ls
COPYRIGHT  Interp  constit.h      extract_HC.f90         extract_local_model.f90  makefile          predict_tide_sample_out  setup.local  weights.h
DATA       README  constit_f90.h  extract_HC_sample_out  lat_lon_time(list)     predict_tide.f90  setup.inp                subs.f90

我们已经在前面导入TPXO海潮模型数据,可以在DATA/文件夹下查看

zhuyh@LAPTOP-464DFIKA:OTPS$ cd DATA/
zhuyh@LAPTOP-464DFIKA:DATA$ ls
Model_Hawaii  Model_tpxo7.2  Model_tpxo9.v1  Model_tpxo9_atlas  TPXO9_atlas  grid_tpxo7.2  h_tpxo7.2  load_file  u_tpxo7.2

第二步
我们可以看到在DATA文件下有一个TPXO9_atlas,里面保存的是TPXO9海潮数据(以自己具体保存路径为准,尽量保存在OTPS/DATA/中,以便于后续的操作)
这时候我们修改控制文件 Model_tpxo9_atlas,键入命令vi Model_tpxo9_atlas:

DATA/TPXO9_atlas/binary/h_*_tpxo9_atlas_30
DATA/TPXO9_atlas/binary/u_*_tpxo9_atlas_30
DATA/TPXO9_atlas/binary/grid_tpxo9_atlas_30

将文件中 h,u,grid 的路径位置修改为自己TPXO9数据的路径位置,保存退出:先 ESC 在键入:wq!

第三步
返回上级目录到 OTPS 下,创建模型运行所需要的经纬度+时间文件,也就是自己需要预报的区域和时间文件,如下所示(逐小时预报,分秒为0即可,以空格为间隔):

    9.795800   103.471901   2002      3     18      4     29     189.795800   103.471901   2002      3     28      2     28     229.795800   103.471901   2002      6     15     10     15     569.795800   103.471901   2002      6     25      8     15      0-29.676001    59.550201   2001      9     18      7     39     51-29.676001    59.550201   2001      9     28      5     38     542.021030    72.294998   2002      4     24     11     18     312.021030    72.294998   2002      5      4      9     16     532.021030    72.294998   2002      5     14      7     15     14

下面是我自己写的自动生成 经纬度时间 文件的shell脚本(make_lltime.sh),可以修改其中的lon,lat范围,时间起始点即可生成想要的数据文件。

#!/bin/bash# lon
lon_min=117
lon_max=120
# lat
lat_min=10
lat_max=12
# interp
interps=0.1
# time
start_date=20210601
end_date=20210701    # 建议比最后时间多一天rm ll_time lat_lon
# ==================================================
lons=($(seq ${lon_min} ${interps} ${lon_max}))
lats=($(seq ${lat_min} ${interps} ${lat_max}))for llat in ${lats[@]}
dofor llon in ${lons[@]}doecho "$llat $llon" >> lat_londone
donewhile [ $start_date != $end_date ]
do
echo $start_date
for hour in `seq -w 0 23`;doawk '{print $1,$2,'${start_date:0:4}','${start_date:4:2}','${start_date:6:2}','${hour}',0,0}' lat_lon >> ll_time
done
let start_date=`date -d "-1 days ago ${start_date}" +%Y%m%d`
done

修改完成后,保存退出!在命令行输入 bash make_lltime,等待脚本执行完成,最后生成的 ll_time 文件就是我们需要的经纬度+时间文件!

第四步

编辑输入文件 setup.inp, vi setup.inp ,在文件的下面有每条指令详细的讲解,这里不多做赘述。

DATA/Model_tpxo7.2         ! 1. tidal model control file
../mt_zhuo/ll_time         ! 2. latitude/longitude/<time> file
z                          ! 3. z/U/V/u/v! 4. tidal constituents to include
AP                         ! 5. AP/RI
oce                        ! 6. oce/geo
1                          ! 7. 1/0 correct for minor constituents
../mt_zhuo/zeta_mt.out     ! 8. output file (ASCII)

要注意 :
1.海潮模型控制文件的路径;
2.需要提取数据的经纬度或 需要预报的经纬度+时间 文件
3.需要预报的数据类型,水位(z),潮流(u),具体见文件
4.提取或预报所需分潮的名称,所有分潮保持为 空 即可
5,6,7 条可以不用更改,有具体要求可看文件中详解
8.输出文件的路劲位置

根据实际情况修改:

DATA/Model_tpxo9_atlas         ! 1. tidal model control file
./ll_time                ! 2. latitude/longitude/<time> file
z                          ! 3. z/U/V/u/v! 4. tidal constituents to include
AP                         ! 5. AP/RI
oce                        ! 6. oce/geo
1                          ! 7. 1/0 correct for minor constituents
./zeta_mt.out           ! 8. output file (ASCII)

这里我选取所有分潮进行预报,根据控制文件更改好路径位置后,保存退出!

第五步
现在我们已经有了 经纬度+时间 文件、输入文件 setup.inp
键入命令 make

zhuyh@LAPTOP-464DFIKA:OTPS$ make
gfortran -o predict_tide -fconvert=swap -frecord-marker=4 predict_tide.f90 subs.f90
subs.f90:1404:21:1404 |       call mapxy(1,1,dx,dy,dlon,dlat,SLAT,SLON,HEMI)|                     1
Warning: Rank mismatch in argument ‘x’ at (1) (rank-2 and scalar) [-Wargument-mismatch]
subs.f90:1416:21:1416 |       call mapll(1,1,dlon,dlat,dx,dy,SLAT,SLON,HEMI)|                     1
Warning: Rank mismatch in argument ‘lon’ at (1) (rank-2 and scalar) [-Wargument-mismatch]
zhuyh@LAPTOP-464DFIKA:OTPS$ ls
COPYRIGHT  Interp  constit.h      extract_HC.f90         extract_local_model.f90  ll_time   predict_tide      predict_tide_sample_out  setup.local  weights.h
DATA       README  constit_f90.h  extract_HC_sample_out  lat_lon_time(list)     makefile  predict_tide.f90  setup.inp                subs.f90

发现文件中生成了 predict_tide 可执行文件

第六步
键入命令: ./predict_tide < setup.inp,因为TPXO9 的原始数据量较大,需等待片刻!

zhuyh@LAPTOP-464DFIKA:OTPS$ ./predict_tide < setup.inpLat/Lon/Time file:./ll_timePredict OCEAN tideInterpolate minor constituentsDATA/TPXO9_atlas/binary/h_m2_tpxo9_atlas_30Model:        tpxo9_atlasLat limits:     -90.0166702       90.0166702Lon limits:      1.66666675E-02   360.016663Constituents: m2  s2  k1  o1  n2  p1  k2  q1  2n2 m4  ms4 mn4Predict elevations (m)Constituents to include: m2  s2  k1  o1  n2  p1  k2  q1  2n2 m4  ms4 mn4Reading model...m2  s2  k1  o1  n2  p1  k2  q1  2n2 m4  ms4 mn4  doneResults are in ./zeta_mt.out
Note: The following floating-point exceptions are signalling: IEEE_DENORMAL

当出现 Results are in****** 即完成预报计算。
最后键入命令 vi zeta_mt.out 进行查看!

在Linux环境下使用OTPS工具箱提取TPXO9海潮模型数据作潮汐水位预报相关推荐

  1. linux设置密码报错automa,opensuse linux环境下ibm_websphere和ibm_db2安装以及DB2数据迁移操...

    opensuse linux环境下ibm_websphere和ibm_db2安装 ibm_websphere安装: 1.ibm官网下载免费版websphere,如下载文件名为BASETRIAL.age ...

  2. ORACLE10G 在 LINUX环境下日志损坏后修复并重新处理数据(TEST5实例)

    TEST5服务器由有一些原因 出现问题 启动不了数据库 ORA-00600 [2662]错误解决过程 数据库版本:7.3.2 背景: 客户那边数据库突然出现一个current日志文件坏了,导致数据库c ...

  3. Linux环境下利用句柄恢复Oracle误删除的数据文件

    在误删除Oracle的数据文件后,如果未关闭数据库,文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件.下面模拟恢复过程. (一)环境 OS版本:redha ...

  4. hp ux安装mysql5.1.56_详细讲解Linux环境下MySQL5.1安装步骤

    1.下载MySQL免安装版/二进制版软件(不用编译) 文件格式:MYSQL-VERSION-OS.tar.gz 2.创建MySQL组,建立MySQL用户并加入到mysql组中 (不同版本的Unix中, ...

  5. linux环境下从路径字符串中截取目录和文件名信息

    文章目录 前言 使用系统命令完成路径截取 使用 basename 命令获取文件名 使用 dirname 命令获取目录名 利用变量提取操作完成截取 截取根目录 截取文件名 截取文件后缀 截取文件所在的目 ...

  6. Linux配置gdal变量环境,基于GDAL库的LINUX环境下的FY-3D和FY-4A遥感数据处理

    王燕婷 摘要 基于GDAL库的功能和其开源.可对栅格空间数据操作的特点,将GDAL与C++语言的完美结合,可极大得发挥其在开发遥感图像处理软件中的优势,并可跨平台应用于不同操作系统下的遥感图像数据处理 ...

  7. linux svn更换数据仓库,Linux环境下SVN数据仓库迁移

    上一篇文章介绍了Windows环境下SVN数据的备份与还原,这篇文章介绍下Linux环境下数据迁移. 一准备工作 1安装环境 1 centOS7 2可上网 2软件需求 1 winSCP 2 PuTTy ...

  8. Linux环境下的网络编程

    本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代  码实例.要理解本文所谈的技术问题需要读者 ...

  9. LINUX环境下资源下载中文目录及中文文件名称问题

    为什么80%的码农都做不了架构师?>>>    http://www.yeeach.com/2009/04/09/linux%E7%8E%AF%E5%A2%83%E4%B8%8B%E ...

最新文章

  1. 直接插入排序、希尔排序
  2. Python生物信息学⑥绘制热图及火山图
  3. java it_Java中的Iterator的用法
  4. Golang Web入门(3):如何优雅的设计中间件
  5. 面向对象程序设计概念
  6. c语言 error c2227,error C2227: left of '-first' must point to class/struct/union
  7. 大型体检系统源码 医院PEIS管理系统源码 BS架构
  8. 决策树分类算法三种方式
  9. 计算机表格对比功能怎么用,两个excel表格数据对比差异_怎么用vlookup对比两个表格的差异...
  10. 计算机二级工作表不会,计算机二级Office:Excel工作簿与工作表操作
  11. 第四章 DirectX 渲染流水线(上)
  12. Mac安装软件时提示“文件已损坏,您应该将它移到废纸篓”解决办法(亲测有效)
  13. 来自全网超火的Android面试笔记GitHub下载量过百万
  14. 小猫咪研学之K8S基本介绍
  15. 4.1 拦截电话号码
  16. 曰期计算器java,日期计算器
  17. “瞎买量”时代终结,游戏运营推广该如何选择?
  18. 计算机控制器代表硬件,计算机组成原理:计算机硬件系统
  19. 接触角测量的常用测量法
  20. 利用Python 代码实现人体肤色检测

热门文章

  1. tcpdump 详细解读
  2. RK3399驱动开发 | 12 - AP6255 SDIO WiFi 调试(基于linux4.4.194内核)
  3. crosswalk项目的维护
  4. mongodb的聚合函数的$redact方法运用。
  5. Chrome 键盘快捷键
  6. TMS320C6657GPIO相关函数理解
  7. 服务器页是指包含什么脚本程序的网页,有会做的吗?
  8. 中文人名拼写迥异 如何让老外正确读你的名字
  9. 47座城市!轨道交通线路汇总(含高清图)
  10. 在word中无法使用中文输入法解决方法