1.2。對象定義
根據定義,Python是一種面向對象的語言,而matlab也是。PySeidon基於此對象概念,因此讓我們定義第一個“ Validation”對象。
練習1:
- 使用Ipython 快捷方式 解開Drifter文檔
回答:
Validation?
根據文檔,爲了定義Validation對象,所需的輸入爲:
- PySeidon測量對象(例如ADCP,TideGauge,Drifter)的獨立或元組
- PySeidon模擬對象(即FVCOM或Station)
請注意,流量 選項允許通過表面流量('sf'),深度平均流量('daf')或任何深度(浮動)進行流量比較。如果未提供此選項,則將向用戶提示選項選項。
練習2:
- 從./data4tutorial/drifter_GP_01aug2013.mat中提供的模板初始化adcp,tidegauge和drifter對象
- 提示:將文件的路徑調整爲本地計算機的路徑。
- 從以下opendap URL初始化Station和fvcom對象:http ://ecoii.acadiau.ca/thredds/dodsC/ecoii/test/Station3D_dngrid_BF_20130730_20130809.nc 和http://ecoii.acadiau.ca/thredds/dodsC/ecoii/test /FVCOM3D_dngrid_GP_20130801_20130802.nc
- 初始化val1,一個Validation對象,使用adcp對象和station對象作爲輸入
- 使用所有測量對象和FVCOM對象的列表以及'daf'的'flow'選項作爲輸入,初始化val2,一個Validation對象。
- 使用所有測量對象和FVCOM對象的列表以及-5.0的“ flow”選項作爲輸入,初始化val3,一個Validation對象。
回答:
drift = Drifter('./data4tutorial/drifter_GP_01aug2013.mat')
adcp = ADCP('./data4tutorial/adcp_GP_01aug2013.mat')
tg = TideGauge('./data4tutorial/tidegauge_GP_01aug2013.mat')
station = Station('http://ecoii.acadiau.ca/thredds/dodsC/ecoii/test/Station3D_dngrid_BF_20130730_20130809.nc')
fvcom = FVCOM('http://ecoii.acadiau.ca/thredds/dodsC/ecoii/test/FVCOM3D_dngrid_GP_20130801_20130802.nc')
val1 = Validation(adcp, station)
val2 = Validation([adcp, drift, tg], fvcom, flow='daf')
val3 = Validation(adcp, fvcom, flow=-5.0)
得到:
Retrieving data through OpenDap server...
Initialisation...
Retrieving data through OpenDap server...
Initialisation...
Station site: GP_130730_TA
1.3。對象屬性,函數,方法和特殊方法
TideGauge對象具有2個屬性和5個方法。通過鍵入val1將顯示它們。例如標籤。
一個屬性是一個量固有其對象。甲方法是本徵函數時改變的屬性的目的的。相反,一個函數將產生自己的輸出:
站點屬性爲:
- 歷史記錄:歷史記錄元數據,可跟蹤對象的變化
- 變量:收集與水動力學有關的數據。請注意,方法將在此屬性中生成新字段
- 基準:收集標準驗證基準。請注意,只有運行了 validate方法之一後,此屬性纔會出現。
工作站的方法和功能爲:
- Benchmarks_map:繪製測深圖和模型驗證基準
- validate_data:根據時間序列分析計算一系列標準驗證基準
- validate_harmonics:此方法計算諧波分析的每個組成部分(即* _error.csv)的誤差(以%爲單位)並將其存儲在csv文件中。
- taylor_diagram:基於“ validate_data”的結果繪製泰勒圖
- save_as:將當前的Validation結構保存到 pickle或 mat文件中
2. PySeidon-動手(15分鐘)
練習3:
- 執行數據驗證的VAL1在-5.0米的深度與情節選項設置爲True,save_csv選項設置爲True和文件名以“TEST1”。
- 請注意,文件夾 adcp_GP_01aug2013已創建。
- 繪製val1的泰勒圖
- 執行諧波驗證的VAL1在-5.0米深度與文件名選項=“TEST2”。
- 請注意,已經創建了 test_el_harmo_error.csv和 test_vel0_harmo_error.csv。
回答:
val1 。validate_data (plot = True , save_csv = True , filename = 'test1' )
val1 。taylor_diagram ()
val1 。validate_harmonics (filename = 'test2' )
---驗證基準---
MDPO偏斜齒輪R2 RMSE NOF CF ovORun \
adcp_GP_01aug2013 0 -11.59 ADCP 1.00 0.16 0.00 100.00 +
adcp_GP_01aug2013 300 -8.77 ADCP 0.91 0.21 0.00 45.00-
adcp_GP_01aug2013 40 40.95 ADCP 0.92 11.62 1.43 85.00-
adcp_GP_01aug2013 140 -216.11 ADCP 0.76 0.29 47.86 22.86 +
adcp_GP_01aug2013 60 15.60 ADCP 0.99 0.27 0.00 84.29-
adcp_GP_01aug2013 20 12.81 ADCP 0.99 0.39 0.00 95.71-
adcp_GP_01aug2013 0 -149.50 ADCP 0.97 1.37 0.71 65.00-
相位SI偏置NRMSE corr POF NSE技能\
adcp_GP_01aug2013 -180 -3.54 0.14 3.98 1.00 0.00 0.98 1.00
adcp_GP_01aug2013 -180 0.15 0.12 11.04 0.95 1.43 0.86 0.96
adcp_GP_01aug2013 -180 5.00 15.65 12.91 0.96 4.29 0.89 0.97
adcp_GP_01aug2013 -180 -11.38 -0.15 56.01 0.87 11.43 -4.19 0.65
adcp_GP_01aug2013 -180 1.56 0.17 6.83 1.00 0.00 0.90.9 0.99
adcp_GP_01aug2013 -180 2.29 0.14 9.87 1.00 0.00 0.98 0.99
adcp_GP_01aug2013 -180 2.58 -0.86 9.10 0.99 0.00 0.91 0.97
類型MDNO SD
adcp_GP_01aug2013 elev 0 0.35
adcp_GP_01aug2013速度60 0.42
adcp_GP_01aug2013目錄20 15.14
adcp_GP_01aug2013 u 370 0.49
adcp_GP_01aug2013 v 0 0.46
adcp_GP_01aug2013 vel 0 0.42
adcp_GP_01aug2013立方速度230 1.27
/usr/local/lib/python2.7/dist-packages/matplotlib/text.py:52:Unicode警告:Unicode相等比較無法將兩個參數都轉換爲Unicode-將它們解釋爲不相等
如果旋轉(“水平”,無):
/usr/local/lib/python2.7/dist-packages/matplotlib/text.py:54:Unicode警告:Unicode相等比較無法將兩個參數都轉換爲Unicode-將它們解釋爲不相等
elif rotation =='垂直':
站址:GP_130730_TA
解決:
基質製備...
解決方案...
診斷...
做完了
解決:
基質製備...
解決方案...
診斷...
做完了
解決:
基質製備...
解決方案...
診斷...
做完了
解決:
基質製備...
解決方案...
診斷...
做完了
練習4:
- 執行數據驗證的VAL2與save_csv選項設置爲True和文件名以“TEST3”。注意:這需要一些時間...
- 請注意,已創建文件夾 adcp_GP_01aug2013_bis, drifter_GP_01aug2013和 tidegauge_GP_01aug2013。
- 繪製val2的泰勒圖
回答:
val2 。validate_data (save_csv = True , filename = 'test3' )
val2 。taylor_diagram ()
練習5:
- 執行數據驗證的VAL3與save_csv選項設置爲True和文件名以“TEST4”。注意:這需要一些時間...
- 請注意,文件夾 adcp_GP_01aug2013_bis_bis已創建。
- 繪製val3的基準圖
val3 。validate_data (save_csv = True , filename = 'test4' )
val3 。Benchmarks_map ()
3.驗證基準定義
這種對一組統計數據的收集和分析主要遵循被NOAA定義爲水動力模型驗證標準的基準[1]。添加了其他統計信息,以提供有關模型[2、3、4]技能的更多信息。
當前的驗證集通常執行以下變量,但可以擴展到其他流體動力學量:
- 當前速度(無符號速度)
- 電流方向(在-180至180度之間)
- 高程(偏離平均海平面)
基準測試
以下是用於評估模型技巧的統計信息列表
- RMSE:均方根誤差
- SD:誤差的標準偏差
- CF(X):中心頻率;落入範圍(-X,X)的誤差值的百分比
- POF(X):正離羣頻率;誤差值超過X的百分比
- NOF(X):負異常頻率;低於-X的錯誤值的百分比
- MDPO(X):正異常值的最大持續時間;連續錯誤超過X的最長分鐘數
- MDNO(X):負異常值的最大持續時間;連續錯誤降至X以下的最長分鐘數
- Willmott技能:衡量模型對0到1之間觀察到的數據的依從性的一種方法,其中0絕對不遵守,1完美。
- 相位:模型數據的相移(分鐘),可在+/- 3小時的時間範圍內使RMSE最小。
- R2(即確定係數):在0和1之間的模型數據和觀察到的數據之間的線性相關強度的度量,其中0爲無相關,而1爲完全相關。
X的值取決於變量及其使用的統計信息。如此處定義,X等於數據範圍的10%。NOAA還定義了確定模型技能的值的限制。因此,CF不能低於90%,NOF / POF不能高於1%,MDPO / MDNO不能超過24hr / 1440min。理想情況下,Willmott Skill和R2應該爲1,相位應該爲0。
參考文獻
[1] KW Hess,TF Gross,RA Schmalz,JG Kelley,F。Aikman和E. Wei,“ NOS評估可操作的臨近預報和前期水動力模型系統的標準,”美國國家海洋和大氣管理局,Silver Srping,馬里蘭,2003年。
[2] K. Gunn和C.Stock-Williams,“關於驗證複雜潮汐流的數值流體動力學模型”,《國際海洋能源雜誌》,第1卷。3-4號 特刊,第82-97頁,2013年。
[3] N. Georgas和AF Blumberg,“在海洋預報系統中建立信心:紐約港觀測和預測系統的設計和技能評估,第3版(NYHOPS v3)”,在第11屆國際河口和海岸建模會議上,美國華盛頓州西雅圖市,2010年。
[4] Y. Liu,P。MacCready,HM Barbara,EP Dever,M。Kosro和NS Banas,“ 2004年夏季哥倫比亞河羽流的沿海海洋環流模型評估”,《地球物理研究》,第1卷。114號 C2,第2頁。1978年– 2012年,2009年。