這裡示範如何使用 ParaView 的 Trace 功能錄製 Python 指令稿,自動控制 ParaView 執行各種工作。
ParaView 本身就有支援 Python 語言的指令操作介面,在 GUI 視窗介面上的每一項操作都可以使用 Python 指令的方式達成,對於有自動化需求的人,就可以使用 Python 來撰寫指令稿控制 ParaView 處理各項繪圖工作。
然而 ParaView 的 Python API 非常多,對於剛入門的初學者來說不太好學,最快速的學習方式就是使用 ParaView 的 Trace 功能,將視窗介面中的每個互動式操作錄製下來,自動產生一份完整的 Python 指令稿,再從這個指令稿去修改,這樣就可以非常快速的解決一般性的自動化問題,減少自行撰寫程式的時間。
以下是在 ParaView 中用 Trace 功能錄製 Python 指令稿的步驟教學。
Step 1
在 ParaView 的主選單中,選擇「Tools」底下的「Start Trace」。
Step 2
設定一些錄製選項,若要讓 ParaView 錄製比較細部的動作就可以在這裡調整,一般來說用預設值即可。
點選「OK」之後,ParaView 就會開始把接下來所有的操作錄製起來。
Step 3
在 ParaView 的 GUI 視窗介面中,將未來要讓 ParaView 自動化處理的工作,以手動的方式操作一次,讓 ParaView 錄製起來。
這裡我是將範例資料的 headsq.vti
檔打開,然後套用一個 isosurface,並將顏色調成紅色。
Step 4
操作完所有的動作之後,再選擇「Tools」的「Stop Trace」,讓 ParaView 終止錄製指令稿。
Step 5
錄製完成之後,就會產生類似這樣的 Python 指令稿,這些就是剛剛所有的操作所對應的 Python 指令,以這份基本的指令稿為基礎,要開發自己的自動化程式就比較輕鬆了。
Step 6
撰寫好的 Python 指令稿,可以透過 ParaView 的 Python Shell 來執行,請選擇「Tools」的「Python Shell」。
Step 7
在 ParaView 的 Python Shell 中,我們可以將寫好的 Python 指令用複製貼上的方式貼過來執行,或是將指令稿存檔後,用這裡的「Run Script」來執行也可以。
Step 8
另外一種執行 ParaView Python 指令稿的方式是在 ParaView 之外,直接使用 ParaView 所附帶的 pvpython
來執行 Python 指令稿:
pvpython myscript.py
如果想要使用 Python 指令稿開啟互動式的 ParaView 視窗,讓使用者可以進行轉動、放大等操作,則要自己在 Python 指令稿結尾處加上一行開啟互動式視窗的 Interact
指令:
# 開啟互動式 ParaView 視窗
paraview.simple.Interact(view=None)
用 pvpython
來開啟 ParaView 的互動式視窗會類似這樣:
如果想要在 ParaView 應用程式啟動時,自動執行 Python 指令稿,可以使用 --script
參數,另外若要自動連上指定的 ParaView 伺服器,則可配合 --server
參數。例如:
paraview --server=my_server --script=myscript.py
--server
參數在使用前,要先在 ParaView 中編輯伺服器的設定,然後才能在這邊以伺服器的名稱(這個名稱是自己指定的)來指定伺服器。
參考資料:ParaView/Python 官方參考手冊、ParaView Guide 官方手冊