potass' blog

ポタシウムのことが書いてないブログ。

GSAS での使う XRD のデータの形式の簡易まとめ

自分は一切使ったこと無いのだが後輩が PowDLL とか言うファイル変換ソフトで実験データが変換できないと言ってたので興味を持って暇つぶしに調べてた。

GSAS file format

GSAS manual の GSAS Standard Powder Data File によればデータファイルは次のような条件。

  • 1行の文字数は半角80文字(全角不可)+改行コード CR/LF のみ 。多すぎる場合は減らさなければいけないことはもちろん、80字より少ない場合でも不足分を半角スペースで補うこと。
  • ヘッダーとして1行目にタイトル、2行目に Instruct parameter と先頭に打って何かを入れることが出来る(仕様は不明、EXPEDT なるものと連携するときに使うらしい)。まあ1行目しか使わん。
  • 頭に # を入れておけばコメントアウトされる。データ列記中での使用はできるかわからんのでやめとくほうが無難。

この次に書くのはデータに関する情報。

データに関する情報の書き方

上のことが書き終わったらデータ羅列する前にその形式についての情報を記入しなければいけない。

BANK %d %d %d %s %f %f %f %f %s % (IBANK, NCHAN, NREC,BINTYP, BCOEF(1), BCOEF(2), BCOEF(3), BCOEF(4), TYPE)

※Los Alamos でのデータは BANK ではなく TIME_MAP で始める必要あり。詳しくはマニュアル見て。

IBANK

BANK の番号。0は入射光のモニタの場合であり、TOF (Time of Flight) での測定の場合は

the bank number found in the instrument parameter file for the detectors that produced the data

とのことです(意味わからん…)。CW (Constant Wavelength) での測定の場合は特に意味はありません。1にしときましょう。

NCHAN, NREC

NCHAN はデータ点の数で、NREC はそのデータの全行数。
んなもん1行に入るデータ数わかれば NREC なんていらないじゃんと思うけどその辺は TYPE で決めます。

BINTYP, BCOEF(1), ... , BCOEF(4)

BINTYP が CONS の場合 (XRD では一番ポピュラー)

CONS は Constant step width の略。つまり CW の場合は2θ、TOF の場合はエネルギーで刻む方法。
BCOEF(1) は開始点の値、BCOEF(2) は刻み幅、BCOEF(3) と BCOEF(4) は0
CW の場合は 0.01 deg を 1.0 として扱う(i.e. センチ度を使う)。
TOF の場合はμsec(中性子)または keV(X線)を単位にする。

※データ点の間隔が等間隔でない場合は Intensity の値を補間するなり近いところに丸め込むなりしないと駄目です。「データの羅列方法」で見るように横軸の値は BINTYP と BCOEF によって一意的に決まってしまいます。

BINTYP が ... の場合

他にもCONDCONQEDSLOG6LPSDRALFSLOGTIME_MAPがある。詳しくは(ry

TYPE

次の「データの羅列方法」にて書きます。

データの羅列方法

TYPE の値によってデータの羅列方法が変わります。

TYPE が STD または無記入の場合

%2d6.0%f%2d6.0%f%2d6.0%f%2d6.0%f%2d6.0%f%2d6.0%f%2d6.0%f%2d6.0%f % (NCTR(1), YO(1), NCTR(1), YO(1),..., YO(1))
つまり,2桁の整数(1桁なら半角スペースを補う)と6桁の浮動小数点(小数点以下は切り上げるなり四捨五入なり何なりするので結果的に整数になる。これも余る場合は半角スペースを使って6桁分にする)のペアが8つ。ちょうど80文字分になる。
最後半端者になった時は後ろに半角スペースを補って1行がちゃんと80文字分になるようにする。

NCTR(1) は1つの測定点(ex. CONS の場合は1つの2θ)において何回測定を行ったか。
NCTR(1) が0の場合はすべて1として読み取られる。
YO(1) は測定点での Intensity の値。

もし Intensity が 999999 以上の場合、またはその誤差(Estimated Standard Deviations, ESD)がルート以上の場合は下記の別の方法を用いること。

TYPE が ESD の場合

%f%f%f%f%f%f%f%f % (YOT(1), YE(1), YOT(1), YE(1), ..., YE(1))

※ただし それぞれの %f は8文字分確保 する。余る場合は半角スペースを使う。つまり、整数なら最大8桁分、小数点を含む場合は数字は最大7個になる。

YOT(1) はIntensity で、YE(1) はその ESD。

TYPE が FXY または FXYE の場合

(position) (intensity) (intensity esd)

1列目に位置(CW はセンチ度、TOF はμsec を用いる)、2列目に Intensity、3列目にはその ESD をそれぞれ書く。3列目を使うときは FXYE を、使わない時は FXY をそれぞれ用いる。
別に半角スペースで区切る必要はなくカンマでもいいらしい。"free format" とのこと。
また、数字は科学記法でもいいとのこと。
つまり実質80文字制限と改行コードさえ守ればよく一番気楽なフォーマットといえる。

拡張子

基本的には .raw で処理してるらしいが変換ソフトなどで変換しやすいように拡張子がいじられてることが多い。.raw の場合はどの形式かちゃんとソース見て調べよう。

.fxye

先の TYPE で FXYE としたもの。

.gsas / .gsa / .gs

おおよそは TYPE で STD としたもの。ただ、変換ソフトによってごちゃごちゃになってるのでちゃんと確認した方がいい。
変換ソフト PowDLL で GSAS(CW STD) とあるのはこれでかつ入射光を CW にしてあるもの。

参考にしたもの

  • GSAS : GSAS の公式ページ。
  • 11-BM User Program: Data Format についての解説。GSAS 以外のやつも載ってます。
  • Analytical - Data File Formats: Data Format についての解説。GSAS 以外のやつも載っててさっきのより浅く広くと言った感じ。
  • PowDLL: 有名(らしい)な XRD ファイル変換ソフト。これで変換できなくて困ってた。