通过Python将数据导入LLNL VisIt
我想知道,如果不使用VisIt的python库visit-writer.py,我该如何将我的数据导入VisIt?我知道有很多其他文件格式,但我找不到一个简单的库,可以直接把我的数据数组写成文件。具体来说,我的数据是自适应网格盒子(其实就是体素),我觉得用非结构化数据网格来表示最合适。对于每个体素,我需要附加各种标量或向量变量。
2 个回答
1
还有一个叫做 pyvisfile 的工具包,它就是为了实现这个功能而设计的。我还没试过,但它说是可以用的。
2
从快速浏览VisIt手册中的“将数据导入VisIt”部分来看,创建VisIt兼容的数据文件大致有三种方法:
- 如果你的数据是均匀网格上的标量数据,最简单的方法可能是将数据格式化为VisIt的BOV(“值块”)数据库读取插件。这种方法需要一个二进制数据文件,实际上就是把数据数组直接写到磁盘上,还有一个文本格式的头文件,里面包含了数据的维度、类型和字节序等信息。
- 如果你的模拟代码是用C(++)或Fortran写的,可以使用Silo库(也是在LLNL开发的)来创建VisIt兼容的数据文件。“将数据导入VisIt”提供了C和Fortran的代码示例,教你如何使用Silo写出矩形、曲线、点和非结构化网格的数据。
- 如果你的模拟代码是用C(++)或Python写的,可以使用
visit_writer
库将数据保存为VTK(可视化工具包)格式。
简单来说,虽然你可能不想使用visit_writer
,但对于Python来说,这可能是保存数据为VisIt兼容格式的最简单方法。