Mike post process with Matlab toolbox


表怕,這個博客只有題目是英文的……

 

Matlab toolbox 安裝

 

去DHI官網下載最新的MikeSDK2014與Matlab toolbox,下載好后安裝MikeSDK2014,注意電腦上不能有其他版本的Mike軟件。

安裝成功后進入解壓縮后的Matlab toolbox文件夾MatlabDfsUtil內,運行腳本MatlabDfsUtilBuild.bat,若腳本成功運行,則Toolbox安裝成功。注意檢查SDK安裝路徑與MatlabDfsUtilBuild.bat中內容是否一致,如默認路徑為:

set csc=C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe

set sdkBin=C:\Program Files (x86)\DHI\2014\MIKE SDK\bin

%csc% /t:library /out:MatlabDfsUtil.2014.dll /r:"%sdkBin%\DHI.Generic.MikeZero.DFS.dll" /r:"%sdkBin%\DHI.Generic.MikeZero.EUM.dll" MatlabDfsUtil.cs

 

Mike結果讀取

 

說明:這里以Mike3 FM計算為例,使用的是非結構化三角形網格,垂向采用6層sigma網格

1. 地形

作為地形數據最主要的有兩個:一是x、y節點坐標(Node coordinates);二為節點組成單元信息(element table)。

首先Mike使用三角形網格計算時,其計算的單元體為6頂點的三棱柱體,單元體編號循環遍歷順序為:從底層到表層,然后再水平方向循環。

所以,在Mike結果中單元體總數應該為[水平單元個數X垂向分層數],而表示節點組成單元信息的矩陣EToV行X列大小則為[單元體總數X 6]。

另外,三棱柱單元內6個節點循環順序是從底部三角形三個頂點開始,頂部三角形三個頂點結束,如下圖所示:

下面介紹如何獲得有關數據:

_________________________________________________________

NET.addAssembly('DHI.Generic.MikeZero.DFS');
import DHI.Generic.MikeZero.DFS.*;

dfsu3 = DfsFileFactory.DfsuFileOpen('winter_3D.dfsu');

% Node coordinates
xn = double(dfsu3.X);
yn = double(dfsu3.Y);
zn = double(dfsu3.Z);


% Create element table in Matlab format
EToV = mzNetFromElmtArray(dfsu3.ElementTable);

_________________________________________________________

上面的dfsu就是使用Matlab toolbox函數讀取的計算文件結構體,這個結構體中單元節點信息儲存並非Matlab直接可讀格式,需要調用函數mzNetFromElmtArray進行轉換。

 

2. 計算結果變量相關

計算結果變量信息,包括變量名與單位、變量個數、變量數據讀取等方面。

變量個數:dfsu3.ItemInfo.Count        format: integer

 

變量名與單位:dfsu3.ItemInfo.Item        format: cell{ 0 ~ dfsu3.ItemInfo.Count-1 }

             dfsu3.ItemInfo.Item(varid).Quantity.Unit

             dfsu3.ItemInfo.Item(varid).Quantity.UnitAbbreviation

 

變量數據讀取:varData = double(dfsu3.ReadItemTimeStep(varid,iTime).Data);

                            Format: double[ 1 x elementNum ];

 

注意,這里varidiTime分別代表變量序號與時間步,而提取得到的數據varData也是按照單元循環順序進行循環(先由底至表在三棱柱內循環,后在水平方向循環)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM