2011-08-26 31 views
2

我有一些Clojure代碼可以生成規則的3D數據網格(體素)。我想把它寫到一個文件中,這個文件以後可以被Paraview讀取(可能還有其他分析/可視化程序)。什麼是最簡單的方法來做到這一點?我的主要優先考慮是簡單性,但我也希望這也能夠很好地擴展,以便我可以將它用於大型數據集。我不需要處理比常規網格更復雜的任何事情。什麼數據格式可以從Java(Clojure)寫入並由Paraview讀取?

回答

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))) 

然後,可以通過選擇該文件讀此入的Paraview(使用.raw擴展)和進入所述元數據(原點,步驟,範圍)軸。這不是一個好的解決方案 - 最好在文件中包含元數據 - 但它非常簡單。它的工作原理。

[注 - DataOutputStream以big-endian格式生成數據]

相關問題