2017-02-07 1 views
1

時間依存データをプロットする便利な方法はありますか?ある期間にわたって軌道を出力するプログラムを持っているとします。したがって、3列のtxtファイル(t、x、y)があります。後の2つの列の進化を時代に示すビデオファイル(mp4 avi gifなど)を作成したいと思います。私は、データを出力し、gnuplotを呼び出し、pngを出力し、必要な時間を繰り返し、ffmpegを使ってすべてのpngをmp4にマッシュするプログラムを書いた。しかし、すべてのpngを生成するには非常に長い時間がかかりますが(それぞれ約0.2秒程度)、2分30fpsの実行には約12分かかります。また、3600 pngのディレクトリを作成してから、そのディレクトリを削除します。私はこの数十年の間に誰かによって開発されたこれを行うためのより簡単な方法があったと感じています。このようなことをするためにはよりエレガントな方法が必要です。私もWindows 10を実行しています。Fortranコードからのアニメーションプロット用モジュール

+0

すべてのフレームを含む単一のデータファイルを作成し、gnuplot内で一度に変換することはできませんか? ( "set terminal gif animate ..."、 "reread"、 "plot ... index ..."など)? – roygvib

答えて

1

は、それはあなたのアプリケーションのための、おそらくやり過ぎだが、あなたは、その後のParaview(http://www.paraview.org/)または訪問(https://wci.llnl.gov/simulation/computer-codes/visit)を通じて結果を処理し、(http://www.cacr.caltech.edu/~slombey/asci/vtk/vtk_formats.simple.htmlを参照)VTKフォーマットにデータを書き込むこと(または変換)に見てみたいことがあります。レガシーVTK形式は、Fortranから比較的簡単に書くことができます。一番難しいのは、のような柔軟性のあるものは誰も理解できないようにする方法を理解することです。ファイル形式です。 2番目に難しいのは、VisIt UIに必要なオプションが隠されている場所を見つけることです。 VTKを書くための既存のF90ライブラリ(https://people.sc.fsu.edu/~jburkardt/f_src/vtk_io/vtk_io.html参照)があります。

私は知っていますが、ビットを並べ替えると、Visitを使ってアニメーションプロットを生成するのが簡単で、gnuplotよりもはるかに速くなるはずです。私は、Fortranコードから直接書き込まれたデータに基づいて、温度、発熱などのアニメーション2Dマップを作成するためにこのメソッドを使用しました。

もう1つの方法は、VisItでサポートされているより簡単なデータ形式を探し、それらを使用することです。私はVTKを選択しました。なぜなら、(多少)文書化され、複数の視聴者によってサポートされていたからです。しかし、あなたのニーズに合ったより良いフォーマットがあるかもしれません。

+0

またはParaviewから開くことができる他のデータ型。それらの負荷があり、Fortranバインディングが利用可能なものがあります。 –

関連する問題