空蟬とは¶
空蟬([Ref.1])は、J-PARC, MLFで使用されているDAQミドルウェアのMLFコンポーネントが出力するイベントデータのデータリダクション、可視化や補正を行うためのコード群である。MLFで開発が進められている解析フレームワーク万葉ライブラリ([Ref.2])を利用し、柔軟なヒストグラム化、特に試料環境や装置状態を加味したデータ分別機能を使用した高度な解析を目指す。 また、測定中のデータを安全に解析できる Live Data Reduction のMLFでの実用化も目指している。
現在すでに多くの装置に導入が進み、MLFにおける解析ソフトウェアのフレームワーク的な役目を担う。
概要¶
何ができるか¶
MLFにおける多くの装置では、核破砕型中性子源から発生した中性子(入射中性子)を測定試料に照射し、試料内で原子分子と相互作用して出てきた中性子(散乱中性子)を検出器にて検知・収集する。いわゆる中性子散乱測定では、散乱中性子のエネルギーや散乱による軌道の変化を捉える必要があるが、軌道の変化は検出器の位置情報を用いて、エネルギーは飛行時間法(Time-Of-Flight法:発生中性子のエネルギーを距離と時間で分別する手法)を用いて知ることができる。この散乱中性子の検出された時間と位置情報はイベント記録方式で保存(イベントデータ)されるが、このデータを柔軟に変換することで試料内部の情報(原子分子の構造や振動状態など)を得ることが、空蟬の主要な目的である。 それに加えいくつかのデータ補正機能や可視化機能が搭載されている。
含まれるソフトウェアやコードについて¶
空蟬に含まれるソフトウェアやコードは主に以下のようになっている。
コマンド実行ソフトウェア("SequenceEditor")
各種汎用可視化ソフトウェア("MPlot", "M2Plot")
非弾性散乱用可視化ソフトウェア("VisualContM", "D4MatSlicer")
ファサードコマンド群("SequenceEditor"上で動作する各種コマンド)
データ処理機能の大半はファサード関数という形でここに含まれる。
本マニュアルでは、これらのソフトウェアやコードを説明するものである。
参考までに¶
空蟬は万葉ライブラリをベースとして構築されている。万葉ライブラリでは、基本的なコードはC++で書かれ、そのインターフェースとしてPythonを利用している。すなわちユーザーはPythonコードから万葉ライブラリの関数を自由に呼び出せる。同様に空蟬も多数の独自関数をもち、それらの大半はPythonから使用される。ただしC++のコア関数は非常にプリミティブなものが多いため、実際のユーザーはさらにPythonのコードで使いやすい形にされた関数(ファサード関数)を利用することになる。
動作環境¶
空蟬は、以下に示すOSの上で動作する Python 2.x (64bit) (3.xは空蟬4としてリリース済み)の上でのみ動作する。
OS |
バージョンなど |
---|---|
Linux (64bit) |
Ubuntu16.04, CentOS 6.x, 7.x |
Windows (64bit) |
Windows7, 8.2, 10 |
MacOS X |
10.11(El Capitan), 10.12(macOS Sierra) |
警告
Python 3.x対応は、現在空蟬4としてすでにリリース済みであるので今後はそちらへの移行を推奨する。
主な機能¶
MLFのイベントデータのヒストグラム化機能
DAQミドルウェアが出力するイベントデータをヒストグラム化
ヒストグラムの横軸単位:TOF, λ, Q(momentum transfer), Energy, EnergyTransfer, d値
フィルタリングの使用:時間分解、TrigNETを使用したデータ分別
汎用的な可視化ソフトウェア
1次元プロッタ(MPlot)
2次元プロッタ(M2Plot)
ディテクタマッププロッタ(DetectMap)
汎用的なコマンドシーケンス実行ソフトウェア(SequenceEditor)
スクリプトはコマンドラインでも実行可能
非弾性散乱測定のデータ処理・可視化ソフトウェア
簡単な補正(Solid angle, ki/kf)
単結晶測定の可視化(VisualContM)
多次元測定の可視化(D4MatSlicer)
対応する中性子検出用モジュール¶
様々な検出器からのシグナルは、それぞれ専用の機器(モジュール)を通すことでイベントデータ化される。MLFのイベントデータはモジュールごとに少しフォーマットが異なるため、その対応状況を示す。
対応検出器 |
モジュール名 |
モジュールの説明 |
---|---|---|
PSD(一次元位置敏感型検出器) |
NEUNET |
1次元型の検出器用のモジュール |
窒素モニター |
GATENET |
0次元型の検出器用のモジュール |
汎用シグナル |
TrigNET |
シグナルによって同時に測定されている中性子イベントを分別し、個別に解析するために使用 |
ガンマ線検出器 |
APV8008 |
|
1次元シンチレーションカウンター 2次元系検出器 |
Readout, ReadoutGate |
2次元系検出器(WLSF,MWPC,RPMT)にも対応 |
導入されているMLFのビームライン(2017年度現在)¶
BL |
名前 |
コード |
使用形態 |
---|---|---|---|
BL01 |
四季 |
SIK |
空蟬 |
BL02 |
DNA |
DNA |
空蟬+DNA用拡張 |
BL11 |
PLANET |
HPN |
空蟬+HPN用ソフトウェア |
BL14 |
アマテラス |
AMR |
空蟬 |
BL15 |
大観 |
SAS |
空蟬+SAS用拡張 |
BL17 |
写楽 |
NVR |
空蟬 |
BL19 |
匠 |
ENG |
空蟬+ENG用ソフトウェア |
BL21 |
NOVA |
NVA |
空蟬(一部) |
開発情報¶
開発環境¶
項目 |
使用 |
---|---|
開発言語 |
C++, Python(2.6,2.7) |
メイン開発環境 |
Linux ( Ubuntu 16.04 ) |
利用外部ライブラリ(C++) |
万葉ライブラリ環境(Boost, HDF5, NeXus, MiniXML, gsl) |
利用外部ライブラリ(Python) |
numpy, scipy, matplotlib, wxPython, PySide( Qt ), pyqtgraphなど |
動作確認環境 |
Linux (Ubuntu 16.04(64bit), CentOS 7.x, Windows 7, 10 (64bit), MacOS X (10.11, 10.12) |
参考文献¶
- Ref.1
Development status of software ‘Utsusemi’ for Chopper Spectrometers at MLF, J-PARC. Y. Inamura, T. Nakatani, J. Suzuki, T. Otomo, J. Phys. Soc. Jpn. 2013, 82, SA031-1 - SA031-9
- Ref.2
Object-oriented data analysis framework for neutron scattering experiments J. Suzuki, T. Nakatani, T. Ohhara, Y. Inamura, M. Yonemura, T. Morishima, T. Aoyagi, A. Manabe, T. Otomo, Nuclear Inst. and Meth. Phys. Res. 2009, 600, 123 .