通过Python将数据导入LLNL VisIt

1 投票
2 回答
1463 浏览
提问于 2025-04-15 13:28

我想知道,如果不使用VisIt的python库visit-writer.py,我该如何将我的数据导入VisIt?我知道有很多其他文件格式,但我找不到一个简单的库,可以直接把我的数据数组写成文件。具体来说,我的数据是自适应网格盒子(其实就是体素),我觉得用非结构化数据网格来表示最合适。对于每个体素,我需要附加各种标量或向量变量。

2 个回答

1

还有一个叫做 pyvisfile 的工具包,它就是为了实现这个功能而设计的。我还没试过,但它说是可以用的。

2

从快速浏览VisIt手册中的“将数据导入VisIt”部分来看,创建VisIt兼容的数据文件大致有三种方法:

  1. 如果你的数据是均匀网格上的标量数据,最简单的方法可能是将数据格式化为VisIt的BOV(“值块”)数据库读取插件。这种方法需要一个二进制数据文件,实际上就是把数据数组直接写到磁盘上,还有一个文本格式的头文件,里面包含了数据的维度、类型和字节序等信息。
  2. 如果你的模拟代码是用C(++)或Fortran写的,可以使用Silo库(也是在LLNL开发的)来创建VisIt兼容的数据文件。“将数据导入VisIt”提供了C和Fortran的代码示例,教你如何使用Silo写出矩形、曲线、点和非结构化网格的数据。
  3. 如果你的模拟代码是用C(++)或Python写的,可以使用visit_writer库将数据保存为VTK(可视化工具包)格式。

简单来说,虽然你可能不想使用visit_writer,但对于Python来说,这可能是保存数据为VisIt兼容格式的最简单方法。

撰写回答