matlab process,[转载]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:WindowsMicrosoft.NETFrameworkv4.0.30319csc.exe

set sdkBin=C:Program Files (x86)DHI2014MIKE SDKbin

%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网格

地形

作为地形数据最主要的有两个:一是x、y节点坐标(Node

coordinates);二为节点组成单元信息(element

table)。

首先Mike使用三角形网格计算时,其计算的单元体为6顶点的三棱柱体,单元体编号循环遍历顺序为:从底层到表层,然后再水平方向循环。

所以,在Mike结果中单元体总数应该为[水平单元个数X垂向分层数],而表示节点组成单元信息的矩阵EToV行X列大小则为[单元体总数X

6]。

另外,三棱柱单元内6个节点循环顺序是从底部三角形三个顶点开始,顶部三角形三个顶点结束,如下图所示:

a4c26d1e5885305701be709a3d33442f.png

下面介绍如何获得有关数据:

_________________________________________________________

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进行转换。

计算结果变量相关

计算结果变量信息,包括变量名与单位、变量个数、变量数据读取等方面。

变量个数: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 ];

注意,这里varid与iTime分别代表变量序号与时间步,而提取得到的数据varData也是按照单元循环顺序进行循环(先由底至表在三棱柱内循环,后在水平方向循环)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值