1. 简介

Mike是工程和科研领域常用的水动力计算模型,其本身自带了后处理作图功能,但其作图风格往往不是我们想要的,Tecplot是由美国Tecplot公司推出的功能强大的数据分析和可视化处理软件,常被用于海洋模型结果绘图,因此,如何将Mike结果转为tecplot可读的格式,是一个值得思考的问题。

2. 源程序

首先,导入需要的模块:

from mikeio import Dfsu
import numpy as np

读取mike文件中的变量,在此我们以有效波高和悬沙浓度为例,并读取文件的网格信息:

dfs=Dfsu('.\\test.dfsu',)
ds = dfs.read(items=['Total SSC','Wave height'])
e_num = dfs.n_elements   #单元信息
n_num = dfs.n_nodes   #节点信息
x = dfs.node_coordinates[:,0]
y = dfs.node_coordinates[:,1]
z = dfs.node_coordinates[:,2]
e = dfs.element_table   #单元网格构成
data0 = np.array(ds.data)   #Tecplot不识别nan,将mike结果中的nan代替为0
data0[np.isnan(data0)]=0

建立Tecplot文件并向其中写入数据,其中文件格式为6列,但Tecplot并不要求一定是6列,此处输出程序有待优化:

f = open('test.tec','w')
title2='VARIABLES ="Xp","Yp","Zp","Total SSC","Wave height"'
f.write(title2+'\n')
for i in range(dfs.n_timesteps):   print(i)title3 = 'ZONE T ="P_'+str(i)+ '" N='+str(n_num)+ ' E='+str(e_num)f.write(title3+'\n')title4 = 'ZONETYPE=FETriangle,DATAPACKING=BLOCK 'f.write(title4+'\n')f.write('VARLOCATION=([1-3]=NODAL,[4-5]=CELLCENTERED) \n')   #1~3变量为节点,4~5变量为单元for j in range(0,n_num,6):for k in range(6):if j+k<n_num:f.write('%e   ' % x[j+k])f.write(' ')f.write('\n')for j in range(0,n_num,6):for k in range(6):if j+k<n_num:f.write('%e   ' % y[j+k])f.write(' ')f.write('\n')for j in range(0,n_num,6):for k in range(6):if j+k<n_num:f.write('%e   ' % z[j+k])f.write(' ')f.write('\n')for j in range(0,e_num,6):for k in range(6):if j+k<e_num:f.write('%e   ' % data0[0,i,j+k])f.write(' ')f.write('\n')for j in range(0,e_num,6):for k in range(6):if j+k<e_num:f.write('%e   ' % data0[1,i,j+k])f.write(' ')f.write('\n')for j in range(e_num):f.write(str(e[j][0]+1)+' '+str(e[j][1]+1)+' '+str(e[j][2]+1)+'\n')
f.close()

值得注意的是,上述程序中,x,y,z为节点变量,有效波高和悬沙浓度为单元变量。

3. 处理结果

Mike的绘图效果如下图所示:

将文件处理后用Tecplot打开并调节相关参数后:

如何将MIke的结果转成Tecplot格式--基于python相关推荐

  1. 【Python】python实现jpg图片文字转成pdf格式

    python实现jpg图片文字转成pdf格式 [代码][Python]代码 #!/usr/bin/env pythonimport os import sys from reportlab.lib.p ...

  2. matlab数据转换为tecplot格式[ASCII码格式下的plt文件]

    matlab数据转换为tecplot格式[ASCII码格式下的plt文件] 1 tecplot能读取的的常见ASCII格式 1.1 文件格式与文件头 1.2 zone相关的格式 2 一维数据 3 二维 ...

  3. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel

    作者:青春阳光king python实现word转成自定义格式的excel文档(解决思路和代码)支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符. 最近在开发一个答题类的小程 ...

  4. PDF文件如何转成markdown格式

    百度上根据pdf转makrdown为关键字进行搜索,结果大多数是反过来的转换,即markdown文本转PDF格式. 但是PDF转markdown的解决方案很少. 正好我工作上有这个需求,所以自己实现了 ...

  5. 厉害了,用Python绘制动态可视化图表,并保存成gif格式

    作者 | 俊欣 来源 | 关于数据分析与可视化 最近有粉丝问道说"是不是可以将这些动态的可视化图表保存成gif图",小编立马就回复了说后面会写一篇相关的文章来介绍如何进行保存gif ...

  6. 安卓取map集合转换为json_android json解析成map格式

    "discount": { "3": "34", "4": "33", "5": ...

  7. python使用openCV加载图像、并将BGR格式转换成HSV格式、定义HSV格式中需要分离颜色的掩码(掩模)区间(mask)、并使用mask信息进行颜色分离、BGR格式的图像转化为RGB、并可视化

    python使用openCV加载图像.并将BGR格式转换成HSV格式.定义HSV格式中需要分离颜色的掩码(掩模)区间(mask).并使用mask信息进行颜色分离.将BGR格式的图像转化为RGB.可视化 ...

  8. python 怎么将数组转为列表_图片转换成pdf格式怎么操作?什么软件能将图片转为pdf?...

    伙伴们好,你们知道如何把图片转为pdf格式吗?前一阵子我参加了一个家居行业大会,在会议上拍摄了不少会议照片,包括主持人讲话.嘉宾出席.观众提问.产品推广等环节都拍摄了不同的角度.拍摄好后,需要传送给写 ...

  9. xsd文件转图片_图片转换成PDF格式怎么转?图片转换成PDF的软件哪个好?

    图片转换成PDF格式怎么转?经验丰富的设计师在完成图片格式的设计作品后都会将图片转成PDF格式文件,这样方便保存以及参加一些设计比赛.同时我们在保存大量图片的时候也可以将图片转换成PDF文件.但是还有 ...

最新文章

  1. 【完结】利用 Composer 完善自己的 PHP 框架(三)——Redis 缓存
  2. ZAM 3D入门教程(5):Lathe编辑器
  3. uWSGI+Nginx安装、配置
  4. 操作系统课设--扩展文件系统
  5. Codeforces626B - Cards【模拟】
  6. 《Core Java 课件》Day02
  7. unity3d AssetBundle 资源热更专题
  8. Unity 内置渲染管线、SRP、URP、HDRP区别
  9. h264 pps sps详解
  10. python 抓取微博评论破亿_利用python实现爬取微博评论的方法
  11. SQL 日期交差判断
  12. MOOC《程序设计入门——C语言》翁恺 第六周编程练习及答案
  13. 阿里云服务平台,分布式架构云平台解决方案
  14. 一年级金字塔框填数字_一年
  15. 计算机上机模拟试题答案,[计算机类试卷]国家二级VB机试(上机操作)模拟试卷420及答案与解析.doc...
  16. 如何检验有调节的中介作用?
  17. 增值电信业务经营许可证办理续期流程
  18. php post发微博,php结合redis实现高并发下发帖、发微博的方法
  19. 兆鹏带你读watir——【第五篇】watir的js应用(技巧篇)
  20. C语言中输入两个整数,输出其中的最大值

热门文章

  1. Linu系统(笔记版)
  2. 第20回 二弟呀,你赤兔带蓝牙不?
  3. Rainbond之NFS文件挂载(下篇)
  4. “春节十二响”C语言代码开源了,命名是亮点
  5. CenterNet:Objects as Points论文学习笔记+代码复现(demo+训练数据)【检测部分】
  6. linux下光模块参数如何查找,光模块介绍以及常用接口参数查询
  7. Node 入门及模块系统
  8. 【数据结构】(二叉树)递归求解双分支结点个数
  9. linux 服务器之间数据复制—scp
  10. Android 通过JNI获取MAC地址(适配Android6.0及以上)