什么数据格式可以从Java(Clojure)编写并由Paraview读取?

时间:2011-08-26 00:28:54

标签: java clojure data-visualization dataformat paraview

我有一些Clojure代码可以生成常规的3D数据网格(体素)。我想把它写成一个文件,以后可以由Paraview读取(可能还有其他分析/可视化程序)。最简单的方法是什么?我的主要优先事项是简单性,但我也希望这也能很好地扩展,以便我可以将它用于大型数据集。我不需要处理比常规网格更复杂的东西。

1 个答案:

答案 0 :(得分: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以big-endian格式生成数据]