我有一些生成常规 3D 数据网格(体素)的 Clojure 代码。我想把它写到一个文件中,以后可以由 Paraview (以及可能的其他分析/可视化程序)读取。最简单的方法是什么?我的主要优先事项是简单,但我也希望它能够很好地扩展,以便我可以将它用于大型数据集。我不需要处理比常规网格更复杂的事情。
问问题
239 次
1 回答
2
Paraview 有一个“原始”输入格式,它只是一个二进制值序列,其中 X 变化最快,Z 最慢。以下 Clojure 代码将以这种格式编写一个双精度序列:
(defn write-doubles [voxels path]
"write raw data stream - for paraview x must vary fastest."
(let [out (java.io.DataOutputStream.
(java.io.BufferedOutputStream.
(java.io.FileOutputStream. path)))]
(dorun (map (fn [v] (.writeDouble out v)) voxels))
(.close out)))
然后,您可以通过选择文件(使用.raw
扩展名)并输入轴的元数据(原点、步长、范围)将其读入 Paraview。这不是一个很好的解决方案——在文件中也包含元数据会更好——但它非常简单。它有效。
[注意 - DataOutputStream 以大端格式生成数据]
于 2011-08-26T12:42:59.713 回答