D4matSlicer2マニュアル(多次元系単結晶試料非弾性散乱測定の可視化)

更新日

2019.12.20

著者

稲村泰弘

概要

多次元系単結晶試料に対する非弾性散乱測定において、広い運動量空間をカバーするためには、試料に対する入射中性子の方位の異なる測定を複数回行い一つの運動量エネルギー空間にあるものとみなしてデータを扱う必要がある。

その測定手法としては、以下のように2種類がある。

Step By Step手法

試料への入射中性子の方位の異なる複数の測定データを一つに融合(マージ)し可視化する

連続回転手法

試料への入射中性子の方位を連続的に変化させつつ測定を行う。

これまでStep By Step手法のデータは、D4matSlicerを用いることで処理できたが、連続回転測定には対応できていなかった。

そこで、D4matSlicer2を作成した。以下のような利点をもつ。

  • Step By Step測定のRAWデータからの処理が可能(.vbinファイルは不要)

  • 連続回転測定のRAWデータの処理が可能

  • 連続回転測定においてRAWデータの差分処理(逐次処理)が可能

  • Projection処理を簡単にやり直すことができる

  • スライスの処理が高速

  • D4matSlicer用のデータへの出力が可能

一方で以下のような欠点を持つ。

  • 測定データの全てをメモリ上に展開するため、膨大なメモリを消費する(30〜60GB)

よって、具体的な使用方法としては

  1. 測定装置に設置された解析PC上で、D4MatSlicer2で高速にProjection処理や可視化を行い、

  2. データをユーザー環境に持ち帰る場合にはD4matSlicer用データに出力して持ち帰る。

という流れを想定している。

なお、このソフトウェアの大部分の機能は、Pythonのコマンドラインから実行可能である。詳細は D4MatSlicer2用コマンド を参照のこと。

実行手順

起動

D4matSlicer2を起動する。

$ D4mat2

fig01

測定情報やデータの入力

次に、測定情報(入射エネルギー、Run No、回転角度など)をサブウィンドウ(Data Reduction Info)にて入力する。

起動直後のメイン画面で、最上部にある Setting ボタンを押してサブウィンドウ(Data Reduction Info)を開く。

fig02

この画面では、 連続回転測定とStep-by-Step測定の両方に対応しているが、Measurement Method 枠内のチェックボックスで測定を選択する。 Continuous チェックボックスがデフォルトでは選択されており、Step-by-Step測定関連の入力やボタンが無効になっている。 Step-by-Step測定のデータを処理する場合は、StepByStep チェックボックスをクリックする。結果として、連続回転測定のパラメータ入力ボックスが無効になると同時に、 Step By Step Methodのいくつかのボタンや入力ボックスが有効になる。

fig03

続けてデータリダクションの情報を与えてゆく。

fig04

エネルギー情報

まず、 Energy Transfer Info の情報を入力する。入力する情報は以下の通り。

Ei

入射エネルギー

hw bin

エネルギー bin幅

hw min

エネルギー最小値

hw max

エネルギー最大値

マスク情報

次に、マスク情報を与える。 マスクファイルのテキストボックスには、 マスクファイル名 もしくは マスクファイルへのファイルパス を入力する。

ファイル名のみ書いた場合

以下の場所を順番に探しに行き、最初に見つけたファイルを利用する。

  1. カレントディレクトリ内

  2. 空蟬コード内( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

  3. ホームディレクトリ内( ${HOME}/ana/xml )

ファイルパスを指定した場合

そのファイルを探しにゆく。入力ミスをなくすために Select ボタンを利用すること

データリダクションスクリプト

データリダクション処理(RAWデータからヒストグラム化し、補正などを行う過程)において、デフォルトでは

Cmm.GetDataOfMonochroEi2

が使用される。しかし、より詳細にデータリダクション処理を制御するために、ユーザーが作成したスクリプトを使用することも可能となっている。

fig05

スクリプトを使用する場合、チェックボックスで Use Script を選択する。

データリダクション用スクリプトの作成

Template ボタンを押して保存されるテンプレートスクリプトファイルに記述されている "DataReduction" 関数内を加工して作成する。

スクリプト内では自由に関数などを定義・使用して良いが、 DataReduction 関数名のみは、内部から呼び出されるため予約されているので注意すること。

テンプレートスクリプト

DataReduction関数がRunNo毎に呼び出され、戻り値がストックされる。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import DR
def DataReduction( runNo, Ei, hw_min, hw_max, hw_bin, normFactor, maskFile ):
    """
    DataReduction Script Template of D4MatSlicer2
    @param runNo      (int) Run Number
    @param Ei         (float) Incident Energy [meV]
    @param hw_min     (float) min value of Energy Transfer [meV]
    @param hw_max     (float) max value of Energy Transfer [meV]
    @param hw_bin     (float) binning of Energy Transfer [meV]
    @param normFactor (float) normarization factor
    @param maskFile   (string) file name or file path to mask file
    @return ElementContainerMatrix : valiable name must be 'DAT'
    """
    ######################### Editable #########################

    DAT = DR.GetDataOfMonochroEi2(runNo,Ei,hw_bin,hw_min,hw_max,MaskFile=maskFile,NormFactor=normFactor)

    ############################################################
    return DAT

ここで、 Editable 以下のところに必要なデータリダクションの関数を記述する。

DataReduction関数内で使用できる引数

runNo

Run Number

Ei

入射エネルギー

hw_min

エネルギー範囲の最小値

hw_max

エネルギー範囲の最大値

hw_bin

エネルギーのビン幅

normFactor

規格化用値

maskFile.

マスクファイル名 or パス

スクリプトの指定

Select ボタンを押して、使用するスクリプトファイルを指定する。

Step-by-Step測定の場合

続けて、Run情報(RunNo, ゴニオの角度など)を与える。 D4MatSlicer2では、2種類の与え方が可能である。一つはRunListファイルを与える方法である。

Add Run List ボタンを押すとファイル選択ダイアログが開くので、Step By Step測定のデータリストであるRunListファイル( MakeRunList コマンドやスクリプトで作成される)を選択する。

RunListファイルについて

このファイルは、

RunNo, 測定開始日, 測定開始時刻, 測定終了日, 測定終了時刻, プロトン数, 温度(sencer A), 温度(sencer B), 試料角度

のリストであり、下記のようなTEXTフォーマットである。

例:run_list.txt

run#           start                 end              protons     T_A    T_B     gonio
9845   2014/12/17 17:38:05   2014/12/17 17:45:16       196632   300.00   1.00   191.3960
9846   2014/12/17 17:45:30   2014/12/17 17:51:46       195911   300.00   1.00   191.8960
9847   2014/12/17 17:52:01   2014/12/17 17:58:17       196044   300.00   1.00   192.3960
9848   2014/12/17 17:58:32   2014/12/17 18:04:49       196402   300.00   1.00   192.8960
9849   2014/12/17 18:05:03   2014/12/17 18:11:19       195273   300.00   1.00   193.3960
9850   2014/12/17 18:11:34   2014/12/17 18:17:51       196351   300.00   1.00   193.8960
9851   2014/12/17 18:18:05   2014/12/17 18:24:22       196522   300.00   1.00   194.3960
9852   2014/12/17 18:24:37   2014/12/17 18:30:53       196038   300.00   1.00   194.8960
.....(後略)

読み込まれるとRunListのRunNoと解析上の角度(試料情報の U-vector 方向と並行を0度とする角度:Y軸周りの角度)が表示される。

fig06

Run情報は、1 RunNoごとに下部の RunNo , Gonio , Protons 欄と Add ボタンで与えることもできる。

Gonio at Zero 入力ボックスに、 U-vector 方向と並行が0となる時の ゴニオの値を入力し、 Calc ボタンを押す。するとその角度に応じてリストの角度情報が変化する。

fig07

その後、 Reduction Setting ボタンを押して以上の設定を反映させる。このボタンを押すと、メインウィンドウの最上部( Setting ボタンの右側)に、この設定の概要が表示され、 Data Reduction枠の Execute ボタンが有効になる。

fig08

連続回転測定の場合

以下の項目を入力する。

Run Number

RunNo

Run Number

Ocillation Info

Start Deg

回転開始角度(Begin時)

なお、0度はメインパネルの Sample Information

与えられる方位である( Rotattion 含む)。

End Deg

折り返し角度

Step Deg

データ処理時の角度分割幅

Time Slice

Start Sec

時間分割の先頭

測定開始時を0秒とした単位で利用したい時間領域を指定する。

デフォルトである両方-1の場合、全ての時間領域を使用する。

End Sec

時間分割の最後

最後に Reduction Setting ボタンを押すと上記の情報が設定される。この時メインパネルの Experiment 枠の右側に簡単な情報が表示される。

データリダクション・射影・スライスの実行

Execute ボタンを押すことで、データリダクション作業(RAWデータを読み込んで各角度での処理)が行われる。データリダクションが終了すると、 Projectionの Project ボタンが有効になる。

これ以降は、VisualContMの試料情報、射影情報と変換、スライスとプロットと同等のGUIと機能をもつため、ここでは割愛する。 VisualContMマニュアル(非弾性単結晶測定可視化) を参照のこと。

なお、VisualContMで作成したパラメータファイル(XtalParam.xml)を読み込んで、パラメータを呼び出すこともできる。

パラメータファイル(XtalParam.xml)の読み込み

メイン及びサブウィンドウ上には、下図のようなパラメータファイル読み書き用ボタンがある。

fig09

ここで、各種パラメータ(データリダクション用及び試料情報、射影情報など)をファイルに保存したり、保存されたパラメータの読み込みも可能である。

読み込み可能なファイルは以下の2種類である。

D4MatSlicerで保存された XtalParam.xml

試料情報、射影情報、スライス情報を含む。このファイルを読み込むと、D4MatSlicer2上の各種情報が上書きされる。

D4MatSlicer2で保存されたファイル

XtalParam.xmlの情報に加えてデータリダクションの情報(EiやRunListなど)を含む。このファイルを読み込むと、試料関連の各種情報が上書きされると同時に、データリダクション用の情報も読み込むことができる。すでにデータリダクション情報が入力済みの場合は、下図のようなダイアログが出てくるので、上書きするかしないかを選択できる。

fig10