韜晦日記

韜晦日記

Rietveldよりもプログラミングメインになりつつある

Rietveld解析初心者による備忘録とつぶやき

RIETAN-FPの実行方法2: batファイルの作成

RIETAN-FP実行の為のBatch File作成

いよいよ.batファイルの作成です。実際に【RIETAN_VENUS_examples】にあるCu3Fe4P6を例に挙げてbatファイルを作成したいと思います。
RIETANを実行するための指針としては以下のようになります。

ということで作成したbatファイルの中身か以下のようになります。
兎に角動かしたい場合はコピペして使って見てください。
エラーが発生する場合は、次の記事<後日掲載>を参考に対応してみてください。

また、私が初めてbatファイルを作成した際には、

を参考にしました。こちらのbatでは、9x系とNT系の判定を行い処理を変更していますが、今となっては不要ですのでその辺は削除してもいいと思います。というか、今から説明するのはこれの省略版のようなものです。


それではやっていきましょう。
batファイルを作成するにあたっては、RIETANのファイルにあるbatファイルを一部流用します。
RIETANファイルの【RIETAN_VENUS > Batch_files > RIETAN.bat】を開いてください。batファイルを開く場合は、ファイルを右クリックし[編集]をクリックしてください。単に左クリックするとファイルが実行されます。

また、Notepad++を使用する場合は、右クリックして[Edit with Notepad++]を選択してください。
開くと以下のような中身になっていると思います。本当は67行ほどありますが、割愛。

2, 4, 10行目を流用します。

1. insファイルのパスを指定

insファイルのパスを指定するにはSETを用います。
単にファイルのパスをSETするのと、batファイル自身がファイルパスを自動的に取得する方法があります。
単にinsファイルのパスを設定する場合は環境変数を定義することで完了します。

SET INSfile=C:\RIETAN_VENUS_examples\Cu3Fe4P6\Cu3Fe4P6.ins

また、batファイル自身がファイルパスを自動的に取得する場合は以下のように記述します。こうすることで、解析する際にいちいちbatファイルを書き換える必要がなくなりますね。

SET INSfile=%~dp0

上記の[%~0]が、拡張子付きでファイル名を取得するコマンドになります。
これにオプションである[d]と[p]をつけることで、自身のファイルパスを取得します。
[d]は、ファイルが存在するドライブを返します。
[p]は、ファイルが存在するフォルダのパスを返します。しかし、ドライブ名が出力されません。
ですので、[dp]とくっつけてコマンドします。これでOK。

2. ファイル名を指定

サンプル名もとい、ファイル名を指定します。RIETAN.batの2行目の流用です。

SET SAMPLE=Cu3Fe4P6

3. RIETANの実行ファイル(RIETAN.exe)のあるフォルダのパスを指定

RIETAN.batの4行目の流用です。

SET RIETAN=C:\Program Files (x86)\RIETAN_VENUS

4. 解析結果のスペクトルを描画する実行ファイルの指定

私は基本的にRIETANに同梱されているRIETVIEWを使用しています。ですのでコマンドは以下のようになります。

SET SAMPLE=C:\Program Files (x86)\RIETAN_VENUS\RIETVIEW.EXE
もしくは、RIETVIEWがRIETANと同じフォルダにあることを利用して
SET RIETVIEW=%RIETAN%\RIETVIEW.EXE
としてもいいかもしれません。

Igorを使用しているかたはIgorの実行ファイルのパスを指定してください。

5. RIETANの実行

こちらは、RIETAN.batの10行目を利用します。
この長い一文が、入力ファイルや出力ファイルを指定してRIETANを実行するコマンドとなっています。更に、文末の方に書かれている

| "%RIETAN%\Commands\tee.exe" "%SAMPLE%.lst"

は、パイプラインにより、tee.exeを実行して、RIETAN実行時のコマンドラインへの標準出力を".lst"ファイルに記録するコマンドです。
このtee.exeがしっかり指定したディレクトリに存在するか、事前に確認しておいた方が無難かもしれません。
VESTAおいて粉末X線回折シミュレーションが上手く実行されないエラーの回避のために、[tee.exe], [libintl3.dll], [libintl3.dll]を一つ上の階層であるC:\Program Files (x86)\RIETAN_VENUSフォルダに移動している方は、こちらのパスを指定してもいいと思います。
以上!

6. 実行結果の出力

実行結果を出力するためには、メモ帳を開いて引数として出力された[.lst]を与えます。
メモ帳はWindowsにおいて簡単に起動できるアプリの一つです。
試しに、コマンドプロンプトを開いて[notepad]と打ち込んでみてください。
あら不思議。メモ帳が開きます。

この[notepad]というコマンドの後に、開きたいファイルのパスを引数として与えることでファイルをメモ帳で開くことができます。便利ですよね。
ということで、このように書きます。

notepad "%SAMPLE%.lst"

または、万全を喫して、
%windir%\system32\notepad.exe "%SAMPLE%.lst"
とするのもいいかもしれませんが、別にここまでする必要はありません。上で出来なかったらにしましょう。

7. スペクトルの描画

RIETANを実行すると以下の様なスペクトルを描画するためのファイルを生成してくれます。生成されるファイルはinsファイル内の設定により変わりすが、[*.itx], [*.plt]のどちらかになります。
f:id:tanisuke_str:20171004024832p:plain
私は何故か、gnuplot[*.plt]による描画がうまく行かず、酷いエラーに悩まされているので[*.itx]を生成させてRIETVIEWにて描画しています。
この辺のエラーについては今度書きます。
以下の2行がスペクトルの描画になります。
IFによる条件分岐を用いて[*plt][*itx]のどちらかが生成されていたら描画するようにします。

IF EXIST "%SAMPLE%.plt" "%RIETAN%\gnuplot\bin\wgnuplot.exe" /noend %SAMPLE%.plt
IF NOT EXIST "%SAMPLE%.plt" "%RIETVIEW%" "%SAMPLE%.itx"

オプション

以上の7つので基本的にRIETANは実行できるかと思います。
しかし、より便利にbatライフを送るためのオプションを追加していこうと思います。
これについてはまた明日、明後日追記していこうと思います。眠いので寝ます。