仕事の関係で、数値計算した結果をEPS出力せねばならない場面にしばしば出くわす。
これまでは市販の某ポスト処理ツールを使用していたのだが、最近のバージョンアップでEPS出力機能が廃止されたので、渋々ParaViewを使ってみることにした。
しかし、ParaViewを使えばすんなりベクターフォーマットで出力出来るようになる訳ではない。
以下はその顛末記。
OpenGLの表示をPostScript出力するライブラリとして、GL2PSなるものが提供されている。
ParaViewからベクターフォーマットする為には、GL2PS経由で画像を出力すればよい。
…のだが、一般に流通しているParaViewのバイナリにはGL2PSが同梱されていないorz
そんな訳で、GL2PS入りParaViewを入手する為には自前でビルドする必要がある。
詳しい方法は以下のサイトに紹介されていたので、こちらを参考にMac上でビルドしてみる事にした。
postprocess:paraview | Applied Mechanics Lab. WIKI
ParaViewの最新版ソース(.tar.gz形式、所謂tarball)はこの辺から拾ってきた。
適当な名前の空フォルダ上で解凍する。Safariで拾ってきて、Archive Utilityで解凍すればOK。ビルド時に同じ階層にごっそり中間ファイルが生成されるので、専用の空フォルダ上で作業した方がいい。
手元のMacBook Air(Intel Core i7 1.8GHz / 4GB RAM / Mac OS X 10.7.2)にはMacPortsがインストール済みなので、ビルド作業に必要なツールはMacPorts上で準備していく。
とは言うものの、今回新規にport installしたのはcmakeとqt4-macのみ。qt4-macを入れておかないと、cmakeした際にQT4_WRAP_CPPでエラーが出る。
ここからは(MacPortsもそうだけど)ターミナル上でゴリゴリ作業。
解凍されたParaViewデータの置いてあるフォルダ上でcmakeコマンドを実行すると、ずらずら関連ファイルを探し始める。cmakeが完了した時点でccmakeコマンドを実行すると、今度はビルドオプションを設定する画面が表示される。
上記サイトの記述に従って、PARAVIEW_ENABLE_PYTHONとVTK_USE_GL2PSをONにしてから、cキーを叩いてConfigureを実行する。
その後gキーを叩くとMakefileが生成される…のだが、当方の環境では何故かConfigure実行後gオプションが表示されなかった。一旦qキーを叩いてccmakeを終了して、再度ccmakeを起動してからConfigureを再実行したらようやくgオプションが表示された。原因は解らん。
その後makeしてからmake install。
デフォルトのインストール先は/usr/localなのだが、生成されたデータはUnix実行ファイルではなくIntelバイナリのパッケージだったので、そのままApplicationsフォルダに移動してしまった。
んで、実際にベクター形式のファイルを幾つか出力してみた。
PostScript出力する場合はPythonターミナル上でexporter.SetFileFormatToPS()を実行するのだが、最後の‘PS’の部分をEPSだのSVGだのPDFだのに変更すればそれぞれの形式で出力される。
…のだが、Lion標準のPostScriptエンジン及びAdobe Illustrator CS5では.ps及び.eps形式のファイルを解釈出来なかった。Ghostscriptなら行けるのかも知れないが、手元の環境にはGhostscriptをインストールしていないので確認出来ない。
また、PDFで出力した場合もオブジェクト本体がベクターフォーマットではなくビットマップで出力されてしまい、意図していた結果が得られなかった。
そんなこんなで、出力したデータを更にいじくり回すのであればSVGで出力しておくのが良さそう。
取り敢えず目的は果たせたので一安心。
しっかし、最新のMacBook Airでもmakeに2時間近く掛かるってのはどうにかならんものなのか…。