Demeter に含まれる Athena には、日本国内で多用される 9809フォーマットの XAFS 測定データが読めるプラグイン(PFBL12C.pm)が同梱されています。 あいちSRの BL5S1, 7N1, 11S2 で測定を行ったときのデータも 9809 フォーマットで、基本的にはこのプラグインで読めます。 ところが、ピコアンメータ(Keythley 6485等)を検出器に使って測定を行うと結果が正常に読めないという報告がありました。
この現象は、あいちSRの測定プログラムは、9809フォーマットを拡張していてピコアンメータ(Keythley 6485等)の測定結果を 整数でなく実数で記録することと、既存の Athena のプラグインでは、$1\times10^{-3}$ より小さい数値は $0$ になることに依っていました。
この現象は、測定プログラム側で数値を定数倍(例えば $1,000$倍)することでも解決できますが、 生の測定値を変更して記録するのはあまり良くないように思われたので(また、すでに測定されてしまったデータには対応できないので)、 Athena のプラグイン側で対応することにしました。
Windows で、Web から入手した Demeter パッケージを普通にインストールした場合、
修正すべきファイルは次の場所にあります。
ただし、[ユーザー名]は適宜本当のユーザー名に置き換えて読んでください。
C:\Users\[ユーザー名]\AppData\Roaming\DemeterPerl\perl\site\lib\Demeter\Plugins
ここにある PFBL12C.pm というファイルが目的のファイルです。 このファイルの 63行目、もしくはその前後に、次に示すように
my $pattern = " %9.3f %9.3f %6.2f" . " %12.3f" x $ndet . $/; printf $N $pattern, @list;
と書かれているはずです。ここにある '%12.3f' を修正してください。 例えばですが、'%12.9g' にするのが一案です。
当該箇所に現れている '%9.3f' とか '%12.3f' とかは、数字をどんなフォーマットで書くか/読むかを指定する記法です 1)。
分解してみると
という意味があります。
12.3 を 12.9 にしたので小数点以下 9 桁までの数字が扱えるようになって、小さな数字が 0 になってしまうことを防げます。 この時、12.9f だと、例えば 0.000000009876 は 0.000000009 となりますが、12.9g だと 9.876e-9 になるので、有効桁数を残せます。
もう少し細かく考えるべきこともあるのですが、まず問題は出ないと思われます。