在Linux环境下使用OTPS工具箱提取TPXO9海潮模型数据作潮汐水位预报
在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海潮模型数据作潮汐水位预报相关推荐
- linux设置密码报错automa,opensuse linux环境下ibm_websphere和ibm_db2安装以及DB2数据迁移操...
opensuse linux环境下ibm_websphere和ibm_db2安装 ibm_websphere安装: 1.ibm官网下载免费版websphere,如下载文件名为BASETRIAL.age ...
- ORACLE10G 在 LINUX环境下日志损坏后修复并重新处理数据(TEST5实例)
TEST5服务器由有一些原因 出现问题 启动不了数据库 ORA-00600 [2662]错误解决过程 数据库版本:7.3.2 背景: 客户那边数据库突然出现一个current日志文件坏了,导致数据库c ...
- Linux环境下利用句柄恢复Oracle误删除的数据文件
在误删除Oracle的数据文件后,如果未关闭数据库,文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件.下面模拟恢复过程. (一)环境 OS版本:redha ...
- hp ux安装mysql5.1.56_详细讲解Linux环境下MySQL5.1安装步骤
1.下载MySQL免安装版/二进制版软件(不用编译) 文件格式:MYSQL-VERSION-OS.tar.gz 2.创建MySQL组,建立MySQL用户并加入到mysql组中 (不同版本的Unix中, ...
- linux环境下从路径字符串中截取目录和文件名信息
文章目录 前言 使用系统命令完成路径截取 使用 basename 命令获取文件名 使用 dirname 命令获取目录名 利用变量提取操作完成截取 截取根目录 截取文件名 截取文件后缀 截取文件所在的目 ...
- Linux配置gdal变量环境,基于GDAL库的LINUX环境下的FY-3D和FY-4A遥感数据处理
王燕婷 摘要 基于GDAL库的功能和其开源.可对栅格空间数据操作的特点,将GDAL与C++语言的完美结合,可极大得发挥其在开发遥感图像处理软件中的优势,并可跨平台应用于不同操作系统下的遥感图像数据处理 ...
- linux svn更换数据仓库,Linux环境下SVN数据仓库迁移
上一篇文章介绍了Windows环境下SVN数据的备份与还原,这篇文章介绍下Linux环境下数据迁移. 一准备工作 1安装环境 1 centOS7 2可上网 2软件需求 1 winSCP 2 PuTTy ...
- Linux环境下的网络编程
本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代 码实例.要理解本文所谈的技术问题需要读者 ...
- LINUX环境下资源下载中文目录及中文文件名称问题
为什么80%的码农都做不了架构师?>>> http://www.yeeach.com/2009/04/09/linux%E7%8E%AF%E5%A2%83%E4%B8%8B%E ...
最新文章
- 直接插入排序、希尔排序
- Python生物信息学⑥绘制热图及火山图
- java it_Java中的Iterator的用法
- Golang Web入门(3):如何优雅的设计中间件
- 面向对象程序设计概念
- c语言 error c2227,error C2227: left of '-first' must point to class/struct/union
- 大型体检系统源码 医院PEIS管理系统源码 BS架构
- 决策树分类算法三种方式
- 计算机表格对比功能怎么用,两个excel表格数据对比差异_怎么用vlookup对比两个表格的差异...
- 计算机二级工作表不会,计算机二级Office:Excel工作簿与工作表操作
- 第四章 DirectX 渲染流水线(上)
- Mac安装软件时提示“文件已损坏,您应该将它移到废纸篓”解决办法(亲测有效)
- 来自全网超火的Android面试笔记GitHub下载量过百万
- 小猫咪研学之K8S基本介绍
- 4.1 拦截电话号码
- 曰期计算器java,日期计算器
- “瞎买量”时代终结,游戏运营推广该如何选择?
- 计算机控制器代表硬件,计算机组成原理:计算机硬件系统
- 接触角测量的常用测量法
- 利用Python 代码实现人体肤色检测