2

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

4

1 回答 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 回答