忍者ブログ

火山系フリーターの落書き帳

火山学者が書かない秘密の話。

MELTS自動化の旅その3。大量の*.meltsファイルを用意する方法

1.はじめに

xautomationのコードを紹介した前回に引き続き、MELTSを自動で計算させるための話。

今回は大量のインプットファイルを用意する方法。

2.大量の*.meltsファイルを用意する方法

実は今回のMELTS自動化のきっかけは、「MELTS演算時の温度圧力条件を毎回手作業で変更するのがめんどい」という話からきています。 例えば、イニシャル条件の圧力を100bar刻みで深くしたい時、GUI操作で毎回圧力条件を変えるのがちまちますぎてイライラすると。 だいたい30分も遊んでりゃ飽きますよね、と。

イニシャルの条件自体は*.meltsに保存できるため、そのファイルを大量に生成して、ファイル数分だけ前回の自動処理を繰り返せば、あとは必要な結果を回収すれば良いのでは?と考えたのです。

前回の触れたとおり、*.meltsファイルの実体は単なるテキストファイルですので、同じファイルを生成するのは簡単です。 そこで、エクセルのリストでインプットデータを管理し、それを*.meltsに変換する処理も加えてみました。

方法は単純で、エクセルで指定した形式でデータを作った後、CSVファイルとして保存し、MELTSのインストールされたLinuxへ持ち込みます。 それをMELTS自動化ソフトで*.meltsへ変換して特定のディレクトリに保存し、あとはファイル数に応じて計算を繰り返すだけです。

環境にもよるでしょうが、500データぐらいなら*.meltsファイルへの変換は一瞬です。

3.ちょっとした与太話

先日たまたまMELTSを使った際に、今回紹介する手順で約400ファイルを走らせたところ2~3時間ぐらいかかりました。 映画1本見るのにちょうど良かったので、筆者はニコ動でカプリコン1を観てたら、いつのまにか昼寝してました・・・。

今回のように、数百ファイルもパターンを作って走らせる使い方が適切なのかどうかは知りません。

そもそも、火山学に限った話かどうかは知りませんが、そういった研究ノウハウはなかなか表に出てこないことが多いように気がします。 研究室やある集団での伝統のようになっているようなイメージです。

そのため、それを知らない別の集団では「車輪の再発見」みたいなことをしているのではないか、と思うのです。 知識を得るために必要なのかもしれませんが、時間の無駄ですって。

今回、MELTSの自動化に関する話をネットに垂れ流してるのもそれを意図しています。

4.おしまい

というわけで、インプットから処理まではほぼ自動化が完了しましたが、出てきたファイルが膨大すぎて、チェックに恐ろしく手間がかかる課題が出来てしまいました。 幸い、アウトプットされるファイルも単なるテキストファイル(*.tblファイルはCSV形式)のため、必要な情報を抽出してまとめる処理を追加できそうです。

まだそこまでは作っていないので、アプリそのもののソースはまだ公開しない予定です。

PR