2
我有一些Clojure代碼可以生成規則的3D數據網格(體素)。我想把它寫到一個文件中,這個文件以後可以被Paraview讀取(可能還有其他分析/可視化程序)。什麼是最簡單的方法來做到這一點?我的主要優先考慮是簡單性,但我也希望這也能夠很好地擴展,以便我可以將它用於大型數據集。我不需要處理比常規網格更復雜的任何事情。什麼數據格式可以從Java(Clojure)寫入並由Paraview讀取?
我有一些Clojure代碼可以生成規則的3D數據網格(體素)。我想把它寫到一個文件中,這個文件以後可以被Paraview讀取(可能還有其他分析/可視化程序)。什麼是最簡單的方法來做到這一點?我的主要優先考慮是簡單性,但我也希望這也能夠很好地擴展,以便我可以將它用於大型數據集。我不需要處理比常規網格更復雜的任何事情。什麼數據格式可以從Java(Clojure)寫入並由Paraview讀取?
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)))
然後,可以通過選擇該文件讀此入的Paraview(使用.raw
擴展)和進入所述元數據(原點,步驟,範圍)軸。這不是一個好的解決方案 - 最好在文件中包含元數據 - 但它非常簡單。它的工作原理。
[注 - DataOutputStream以big-endian格式生成數據]