日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發布時間:2023/12/20 linux 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在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海潮模型数据作潮汐水位预报的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。