テキストの読み込み、書き出しについて

Fileメニューからテキストファイルを読み込んでプロットする、もしくはプロットされているデータをテキストファイルに書き出すことができる。

Openメニュー

MPlotの"Save as..."メニューや"Save histogram as..."メニューで書き出されたMPlot専用テキストファイル(MPlot専用フォーマット)や、スペース区切りやカンマ区切りのテキストファイルを読み込むことができる。 MPlot専用フォーマットは、別項で述べる。

テキストファイルのフォーマット

  • 数値のフォーマットは、スペース区切り(x intensity error)もしくはカンマ区切り(x, intensity, error)

  • 行の先頭に"#"があると、ヘッダ行、もしくはコメント行と解される
    • ヘッダ行は、":"で分けられた文字を含む(キーワード:値)

    • ヘッダ行のキーの幾つか( "X label", "Y label", "X unit", "Y unit", "Label"など)はプロット時の表示に反映される。

    • ヘッダ行以外の行はコメント行

読み込めるテキストフォーマットの例

#X label:EnergyTransfer
#X unit:meV
#Y label:Intensity
#Y unit:counts
#Label:SlicedData_Run123456
  -4.100000e+00    1.238785e+01    7.377678e-01
  -3.900000e+00    1.324615e+01    7.455907e-01
  -3.700000e+00    1.381818e+01    7.588372e-01
  -3.500000e+00    1.287354e+01    7.359883e-01
  -3.300000e+00    1.618086e+01    8.490616e-01
...(以下略)

このテキストファイルを読み込むと、X軸ラベルが"EnergyTransfer", Y軸ラベルが"Intensity", データのトレースラベルが"SlicedData_Run123456"などとプロッタに反映される。

特殊なヘッダのキーワード

キー

意味

X label

X軸のラベル

Y label

Y軸のラベル

X unit

X軸の単位

Y unit

Y軸の単位

Label

このデータのトレースラベル

Save as 及び Save histogram as メニュー

プロットされているデータをテキストファイルに出力する。その際のフォーマットは基本的なデータ(横軸、強度、エラー)であるが、同時にヘッダ情報(トレースラベルなど)も含まれている専用フォーマットとなっている。

"Save as..."と"Save histogram as..."の違いは、離散型データとして保存するか、ヒストグラム型データとして保存するかである。離散型データでは、横軸Xの個数と強度の個数が一致しているので、他のソフトウェアなどで読み込むには良いフォーマットである。一方ヒストグラム型は、横軸Xの個数が強度の個数よりも一つ多いフォーマットであり、万葉ライブラリなどでは標準のフォーマットである。

以下に専用フォーマットを示す。 ハイフンの行により、記述されているテキストの意味が区切られている。

**  MPLOT FILE **
-------------------
メインタイトル
サブタイトル
-------------------
ヘッダのキー:ヘッダの値(複数可能)
-------------------
X label:X軸ラベル
X unit:X軸単位
Y label:Y軸ラベル
Y unit:Y軸単位

データタイトル行
-----------------------------------------------
データ列
-----------------------------------------------

実際に出力されたファイル("Save histogram as ...)の例を示す。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
**  MPLOT FILE **
-------------------
SIK000373 ( Ei= 45.6 [meV] )
U=[0.0, 1, 0], V=[0.0, 0, 1], Psi=0.0, ;ax1=[1, 0, 0,0], ax2=[0, 1, 0,0], ax3=[0, 0, 1,0], ax4=[0, 0, 0,1], ;Thick=[ax1:-1.8 - 1.7], Thick=[ax2:-0.4 - 5.8]
-------------------
Label: -0.340
-------------------
X label:Energy (meV)
X unit:
Y label:Neutrons
Y unit:

  Energy (meV)      Neutrons         Error
-----------------------------------------------
  -4.100000e+00    1.238785e+01    7.377678e-01
  -3.900000e+00    1.324615e+01    7.455907e-01
  -3.700000e+00    1.381818e+01    7.588372e-01
  -3.500000e+00    1.287354e+01    7.359883e-01
  -3.300000e+00    1.618086e+01    8.490616e-01
  -3.100000e+00    1.908137e+01    9.725091e-01
  -2.900000e+00    1.794271e+01    9.448905e-01
  -2.700000e+00    2.135232e+01    1.034537e+00

(中略)

   4.390000e+01   1.000000e+100    0.000000e+00
   4.410000e+01
-----------------------------------------------
  • 1行目:MPlot専用フォーマットであることを示すキーワード

  • 2行目:区切り線(ここからタイトル行)

  • 3-4行目:タイトル行

  • 5行目:区切り線(ここからヘッダ行)

  • 6行目:ヘッダ行(":"で区切り、キー:値)

  • 7行目:区切り線(ここからラベルと単位のヘッダ行)

  • 8-11行目:ラベル、単位用ヘッダ行

  • 12行目:空行

  • 13行目:軸ラベル(Guide for eyes)

  • 14行目:区切り線(ここからデータ)

  • 15以降:データ

  • 最後尾:区切り線(データここまで)

このフォーマットに従って、任意のデータをMPlotに読み込ませることも可能である。