在Linux环境下使用OTPS工具箱提取TPXO9海潮模型数据作潮汐水位预报
在Linux環(huán)境下使用OTPS工具箱提取TPXO9海潮模型數(shù)據(jù)作潮汐水位預(yù)報(bào)
- 前期準(zhǔn)備
- 下載OTPS工具箱
- 導(dǎo)入TPXO9數(shù)據(jù)
- 提取數(shù)據(jù)并預(yù)報(bào)
前期準(zhǔn)備
下文中提到的WSL環(huán)境,即Windows Subsystem for Linux,具體安裝可參考文章 地址
下載OTPS工具箱
這里提供OTPS工具箱的百度網(wǎng)盤下載鏈接(密碼:9z02):OTPS工具箱
里面包含原始TPXO7.2海潮數(shù)據(jù)和相關(guān)案例。
TPXO9海潮數(shù)據(jù)請(qǐng)點(diǎn)擊下載,原始數(shù)據(jù)網(wǎng)址 Url。
導(dǎo)入TPXO9數(shù)據(jù)
我們將下載好的TPXO9數(shù)據(jù)(共25個(gè))保存在同一個(gè)文件夾下,為了區(qū)分原始工具包中帶有的TPXO7.2海潮數(shù)據(jù),將文件夾命名為TPXO9_atlas,我這里是下載了兩種數(shù)據(jù)格式的TPXO9數(shù)據(jù)(一種是二進(jìn)制【binary】;一種是nc數(shù)據(jù)),所以我在TPXO9_atlas的文件夾下再次分了文件夾binary。
我的TPXO9海潮數(shù)據(jù)保存在 E:\TPXO9_atlas\binary\ 中。
同時(shí)有兩種方式將TPXO9海潮數(shù)據(jù)移動(dòng)到OTPS工具箱中:
一種是直接在Windows界面下直接將TPXO9_atlas文件夾直接移動(dòng)到OTPS工具箱的DATA文件夾中;
二是通過在WSL中的鍵入命令命令mv TPXO9_atlas Shell/OTPS/DATA/將其移動(dòng)到DATA文件夾下。
注意:以上的操作都是要根據(jù)自己的實(shí)際文件名和文件位置來操作。
提取數(shù)據(jù)并預(yù)報(bào)
第一步
在Linux(WSL)中打開到OTPS工具箱下,cd /mnt/e/Shell/OTPS,(以自己實(shí)際保存路徑為準(zhǔn))
我們已經(jīng)在前面導(dǎo)入TPXO海潮模型數(shù)據(jù),可以在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文件下有一個(gè)TPXO9_atlas,里面保存的是TPXO9海潮數(shù)據(jù)(以自己具體保存路徑為準(zhǔn),盡量保存在OTPS/DATA/中,以便于后續(xù)的操作)
這時(shí)候我們修改控制文件 Model_tpxo9_atlas,鍵入命令vi Model_tpxo9_atlas:
將文件中 h,u,grid 的路徑位置修改為自己TPXO9數(shù)據(jù)的路徑位置,保存退出:先 ESC 在鍵入:wq!
第三步
返回上級(jí)目錄到 OTPS 下,創(chuàng)建模型運(yùn)行所需要的經(jīng)緯度+時(shí)間文件,也就是自己需要預(yù)報(bào)的區(qū)域和時(shí)間文件,如下所示(逐小時(shí)預(yù)報(bào),分秒為0即可,以空格為間隔):
下面是我自己寫的自動(dòng)生成 經(jīng)緯度時(shí)間 文件的shell腳本(make_lltime.sh),可以修改其中的lon,lat范圍,時(shí)間起始點(diǎn)即可生成想要的數(shù)據(jù)文件。
#!/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 # 建議比最后時(shí)間多一天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,等待腳本執(zhí)行完成,最后生成的 ll_time 文件就是我們需要的經(jīng)緯度+時(shí)間文件!
第四步
編輯輸入文件 setup.inp, vi setup.inp ,在文件的下面有每條指令詳細(xì)的講解,這里不多做贅述。
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.需要提取數(shù)據(jù)的經(jīng)緯度或 需要預(yù)報(bào)的經(jīng)緯度+時(shí)間 文件
3.需要預(yù)報(bào)的數(shù)據(jù)類型,水位(z),潮流(u),具體見文件
4.提取或預(yù)報(bào)所需分潮的名稱,所有分潮保持為 空 即可
5,6,7 條可以不用更改,有具體要求可看文件中詳解
8.輸出文件的路勁位置
根據(jù)實(shí)際情況修改:
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)這里我選取所有分潮進(jìn)行預(yù)報(bào),根據(jù)控制文件更改好路徑位置后,保存退出!
第五步
現(xiàn)在我們已經(jīng)有了 經(jīng)緯度+時(shí)間 文件、輸入文件 setup.inp
鍵入命令 make
發(fā)現(xiàn)文件中生成了 predict_tide 可執(zhí)行文件
第六步
鍵入命令: ./predict_tide < setup.inp,因?yàn)門PXO9 的原始數(shù)據(jù)量較大,需等待片刻!
當(dāng)出現(xiàn) Results are in****** 即完成預(yù)報(bào)計(jì)算。
最后鍵入命令 vi zeta_mt.out 進(jìn)行查看!
總結(jié)
以上是生活随笔為你收集整理的在Linux环境下使用OTPS工具箱提取TPXO9海潮模型数据作潮汐水位预报的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 顶部标题栏的布局设计
- 下一篇: .Net 5简介