表怕,这个博客只有题目是英文的……

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也是按照单元循环顺序进行循环(先由底至表在三棱柱内循环,后在水平方向循环)。

最新文章

  1. BZOJ 2879: [Noi2012]美食节
  2. 《Entity Framework 6 Recipes》中文翻译系列 (22) -----第五章 加载实体和导航属性之延迟加载
  3. hdu 5071(2014鞍山现场赛B题,大模拟)
  4. JMeter学习(四)参数化
  5. tomcat下bin文件夹下shell文件分析
  6. Stream语法详解
  7. 菜鸟学习Hibernate——缓存
  8. 常用抓包指令for wireshark or tcpdump
  9. Educational Codeforces Round 2 A. Extract Numbers 模拟题
  10. SQL Server 移动master 数据库
  11. CheckBox和RadioButton以及RadioGroup
  12. HTML <textarea> 标签的 wrap 属性
  13. spring,hibernate配置事务 beans.xml
  14. Java 代码学习之理解数据类型中的坑
  15. keycode简记表
  16. ARM Mcp2515添加驱动
  17. jquery.form.js ajax提交上传文件
  18. python目标定位(借鉴csdn上大神)
  19. HanLP代码与词典分离方案与流程
  20. test_maven_实现表单验证

热门文章

  1. 【c++ Prime 学习笔记】第4章 表达式
  2. 整数划分为k份
  3. 预备知识-python核心用法常用数据分析库(上)
  4. 数据流中的中位数 牛客网 剑指Offer
  5. 猫狗收容所 牛客网 程序员面试金典 C++
  6. P2120 [ZJOI2007]仓库建设
  7. flyway的使用
  8. 启用或禁用普通用户Exchange Online PowerShell功能
  9. Linux内核 fork 源码分析
  10. 你以为我在玩游戏?其实我在学 Java