空蟬基本Python関数リファレンス#

最終更新日

2022.03.18

概要#

空蟬基本Python関数とは、空蟬で実装されているデータ処理(イベントデータのヒストグラム化、データコンテナの扱い、共通の補正など)を行うためにPythonで作成された関数群を呼ぶ。一般に各装置で使用される関数、特にSequenceEditorで表示されるファサード関数は、この基本関数からの抜粋したもの、もしくは基本関数を組み合わせたり利用して作成したものとなる。

また、独自のファサード関数を作ったり、スクリプトを自作する場合にも参照できる。

基本関数の使い方#

本節で示す関数は基本関数として用意されているものであり、実際にユーザーが直接利用することはないと思われる。しかし新しくファサード関数を作る際にこれらの関数を利用することもあるので、空蟬環境において直接実行する方法を示しておく。

>>> import utsusemi.ana.Reduction.BaseCommands as BC
>>> ec = BC.AverageAll( dat )
など

非弾性散乱装置の場合、いくつか専用の基本関数も存在する。この場合は下記のような導入となる。

>>> import utsusemi.ana.Reduction.BaseCommandsInEla as BC

また、基本関数のうち、それぞれの装置で使用頻度の高いものは、あらかじめファサード Cmm モジュールにも登録されているので、それを使うことも可能である。

>>> import Cmm
>>> ec = Cmm.GetNeunetHist( \373", "hw,45.56,-4.0,40.0,0.2" )
など。

基本関数一覧#

共通データ処理#

Common Utsusemi python commands to treat data#

関数

説明

GetNeunetHist

与えたパラメータでイベントデータを処理しヒストグラムに変換する

NormByKickers

キッカーの個数で強度を規格化する

NormByBeamCurrent

イベントデータをヒストグラム化したElementContainerMatrixに対し、 Proton Currentで規格化する

SolidAngleCorrection

立体角補正を行う

DoMask

与えたマスクファイルを用いてマスク処理を行う

DetectorEffi

検出器効率補正を行う

AverageAll

与えたElementContainerMatrix内の全てのPixelの平均を取り一つのElementContainerに収める

PickUpRegion

ElementContainerMatrixから特定の検出器領域を抜き出す

SumOfPixel

ElementContainerMatrixから指定した検出領域の総和のヒストグラムを返す

SumOfTOF

ElementContainerMatrixから指定した検出器内のPixelに対し、Time-of-Flight方向の和を取り 横軸Pixel-縦軸総和のElementContainerを返す

GetPH

PSDのヒストグラムから検出器の波高値を取り出す

GetBeamCurrentFromECM

ElementContainerMatrixからその測定中のProton Current [TP]の総和を返す

NormByBeam

イベントデータをヒストグラム化したElementContainerMatrixに対し、与えた測定時刻情報から Proton Currentで規格化する

getBeamCurrent

与えた時刻情報からその期間中のProton Current [TP]の総和を返す

共通データファイル入出力処理#

Common Utsusemi python commands to save and load data#

関数

説明

SaveDataToManyoBinary

与えたElementContainer, -Array, -Matrixのデータを万葉バイナリデータに書き出す

LoadDataFromManyoBinary

万葉バイナリデータファイルからデータを取り出す

OutPutAllPixelToTxt

1ピクセルごとに別のテキストファイルとして書き出す

SaveDataFromNxspe

ElementContainerMatrixをHoraceのフォーマットであるNXSPEファイルとして書き出す。

LoadDataFromNxspe

HoraceのフォーマットであるNXSPEファイルを変換して空蟬で使用できる ElementContainerMatrixに変換して読み込む。

SaveDataToSPE

与えたElementContainerMatrixデータをSPEフォーマットに変換し書き出す

LoadDataFromSPE

SPEフォーマットファイルからデータを変換しElementContainerMatrixとして取り出す

SaveDataToDAVEgrp

与えられたElementContainerMatrixデータをDAVEフォーマットで書き出す

SaveDataToNVASQ

与えたElementContainerMatrixデータをNovaSQ用のフォーマット(NeXus)に変換し書き出す

SaveDataToSrlz

与えたElementContainer, -Array, -MatrixデータをManyoライブラリシリアライズフォーマット に書き出す(機種依存あり)

LoadDataFromSrlz

Manyoライブラリシリアライズフォーマットからデータを取り出す(機種依存あり)

GetDataFromNeXus

NeXusフォーマットファイルからデータを取り出す

SaveDataToNeXus

与えたElementContainerMatrixデータをNeXusフォーマットに書き出す

装置用処理・その他#

Common Utsusemi python commands for beamlines works#

関数

説明

AppendRawDataFiles

複数のRaw Data(イベントデータ)を結合し、別データとして保存する

CheckDataProcess

データ処理の履歴管理用関数

CopyData

装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする

CopyIroha2Params

装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする

MakeRunList

装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する

共通データ処理関数#

以下の関数は、 utsusemi.ana.Reduction.BaseCommands に収められている。

空蟬の共通データ処理関数が収められたモジュールである。

utsusemi.ana.Reduction.BaseCommands.GetNeunetHist(runNo, HistParam, DetRange, DetParam, TimeRange, FrameInfo, MaskInfo, CaseInfo, BGInfo, TofShift, AnaMode, ParamFiles, Options)#

与えたパラメータでイベントデータを処理しヒストグラムに変換する。

イベントデータのヒストグラム化を行うための総合的な関数である。イベントデータをヒストグラム化するために必要な設定(ヒストグラム軸設定、検出器の範囲設定やディスクリ値の変更など)のうち、もっとも初期のころから実装していた機能をまとめて行えるようにした。これまでのいろいろなヒストグラム化にまつわる関数はすべてこれで置き換える方針。これまで個別に設定していたパラメータを設定ごとにまとめて指定(文字列として)することで、トータルのパラメータの個数を減らした。この関数も実際にはもう少し用途に特化した関数に組み込む予定(DR.GetDataOfMonochroEi2のように)なので、ユーザーが直接これを使うことは無いと思われる。

Parameters
  • runNo (string) – ヒストグラム化するRun numberを指定する

  • HistParam (string) – 作りたいヒストグラム(軸)の情報

  • DetRange (string) – 使用する検出器の範囲とPixel数設定

  • DetParam (string) – 検出器の種類とPulse Height設定

  • TimeRange (string) – 使用する時間範囲の情報

  • FrameInfo (string) – 使用するフレーム情報

  • MaskInfo (string) – 検出器に対するマスク処理設定

  • CaseInfo (string) – CaseInfoファイルの指定(0.3.6より実装)

  • BGInfo (string) – 各種バックグラウンドの指定(現状は時間に非依存のTOFバックグラウンドのみ)

  • TofShift (string) – TOF原点をLambdaに応じてシフトさせる場合に用いる(現状BL11用のみ)

  • AnaMode (string) – 使用するWiringInfoとDetectorInfoの組み合わせのパターンを指定する

  • ParamFiles (string) – WiringInfoとDetectorInfoを個別に与える

  • Options (string) – その他の設定

Returns

作成されたヒストグラムデータ

Return type

ElementConatainerMatrix

詳細は、以下を参照。

utsusemi.ana.Reduction.BaseCommands.NormByKickers(dat, factor=1.0)#

イベントデータをヒストグラム化したElementContainerMatrixに対し、中性子発生回数(キッカー数)で規格化する。

Parameters
  • dat (ElementContainerMatrix) – 規格化したいデータ

  • factor (float) – キッカー数による規格化の値をfactorで割る

Returns

None

キッカー数の値は大抵データの強度に対し大きすぎることが多いため、第2引数の factor はキッカー数を割り戻す値である。なお factor に負の値を入力すると、キッカー数の値の代わりに入力値の絶対値で強度の割り算(規格化)を行う。つまり負号をつけることで任意の数値で規格化できる。キッカー数はヒストグラム化処理によりElementContainerMatrixのヘッダに含まれている。

utsusemi.ana.Reduction.BaseCommands.NormByBeamCurrent(dat, factor=1000.0, offset_sec=0.0, isCT8Neutron=False)#

イベントデータをヒストグラム化したElementContainerMatrixに対しProton Currentで規格化する。

Parameters
  • dat (ElementContainerMatrix) – 規格化したいデータ

  • factor (float) – Proton Currentの割り戻し値、もしくは負の値

  • offset_sec (float) – 時刻補正用

  • isCT8Neutron (bool) – 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか

Returns

None

Proton Currentの値は大抵データの強度に対し大きすぎることが多いため、第2引数の factor はキッカー数を割り戻す値である。なお factor に負の値を入力すると、Proton Currentの値の代わりに入力値の絶対値で強度の割り算(規格化)を行う。つまり負号をつけることで任意の数値で規格化できる。

引数 offset_sec は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。

utsusemi.ana.Reduction.BaseCommands.SolidAngleCorrection(dat, dS=-1.0)#

立体角補正を行う。

Parameters
  • dat (ElementContainerMatrix) – 補正したいデータ

  • dS (float) – 各Pixelの立体角をこの値で規格化する

Returns

None

引数 dS が-1.0の時はその装置のデフォルト値を使用する。

utsusemi.ana.Reduction.BaseCommands.DoMask(dat, filename='mask.txt')#

与えたマスクファイルを用いてマスク処理を行う。マスクファイルのフォーマットなど詳細は、別の章で行う( 「空蟬で使用するマスク処理について」 )。

Parameters
  • dat (ElementContainerMatrix) – 補正したいデータ

  • filename (string) – マスクファイル名。完全なパス+ファイル名であればそれを利用する。ファイル名のみなら、検索ファイルパス(後述)に従い探索する。フォーマットの詳細は「空蟬で使用するマスク処理について」を参照のこと。

Returns

None

検索ファイルパス

  1. コマンドを実行しているディレクトリ(カレントディレクトリ)

  2. ${UTSUSEMI_BASE_DIR/UTSUSEMI_INST_CODE}/ana/xml( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

  3. ${UTSUSEMI_USR_DIR}/ana/xml ( ~/ana/xml )

utsusemi.ana.Reduction.BaseCommands.DetectorEffi(dat, detInfo_file='DetectorInfo_Det.xml', det_name='SUS304-3He-PSD')#

検出器補正を行う。検出器の構成情報はDetectorInfo.xmlに記述するものを使うので、それを引数で指定する必要がある。将来的には融合する。

Parameters
  • dat (ElementContainerMatrix) – 補正したいデータ

  • detInfo_file (string) – 検出器の構成情報のあるDetectorInfoファイルを指定する

  • det_name (string) – 検出器の構成情報から補正に用いる検出器の定義名を指定する(DetectorInfoに記述されている必要がある)

Returns

None

utsusemi.ana.Reduction.BaseCommands.AverageAll(dat, maskfile='None')#

与えたElementContainerMatrix内の全てのPixelの平均を取り一つのElementContainerに収める。

Parameters
  • dat (ElementContainerMatrix) – 補正したいデータ

  • maskfile (string) – マスクファイル名。内部でDoMask関数を実行する。使用しない時は None を与える。詳細は「DoMask」関数リファレンスを参照のこと。

Returns

None

utsusemi.ana.Reduction.BaseCommands.PickUpRegion(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1)#

ElementContainerMatrixから特定の検出器領域を抜き出す。

Parameters
  • Target (ElementContainerMatrix) – オリジナルデータ

  • PSD_min (int) – 検出器範囲の最小値(DetId)

  • PSD_max (int) – 検出器範囲の最大値(DetId)

  • Pixel_min (int) – 検出器範囲のPixel最小値(PixelNo)

  • Pixel_max (int) – 検出器範囲のPixel最大値(PixelNo)

Returns

抜き出したデータ

Return type

ElementContainerMatrix

utsusemi.ana.Reduction.BaseCommands.SumOfPixel(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1)#

ElementContainerMatrixから指定した検出領域の総和のヒストグラムを返す。

Parameters
  • Target (ElementContainerMatrix) – オリジナルデータ

  • PSD_min (int) – 検出器範囲の最小値(DetId)

  • PSD_max (int) – 検出器範囲の最大値(DetId)

  • Pixel_min (int) – 検出器範囲のPixel最小値(PixelNo)

  • Pixel_max (int) – 検出器範囲のPixel最大値(PixelNo)

Returns

総和のデータ

Return type

ElementContainer

utsusemi.ana.Reduction.BaseCommands.SumOfTOF(Target, PSD=1, tof_min=0, tof_max=40000)#

ElementContainerMatrixから指定した検出器内のPixelに対し、Time-of-Flight方向の和を取り、横軸Pixel-縦軸総和のElementContainerを返す。

Parameters
  • Target (ElementContainerMatrix) – オリジナルデータ

  • PSD (int) – 対象となる検出器(DetId)

  • tof_min (int) – 積算するTOF領域の最小値(micro-sec)

  • tof_max (int) – 積算するTOF領域の最大値(micro-sec)

Returns

横軸Pixel-縦軸総和データ

Return type

ElementContainer

utsusemi.ana.Reduction.BaseCommands.GetPH(dat, binSize=1)#

PSDのヒストグラムから検出器の波高値を取り出す。なおデータはPulseHeightの解析も行う設定でヒストグラム化されていることが必要。

Parameters
  • dat (ElementContainerMatrix) – 与えるElementContainerMatrix

  • binSize (int) – 波高値の横軸のbin幅

Returns

それぞれの検出器(PSD)の波高分布が個別のElementContainerに格納されているデータ(戻り値はそのままM2Plotで表示できる)

Return type

ElementContainerArray

utsusemi.ana.Reduction.BaseCommands.GetBeamCurrentFromECM(dat, offset_sec=0.0, isCT8Neutron=False)#

ElementContainerMatrixからその測定中のProton Current [TP]の総和を返す。

Parameters
  • dat (ElementContainerMatrix) – 規格化したいデータ

  • offset_sec (float) – 時刻補正用

  • isCT8Neutron (bool) – 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか

Returns

None

引数 offset_sec は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。

utsusemi.ana.Reduction.BaseCommands.NormByBeam(dat, start_day='2009/5/30', start_time='10:00:00', end_day='2009/5/30', end_time='11:00:00', factor=1.0, offset_sec=0.0, isCT8Neutron=False)#

イベントデータをヒストグラム化したElementContainerMatrixに対し、与えた測定時刻情報からProton Currentで規格化する。

Parameters
  • dat (ElementContainerMatrix) – 規格化したいデータ

  • start_day (string) – 測定開始日(フォーマットは YYYY/MM/DD)

  • start_time (string) – 測定開始時刻(フォーマットは hh:mm:ss)

  • end_day (string) – 測定終了日(フォーマットは YYYY/MM/DD)

  • end_time (string) – 測定終了時刻(フォーマットは hh:mm:ss)

  • factor (float) – Proton Currentの割り戻し値、もしくは負の値

  • offset_sec (float) – 時刻補正用

  • isCT8Neutron (bool) – 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか

Returns

None

Proton Currentの値は大抵データの強度に対し大きすぎることが多いため、第2引数の factor はキッカー数を割り戻す値である。なお factor に負の値を入力すると、Proton Currentの値の代わりに入力値の絶対値で強度の割り算(規格化)を行う。つまり負号をつけることで任意の数値で規格化できる。

引数 offset_sec は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。

utsusemi.ana.Reduction.BaseCommands.getBeamCurrent(start_day='2009/5/30', start_time='10:00:00', end_day='2009/5/30', end_time='11:00:00', offset_sec=0.0, isCT8Neutron=False)#

与えた時刻情報からその期間中のProton Current [TP]の総和を返す。

Parameters
  • dat (ElementContainerMatrix) – 規格化したいデータ

  • start_day (string) – 測定開始日(フォーマットは YYYY/MM/DD)

  • start_time (string) – 測定開始時刻(フォーマットは hh:mm:ss)

  • end_day (string) – 測定終了日(フォーマットは YYYY/MM/DD)

  • end_time (string) – 測定終了時刻(フォーマットは hh:mm:ss)

  • factor (float) – Proton Currentの割り戻し値、もしくは負の値

  • offset_sec (float) – 時刻補正用

  • isCT8Neutron (bool) – 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか

Returns

プロトン数 [TP(テラプロトン)]

Return type

float

引数 offset_sec は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。

使用頻度の低いもの#

utsusemi.ana.Reduction.BaseCommands.CalcPhi(dat)#

ヒストグラム化された全Pixelのデータの位置情報からそれぞれのPixelのPolar角とAzimath角を計算し収める。ただし、全てのヒストグラム化関数である GetNeunetHist内部で既に処理されるので、使用機会はない。

Parameters

dat (ElementContainerMatrix) – 与えるElementContainerMatrix

Returns

None

utsusemi.ana.Reduction.BaseCommands.GetHistDQconstNeunetPsd(runNo=0, Qrange='0.1 10.0', deltaQ=0.1, detRange='-1 -1', NumOfPixel=Def_NumOfPixel, timeRange='-1 -1', frameBoundary=0.0, inVect='0.0 0.0 1.0')#

中性子イベントデータをdQ constantのヒストグラムに変換する。

Parameters
  • runNo (int) – Run number

  • QRange (string) – ヒストグラム上のQの範囲。Qの最小値と最大値をスペース区切りで表記(”<Qmin> <Qmax>”)

  • deltaQ (float) – Qのbin幅

  • detRange (string) – 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記

  • NumOfPixel (int) – 検出器(PSD)あたりのPixel数

  • timeRange (string) – 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記

  • frameBoundary (float) – セカンドフレーム使用時の境界となるTOF値

  • inVect (string) – 入射中性子の入射ベクトル。ベクトルをVx Vy Vzの成分(大きさは適当)で表記[mm]、スペース区切りで表記

Returns

ヒストグラムデータ

Return type

ELementContainerMatrix

utsusemi.ana.Reduction.BaseCommands.GetHistDTconstGatenetMon(runNo=0, tofRange='0.0 40000.0', binTOF=10.0, detRange='-1 -1', NumOfPixel=4, timeRange='-1 -1', frameBoundary=0.0)#

中性子モニターのイベントデータをdT constantのヒストグラムに変換する。

Parameters
  • runNo (int) – Run number

  • tofRange (string) – ヒストグラム上のTOFの範囲。TOFの範囲(最小値と最大値)スペース区切りで表記(”<TOFmin> <TOFmax>”)

  • binTOF (float) – TOF方向のbin幅

  • detRange (string) – 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記

  • NumOfPixel (int) – 検出器(PSD)あたりのPixel数

  • timeRange (string) – 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記

  • frameBoundary (float) – セカンドフレーム使用時の境界となるTOF値

  • inVect (string) – 入射中性子の入射ベクトル。ベクトルをVx Vy Vzの成分(大きさは適当)で表記[mm]、スペース区切りで表記

Returns

ヒストグラムデータ

Return type

ELementContainerMatrix

utsusemi.ana.Reduction.BaseCommands.GetHistDTconstNeunetPsd(runNo=0, isTimeFoc=True, tofRange='0.0 40000.0', binTOF=10.0, detRange='-1 -1', NumOfPixel=Def_NumOfPixel, timeRange='-1 -1', frameBoundary=0.0)#

中性子イベントデータをdT constantのヒストグラムに変換する。

Parameters
  • runNo (int) – RunNo

  • isTimeFoc (bool) – ヒストグラム化時に、Time Focusingを行うかどうか

  • tofRange (string) – ヒストグラム上のTOFの範囲、TOFの範囲(最小値と最大値)スペース区切りで表記(”<TOFmin> <TOFmax>”)

  • binTOF (float) – TOF方向のbin幅

  • detRange (string) – 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記

  • NumOfPixel (int) – 検出器(PSD)あたりのPixel数

  • timeRange (string) – 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記

  • frameBoundary (float) – セカンドフレーム使用時の境界となるTOF値

Returns

ヒストグラムデータ

Return type

ELementContainerMatrix

utsusemi.ana.Reduction.BaseCommands.GetHistToDTconstGatenetMon(runNo=0, tofRange='0.0 40000.0', racio=0.01, detRange='-1 -1', NumOfPixel=4, timeRange='-1 -1', frameBoundary=0.0)#

中性子モニターのイベントデータをdT/T constantのヒストグラムに変換する。

Parameters
  • runNo (int) – RunNo

  • tofRange (string) – ヒストグラム上のTOFの範囲、TOFの範囲(最小値と最大値)スペース区切りで表記(”<TOFmin> <TOFmax>”)

  • racio (float) – deltaT/T Constの値を指定

  • detRange (string) – 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記

  • NumOfPixel (int) – 検出器(PSD)あたりのPixel数

  • timeRange (string) – 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記

  • frameBoundary (float) – セカンドフレーム使用時の境界となるTOF値

Returns

ヒストグラムデータ

Return type

ELementContainerMatrix

utsusemi.ana.Reduction.BaseCommands.GetHistToDTconstNeunetPsd(runNo=0, isTimeFoc=True, tofRange='0.0 40000.0', racio=0.01, detRange='-1 -1', NumOfPixel=Def_NumOfPixel, timeRange='-1 -1', frameBoundary=0.0)#

中性子イベントデータをdT/T constantのヒストグラムに変換する。

Parameters
  • runNo (int) – RunNo

  • isTimeFoc (bool) – ヒストグラム化時に、Time Focusingを行うかどうか

  • tofRange (string) – ヒストグラム上のTOFの範囲、TOFの範囲(最小値と最大値)スペース区切りで表記(”<TOFmin> <TOFmax>”)

  • racio (float) – deltaT/T Constの値を指定

  • detRange (string) – 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記

  • NumOfPixel (int) – 検出器(PSD)あたりのPixel数

  • timeRange (string) – 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記

  • frameBoundary (float) – セカンドフレーム使用時の境界となるTOF値

Returns

ヒストグラムデータ

Return type

ELementContainerMatrix

共通データファイル入出力処理#

utsusemi.ana.Reduction.BaseCommands.SaveDataToManyoBinary(dat, path='./', filename='Sample.mdb')#

万葉ライブラリのデータコンテナを万葉ライブラリ標準のバイナリファイルとして書き出す。なお、与えるデータのフォーマットは ElementContainer , ElementContainerArray , ElementContainerMatrix のいずれでも良い。またファイル名のデフォルトの拡張子は .mdb である。

Parameters
  • dat (ElementContainer,-Array,-Matrix) – 保存するElementContainer, -Array, -Matrix

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名(命名ルールとして拡張子に.mdbをつけること)

Returns

None

utsusemi.ana.Reduction.BaseCommands.LoadDataFromManyoBinary(path='./', filename='Sample.mdb')#

万葉ライブラリ標準のバイナリファイルとして書き出されたデータコンテナを読み込む。ファイル名のデフォルトの拡張子は .mdb である。

Parameters
  • path (string) – mdbファイルの入っているフォルダへの絶対パス

  • filename (string) – 対象となるmdbファイルの名前

Returns

読み込んだデータ

Return type

ElementContainer,-Array,-Matrix

utsusemi.ana.Reduction.BaseCommands.OutPutAllPixelToTxt(dat, filepath='')#

与えたElementContainerMatrix内の全データをテキストファイルに書き出す。

それぞれのPixelは runNNNNNN_DDD_PPP.txt のフォーマットの名前となる。ここでNNNNNNは、Run Number, DDDはElementContainerMatrix内のElementContainerArrayの順番、PPPはElementContainerArray内のElementContainerの順番。例としては、 run123456_123_456.txt となる

Parameters
  • dat (ElementContainerMatrix) – 保存するデータ

  • filepath (string) – 保存ファイルへの絶対パス

Returns

None

utsusemi.ana.Reduction.BaseCommands.SaveDataToNxspe(dat, path='./', filename='Sample', params='PSI:0.0,TEMP:300.0,USER:mlfuser')#

非弾性散乱処理を行なったデータコンテナ(ElementContainerMatrix)をHoraceのフォーマットであるNXSPEファイルとして書き出す。

Parameters
  • dat (ElementContainerMatrix) – 保存するElementContainerMatrix

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名、拡張子は不要(命名ルールとして.nxspeだが自動的に付与)

  • params (string) – NXSPEファイルに追加する情報(”PSI:0.0,TEMP:300.0,USER:mlfuser”)

Returns

None

utsusemi.ana.Reduction.BaseCommands.LoadDataFromNxspe(path='./', filename='Sample.nxspe', num_of_pixels=100)#

HoraceのフォーマットであるNXSPEファイルを変換して空蟬で使用できるElementContainerMatrixに変換して読み込む。

Parameters
  • path (string) – ファイルの入っているフォルダへの絶対パス

  • filename (string) – 対象となるNXSPEファイルの名前

  • num_of_pixels (int) – Pixelのグループ化(PSD的に)を内部で行うのに必要なPixel数/1Group

Returns

読み込んだデータ

Return type

ElementContainerMatrix

utsusemi.ana.Reduction.BaseCommands.SaveDataToSPE(dat, path='./', filename='Sample')#

与えたElementContainerMatrixデータをSPEフォーマットに変換し書き出す。通常、SPEファイルは、yyyyy.SPEとyyyyy.PHXという二つのファイルによって構成されている。この関数では、両方のファイルの共通部分であるyyyyy部分を与えることで、両方のファイルを書き出す。

Parameters
  • dat (ElementContainerMatrix) – 保存するElementContainerMatrix

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名、拡張子は不要(自動的に付与)

Returns

None

utsusemi.ana.Reduction.BaseCommands.LoadDataFromSPE(path='./', spefile='Sample.spe', Ei=100.0, num_of_pixels=100, runNo='XXX000001')#

SPEフォーマットファイルからデータを変換しElementContainerMatrixとして取り出す。通常、SPEファイルは、yyyyy.SPEとyyyyy.PHXという二つのファイルによって構成されている。この関数では、両方のファイルの共通部分であるyyyyy部分を与えることで、両方のファイルを読み込む。

Parameters
  • path (string) – SPEファイル、及びPHXファイルの入っているフォルダへの絶対パス

  • filename (string) – 対象となるSPEファイル名とPHXファイル名(拡張子は不要)

Returns

読み込んだデータ(空蟬のデータに変換済みであるので空蟬の可視化ソフトウェアなどで利用できる)

Return type

ElementContainerMatrix

utsusemi.ana.Reduction.BaseCommands.SaveDataToDAVEgrp(dat=DAT, path='./', filename='Sample.grp', startQ=1.0, endQ=1.0, frcQ=1, binE=0.0)#

与えられたELementContainerMatrixデータをDAVE用のフォーマットに変換して書き出す。

Parameters
  • dat (ElementContainer) – 保存するElementContainer

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名、拡張子は.grp

  • startQ (float) – Qの最小値

  • endQ (float) – Qの最大値

  • frcQ (float) – 分割数

  • binE (float) – エネルギー方向のリビニング幅(0.0ならオリジナルのまま)

Returns

None

utsusemi.ana.Reduction.BaseCommands.SaveDataToNVASQ(dat, path='./', filename='Sample.nx', L1=25000.0, px=15000.0, py=0.0, pz=0.0)#

与えたElementContainerMatrixデータをNovaSQ用のフォーマット(NeXus)に変換し書き出す。

Parameters
  • dat (ElementContainerMatrix) – 保存するElementContainerMatrix

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名、拡張子は不要(自動的に付与)

  • L1 (float) – L1 [mm]

  • px (float) – Pixel位置のx座標 [mm]

  • py (float) – Pixel位置のy座標 [mm]

  • pz (float) – Pixel位置のz座標 [mm]

Returns

None

utsusemi.ana.Reduction.BaseCommands.SaveDataToSrlz(dat, path='./', filename='Sample.srlz')#

与えたElementContainer, -Array, -MatrixデータをManyoライブラリシリアライズフォーマットに書き出す。このフォーマットは非常に高速に読み書きができるが、そのPCの環境に依存するので、他のPC(同じOSでも)で作成されたファイルを読み込むことはできない。

Parameters
  • dat (ElementContainer,-Array,-Matrix) – 保存するElementContainer,-Array,-Matrix

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名、拡張子は.dmp

Returns

None

utsusemi.ana.Reduction.BaseCommands.LoadDataFromSrlz(path='./', filename='Sample.srlz', DataType='ECM')#

Manyoライブラリシリアライズフォーマットからデータを取り出す。このフォーマットは非常に高速に読み書きができるが、そのPCの環境に依存するので、他のPC(同じOSでも)で作成されたファイルを読み込むことはできない。

Parameters
  • path (string) – シリアライズフォーマットファイル(.srlz)の入っているフォルダへの絶対パス

  • filename (string) – 対象となるファイル名(.srlz)

Returns

読み込んだデータ(シリアライズフォーマットファイルに含まれているデータに依存する)

Return type

ElementContainer,-Array,-Matrix

utsusemi.ana.Reduction.BaseCommands.SaveDataToNeXus(dat, name='Data', path='./', filename='Sample.nx')#

与えたElementContainerMatrixデータをNeXusフォーマットに書き出す。

Parameters
  • dat (ElementContainerMatrix) – 保存するElementContainerMatrix

  • name (string) – NeXusフォーマット内の所有者の名前

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名、拡張子は.nx

Returns

None

utsusemi.ana.Reduction.BaseCommands.GetDataFromNeXus(path='./', filename='Sample.nx')#

NeXusフォーマットファイルからデータを取り出す。

Parameters
  • path (string) – NeXusファイルの入っているフォルダへの絶対パス

  • filename (string) – 対象となるNeXusファイルの名前

Returns

読み込んだデータ(NeXusファイルに含まれているデータに依存する)

Return type

ElementContainer,-Array,-Matrix

使用頻度の低いもの#

utsusemi.ana.Reduction.BaseCommands.SaveDataToDump(dat, path='./', filename='Sample.dmp')#

与えたElementContainer, -Array, -MatrixのデータをDumpフォーマットに書き出す。

ただし、これはPythonのシリアライズ機能を用いており、Python2とPython3で互換性がないので注意すること。

Parameters
  • dat (ElementContainer,-Array,-Matrix) – 保存するElementContainer, -Array, -Matrix

  • path (string) – 保存先のフォルダへの絶対パス

  • filename (string) – 保存ファイル名(命名ルールとして拡張子に.dmpをつけること)

Returns

None

utsusemi.ana.Reduction.BaseCommands.LoadDataFromDump(path='./', filename='Sample.dmp')#

Dumpフォーマットファイルからデータを取り出す。

Parameters
  • path (string) – Dumpファイルの入っているフォルダへの絶対パス

  • filename (string) – 対象となるDumpファイルの名前

Returns

読み込んだデータ

Return type

ElementContainer,-Array,-Matrix

装置用処理・その他#

以下の処理は、現場で必要となることがほとんどである。

utsusemi.ana.Reduction.BaseCommands.AppendRawDataFiles(OutRunNo=990000, outDataPath='-', RunNo1=0, RunNo2=0, RunNo3=0, RunNo4=0, RunNo5=0, RunNo6=0)#

複数のRaw Data(イベントデータ)を結合し、別データとして保存する。

Parameters
  • OutRunNo (int) – 保存するデータのRunNo(このRunNoを名前に含んだフォルダを作成し保存)

  • outDataPath (string) – 出力先フォルダ(この中にOutRunNoの名前を含んだデータフォルダが保存)

  • RunNo1 (int) – 結合するRunNo #1

  • RunNo2 (int) – 結合するRunNo #2

  • RunNo3 (int) – 結合するRunNo #3

  • RunNo4 (int) – 結合するRunNo #4

  • RunNo5 (int) – 結合するRunNo #5

  • RunNo6 (int) – 結合するRunNo #6

Returns

None

utsusemi.ana.Reduction.BaseCommands.CheckDataProcess(dat, process='', isExact=True)#

データ処理の履歴管理用関数。

ElementContainerシリーズのヘッダに埋め込まれた vector<string> のキー”DATAPROCESSED”の情報をチェックする。

Parameters
  • dat (ElementContainer,-Array,-Matrix) – チェックするデータ

  • process (string) – チェックするプロセス名

  • isExuct (bool) – プロセス名を厳密に判断するかどうか(Falseなら一部が含まれていればTrue)

Returns

含まれているならTrue、含まれていないならFalse

Return type

bool

utsusemi.ana.Reduction.BaseCommands.CopyData(first_run=10, last_run=-1, flag=0)#

装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする。各DAQ CPU上にあるデータを/data/XXX以下へ持ってくるための関数を実行する。測定中のデータおよび測定後のデータは、各DAQ CPUに分散して保存されているため、これらを解析するためには1ヶ所に集める必要がある。そのための関数である。(DR.CopyDataと全く同等)

Parameters
  • first_run (int) – コピーしたい最初のRun number

  • last_run (int) – コピーしたい最後のRun number

  • flag (bool) – コピーなら0、コピーではなくシンボリックリンクにするときは1

Returns

None

utsusemi.ana.Reduction.BaseCommands.CopyIroha2Params(first_run=10, last_run=-1, flag=0, target='')#

装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする。

utsusemi.ana.Reduction.BaseCommands.MakeRunList(start_run=-1, end_run=-1, output='./run_list.txt', flag_proton=4, offset_sec=0.0, isCT8n=True, devTemp='LakeShore340', devGonio='Gonio')#

装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する。