PySeison-教程6:驗證類

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將顯示它們例如標籤

一個屬性是一個量固有其對象。甲方法是本徵函數時改變的屬性的目的的。相反,一個函數將產生自己的輸出

object.method(inputs)output = object.function(inputs)
 

站點屬性爲:

  • 歷史記錄:歷史記錄元數據,可跟蹤對象的變化
  • 變量:收集與水動力學有關的數據。請注意,方法將在此屬性中生成新字段
  • 基準:收集標準驗證基準。請注意,只有運行了 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:

  • 執行數據驗證VAL2save_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:

  • 執行數據驗證VAL3save_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年。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章