空蟬とは

空蟬([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)

ライセンス

GPLv3

その他

開発の歴史的経緯

もともとチョッパー型非弾性散乱装置で使用するプログラム群と定義していたため装置を制御するソフトウェアやコードも含めていた。しかしヒストグラム化機能などが他の装置でも導入が進んだため、その汎用性を高めるために、装置制御用コードとは分離・独立させた。

名前の由来

UTilitieS and User-interface of analysis Software Environment for MLF Instruments

ロゴイメージ

  • ロゴイメージは源氏物語に登場する女性「空蟬」から(源氏物語 第3帖)

基本版

logo_box

横長版

logo_longBox

入手方法

バイナリ版インストーラー

空蟬ポータルサイト より。

ソースコード

現在準備中。

参考文献

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 .