空蟬基本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" )
など。
基本関数一覧#
共通的なコマンドに関しては、ユーザーズマニュアルを参照のこと。
非弾性散乱用処理#
関数 |
説明 |
---|---|
BoseFactCorrEC |
ボーズ因子の補正をElementContainerに対し行う |
BoseFactorCorrection |
ボーズ因子の補正を行う |
FlexCalc |
エネルギー遷移変換後のデータに対し、与えた自由な式で強度の補正を行う |
GetEi |
与えたElementContainerMatrixデータの指定したPixelをビームモニターと見なし 入射エネルギーを計算する |
GetEiFromEvent |
指定したPixelをビームモニターと見なしイベントデータから最小限のヒストグラム化を行い、 入射エネルギーを計算する |
KiKfCorrection |
ki/kf補正を行う |
ToPowder |
ElementContainerMatrixデータのPowder平均をとる |
SavePowderDataToText |
Power平均を行ったデータをテキストファイルに書き出す |
VisContMOutputFigure |
VisualContM上でのスライスを行い画像を保存する |
VisContMOutputFileByPhi |
VisualContM上でのスライスを行い、D4Matrix用のバイナリファイルを作成する |
RadialCollimatorCorrect |
RadialCollimatorによるバックグランドを補正する |
GetOrigPixelFromQXtalParam |
与えた結晶情報などを利用し、逆格子空間座標(Q,hw)から検出器Pixelを計算する |
GetOrigPixelFromQString |
|
CalcYRotAngleFromQXtalParam |
与えた結晶情報などを利用し、逆格子空間座標(Q,hw)を観測するために必要な回転角度と 観測されるPixelを計算する |
CalcYRotAngleFromQString |
|
DymPDF |
動的対相関関数による処理を行う |
TofToEnergyTransfer |
TOFのヒストグラムをエネルギー遷移のデータへ変換する |
TofToEnergyTransferStrict |
TOFのヒストグラムをエネルギー遷移のデータへ変換する(明確なエネルギー範囲を指定可) |
WhiteVanCorr |
(未実装)White Vanadiumの補正用データでの補正 |
MakeWhiteVanCorr |
(未実装)White Vanadiumの測定データから補正用データを作成する |
装置用処理・その他#
関数 |
説明 |
---|---|
AppendRawDataFiles |
複数のRaw Data(イベントデータ)を結合し、別データとして保存する |
CheckDataProcess |
データ処理の履歴管理用関数 |
CopyData |
装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする |
CopyIroha2Params |
装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする |
MakeRunList |
装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する |
非弾性散乱用処理#
BoseFactCorrEC#
ボーズ因子の補正を行う。対象は一つのPixelのデータElementContainer。
BoseFactCorrEC(dat,T=300.0)
パラメータ
フォーマット
説明
dat
ElementContainer
与えるElementContainer
T
実数
ボーズ因子補正に用いる温度[K]
戻り値
無し
(与えられたElementContainerの中身が置きかわる)
BoseFactorCorrection#
ボーズ因子の補正をElementContainerMatrixに対し行う。
BoseFactorCorrection( dat,T=300.0)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
T
実数
ボーズ因子補正に用いる温度[K]
戻り値
無し
(与えられたElementContainerMatrixの中身が置きかわる)
FlexCalc#
エネルギー遷移変換後のデータに対し、与えた自由な式で強度の補正を行う。
FlexCalc(dat,Intensity=””,Error=””)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
Intensity
文字列
強度を補正する式。フォーマットは下記。
Error
文字列
エラーを補正する式。フォーマットは下記。
戻り値
ElementContainerMatrix
補正を終えたElementContainerMatrix。
- 補正式の書き方
補正式に用いることのできる記号は以下の通り
パラメータ
説明
I
強度
Err
エラー値
hw
エネルギー遷移
Q
与えられたElementContainerMatrixがPowderの時
Qx, Qy, Qz
与えられたElementContainerMatrixが単結晶の時
これらを使って、Pythonで扱うことのできる形で式を記述する。例えば下記のように表現する。
I/hw*Q*Q
GetEi#
与えたElementContainerMatrixデータの指定したPixelをビームモニターと見なし入射エネルギーを計算する。
GetEi(dat, expEi=50.0, MonPsd=0,MonPixel=0, L1=Def_L1, T0shift=0.0, FittingType=0, Debug=0)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
expEi
実数
予期する入射エネルギー[meV]。
MonPsd
整数
ビームモニターとみなす検出器Id。
MonPixel
整数
ビームモニターとみなす検出器部位の番号。
L1
実数
L1 [m] :線源と試料との間の距離.
T0Shift
実数
TOFの原点のオフセット値 [micro-sec]。
FittingType
整数
フィッティング関数の種類。0:Gaussian (今はこれだけ)
Debug
整数
デバッグモードオフ:0、オン:1。
戻り値
無し
GetEiFromEvent#
指定したPixelをビームモニターと見なしイベントデータから最小限のヒストグラム化を行い、入射エネルギーを計算する。
GetEiFromEvent(runNo=0, expEi=”0.0”, PSD=”-1”, PIXEL=”-1”,NumOfPixel=100, Resolution=0.5,PlotFlag=0)
パラメータ
フォーマット
説明
runNo
整数
ヒストグラム化するRunNo。
expEi
文字列
予期する入射エネルギー[meV]。複数同時指定可能(カンマ区切り)。
MonPsd
文字列
ビームモニターとみなす検出器Id。
MonPixel
文字列
ビームモニターとみなす検出器部位の番号。
NumOfPixel
整数
1検出器あたりのPixel数。
Resolution
実数
横軸のBinningの幅の割合 [%]。Resulusion*Ei/100.0 = binning of TOF
PlotFlag
整数
フィッティング結果をMPlotに出すかどうか:しない(0)、する(1)
戻り値
無し
KiKfCorrection#
ki/kf補正を行う。
KiKfCorrection(dat)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
戻り値
無し
(与えられたElementContainerの中身が置きかわる)
ToPowder#
非弾性散乱ElementContainerMatrixデータのPowder平均をとる。Qの範囲とbin幅はElastic軸(Energy Transfer = 0.0)上のものを指定する。戻り値のデータは、QのbinごとにElementContainerに保存され、それらを一つのElementContainerArrayに入れ、ElementContainerMatrixに入れている。
ToPowder(dat,startQ=-1.0,endQ=-1.0,deltaQ=0.0)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
startQ
実数
Q軸の範囲の最小値。 -1.0 はデータにおける最小値を利用。
endQ
実数
Q軸の範囲の最大値。 -1.0 はデータにおける最大値を利用。
deltaQ
実数
Q軸のbin幅。
戻り値
ElementContainerMatrix
ElementContainerArrayが一つ入っている。
SavePowderDataToText#
与えたElementContainerMatrixデータをテキストファイルに書き出す。
SavePowderDataToText(dat,deltaQ=0.0, path=”./”,filename=”Sample.txt”)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
deltaQ
実数
Q軸のbin幅。
path
文字列
データファイルを入れるフォルダ名(デフォルトの ./ はカレントディレクトリ)
filename
文字列
データファイル名。
戻り値
無し
VisContMOutputFigure#
VisualContM上でのスライスを行い画像を保存する。
VisContMOutputFigure(dat, param_file=”param.xml”,output_file=”./”,zmin=-1.0,zmax=-1.0)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
param_file
文字列
パラメータファイル(XtalParams.xml)のパス(VisualContMで保存されたファイル)
output_file
文字列
出力画像ファイルのバス。
Zmin
実数
強度(z)軸の最小値。
Zmax
実数
強度(z)軸の最大値。
戻り値
無し
VisContMOutputFileByPhi#
VisualContM上でのスライスを行い、D4Matrix用のバイナリファイルを作成する。
VisContMOutputFileByPhi(dat, param_file=”param.xml”,phi=0.0,output_file=”./”)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
param_file
文字列
パラメータファイル(XtalParams.xml)のパス(VisualContMで保存されたファイル)
phi
実数
UベクトルとVベクトルの平面上での回転 [degree]
output_file
文字列
出力バイナリファイルのバス。
戻り値
無し
RadialCollimatorCorrect#
ラジアルコリメータにより発生するバックグランドを補正する。
RadialCollimatorCorrect(dat=DAT,vdat=DAT,integRange=”All”,pixelRange=”All”)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
補正したいデータ
vdat
ElementContainerMatrix
バックグランド補正用データ(Vanadium data)
integRange
文字列
Vanadium Dataの各Pixelの強度の積分領域の横軸を “All”か”<start>:<end>”で指定する
pixelRange
文字列
Vanadium Dataの強度の積分をどのPixelの領域で行うかを “All”か”<start>:<end>”で指定する
戻り値
無し
GetOrigPixelFromQXtalParam#
XtalParamファイルによって与えた結晶情報などを利用し、逆格子空間座標(Q,hw)から検出器Pixelを計算する。
GetOrigPixelFromQXtalParam( XtalParam="XtalParam.xml", Q="1.0,1.0,1.0", Ei=45.56, hw=0.0, runNo=999999, pixNum=100 )
パラメータ
フォーマット
説明
XtalParam
文字列
利用したいXtalParamファイルのパス
Q
文字列
逆算したいQの座標 “<Q1>,<Q2>,<Q3>”
Ei
実数
入射エネルギー
hw
実数
逆算したいエネルギー遷移の値
runNo
整数
対象となるRunNo(検出器の配置がRunNoごとに異なるため)
pixNum
整数
1PSDの分割数(BL01なら100, BL14なら120)
戻り値
無し
GetOrigPixelFromQString#
与えた結晶情報などを利用し、逆格子空間座標(Q,hw)から検出器Pixelを計算する。
GetOrigPixelFromQString( LatticeConst="4.8,8.4,2.9",LatticeAngles="90.0,90.0,90.0", \ Uvect="0.0,1.0,0.0",Vvect="0.0,0.0,1.0",RotStep="None", \ ViewAxis1="1,0,0",ViewAxis2="0,1,0",ViewAxis3="0,0,1", \ Q="1.0,1.0,1.0",Ei=45.56, hw=0.0, runNo=999999, pixNum=100 )
パラメータ
フォーマット
説明
LatticeConst
文字列
格子定数1 “<a>,<b>,<c>”
LatticeAngles
文字列
格子定数2 “<alpha>,<beta>,<gamma>”
Uvect
文字列
方位情報のUベクトル “<Uh>,<Ul>,<Ul>”
Vvect
文字列
方位情報のVベクトル “<Vh>,<Vl>,<Vl>”
RotStep
文字列
回転情報 “None”:回転なし、”Y:12.3” Y軸中心に12.3度回転
ViewAxis1
文字列
HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”
ViewAxis2
文字列
HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”
ViewAxis3
文字列
HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”
Q
文字列
逆算したいQの座標 “<Q1>,<Q2>,<Q3>”
Ei
実数
入射エネルギー
hw
実数
逆算したいエネルギー遷移の値
runNo
整数
対象となるRunNo(検出器の配置がRunNoごとに異なるため)
pixNum
整数
1PSDの分割数(BL01なら100, BL14なら120)
戻り値
無し
CalcYRotAngleFromQXtalParam#
XtalParamファイルによって与えた結晶情報などを利用し、逆格子空間座標(Q,hw)を観測するために必要な回転角度と観測されるPixelを計算する
CalcYRotAngleFromQXtalParam( XtalParam="XtalParam.xml", Q="1.0,1.0,1.0", Ei=45.56, hw=0.0, runNo=999999, pixNum=100 )
パラメータ
フォーマット
説明
XtalParam
文字列
利用したいXtalParamファイルのパス
Q
文字列
逆算したいQの座標 “<Q1>,<Q2>,<Q3>”
Ei
実数
入射エネルギー
hw
実数
逆算したいエネルギー遷移の値
runNo
整数
対象となるRunNo(検出器の配置がRunNoごとに異なるため)
pixNum
整数
1PSDの分割数(BL01なら100, BL14なら120)
戻り値
無し
サンプルコード
XtalFile="XtalParam.xml" Cmm.CalcYRotAngleFromQString( XtalParam=XtalFile,Q="2,0.5,-0.5",Ei=26.3, hw=0.0, runNo=33019, pixNum=100 )実行結果は以下の通り。
Y Rotation Angle= 38.9468996935711 detId, pixel = 198, 17 Y Rotation Angle= -76.41461129041824 Out of range
CalcYRotAngleFromQString#
与えた結晶情報などを利用し、逆格子空間座標(Q,hw)を観測するために必要な回転角度と観測されるPixelを計算する
GetOrigPixelFromQString( LatticeConst="4.8,8.4,2.9",LatticeAngles="90.0,90.0,90.0", Uvect="0.0,1.0,0.0",Vvect="0.0,0.0,1.0",RotStep="None", ViewAxis1="1,0,0",ViewAxis2="0,1,0",ViewAxis3="0,0,1", Q="1.0,1.0,1.0",Ei=45.56, hw=0.0, runNo=999999, pixNum=100 )
パラメータ
フォーマット
説明
LatticeConst
文字列
格子定数1 “<a>,<b>,<c>”
LatticeAngles
文字列
格子定数2 “<alpha>,<beta>,<gamma>”
Uvect
文字列
方位情報のUベクトル “<Uh>,<Ul>,<Ul>”
Vvect
文字列
方位情報のVベクトル “<Vh>,<Vl>,<Vl>”
RotStep
文字列
回転情報 “None”:回転なし、”Y:12.3” Y軸中心に12.3度回転
ViewAxis1
文字列
HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”
ViewAxis2
文字列
HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”
ViewAxis3
文字列
HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”
Q
文字列
逆算したいQの座標 “<Q1>,<Q2>,<Q3>”
Ei
実数
入射エネルギー
hw
実数
逆算したいエネルギー遷移の値
runNo
整数
対象となるRunNo(検出器の配置がRunNoごとに異なるため)
pixNum
整数
1PSDの分割数(BL01なら100, BL14なら120)
戻り値
無し
サンプルコード
LC="3.905, 3.905, 3.905" LA="90.0,90.0,90.0" UV="1,0,0" VV="0,0.96,1.04" VA1="1,0,0" VA2="0,1,1" VA3="0,-1,1" Cmm.CalcYRotAngleFromQString( LatticeConst=LC,LatticeAngles=LA,Uvect=UV,Vvect=VV,RotStep="None",ViewAxis1=VA1,ViewAxis2=VA2,ViewAxis3=VA3,Q="2,0.5,-0.5",Ei=26.3, hw=0.0, runNo=33019, pixNum=100 )実行結果は以下の通り。
Y Rotation Angle= 38.9468996935711 detId, pixel = 198, 17 Y Rotation Angle= -76.41461129041824 Out of range
DymPDF#
非弾性Powderデータを入力とし、内部で運動量遷移方向にスライスし、動的対相関関数による処理を行う。結果は横軸 r 、縦軸 hw の2次元データとなる。
DymPDF( DAT=DAT, hwSlice="0.2,1.0,12.5", rRange="0.1,40.0", magFFa="0.4220,17.684", magFFb="0.5948,6.005", magFFc="0.0043,-0.609",magFFd="-0.0219", CF=74.84, isXaxisR=True )
パラメータ
フォーマット
説明
DAT
ElementContainerMatrix
対象となるPowderデータ(Powder処理済み)
hwSlice
文字列
hw方向の分割情報 “<delta-hw>, <hw-min>, <hw-max>”
rRange
文字列
実空間方向の情報 “<min>,<max>”
magFFa
文字列
Magnetic Form Factor 情報1
magFFb
文字列
Magnetic Form Factor 情報2
magFFc
文字列
Magnetic Form Factor 情報3
magFFd
文字列
Magnetic Form Factor 情報4
CF
実数
強度補正因子
isXaxisR
bool
計算結果の2次元データの横軸を距離にするか(True)、 エネルギー遷移にするか(False)
戻り値
ElementContainerArray
未実装・使用頻度の低いもの#
TofToEnergyTransfer#
TOFのヒストグラムをエネルギー遷移のデータへ変換する。
TofToEnergyTransfer(dat,Ei=-1.0,L1=Def_L1,t0shift=0.0,deltaE=0.0,EminRate=0.9,EmaxRate=0.9)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
Ei
実数
入射エネルギー [meV]
L1
実数
L1 [m] :線源と試料との間の距離.。
t0shift
実数
TOFの原点のオフセット値 [micro-sec]。
deltaE
実数
Energy Transfer軸のbin幅 [meV]。
EminRate
実数
Energy Transfer軸の最小値をEiの割合(0.0< EminRate <1.0)で示したもの。
EmaxRate
実数
Energy Transfer軸の最大値をEiの割合(0.0< EmaxRate <1.0)で示したもの。
戻り値
無し
TofToEnergyTransferStrict#
TOFのヒストグラムをエネルギー遷移のデータへ変換する(明確なエネルギー範囲を指定可)。
TofToEnergyTransferStrict(dat,Ei=-1.0,L1=Def_L1,t0shift=0.0,Emin=-10.0,Emax=10.0,deltaE=0.0)
パラメータ
フォーマット
説明
dat
ElementContainerMatrix
与えるElementContainerMatrix
Ei
実数
入射エネルギー [meV]
L1
実数
L1 [m] :線源と試料との間の距離.。
t0shift
実数
TOFの原点のオフセット値 [micro-sec]。
deltaE
実数
Energy Transfer軸のbin幅 [meV]。
Emin
実数
Energy Transfer軸の最小値 [meV]。
Emax
実数
Energy Transfer軸の最大値 [meV]。
戻り値
無し
MakeWhiteVanCorr#
(未実装)White Vanadiumの測定データから補正用データを作成する。
WhiteVanCorr#
(未実装)White Vanadiumの補正用データでの補正。
装置用処理・その他#
AppendRawDataFiles#
複数のRaw Data(イベントデータ)を結合し、別データとして保存する。
AppendRawDataFiles(OutRunNo=990000,outDataPath=”-“,RunNo1=0,RunNo2=0,RunNo3=0,RunNo4=0,RunNo5=0,RunNo6=0)
パラメータ
フォーマット
説明
OutRunNo
整数
保存するデータのRunNo。このRunNoを名前に含んだフォルダを作成する。
outDataPath
文字列
出力先フォルダ。この中にOutRunNoの名前を含んだデータフォルダが保存される。
RunNo1
整数
結合するRunNo #1
RunNo2
整数
結合するRunNo #2
RunNo3
整数
結合するRunNo #3
RunNo4
整数
結合するRunNo #4
RunNo5
整数
結合するRunNo #5
RunNo6
整数
結合するRunNo #6
戻り値
無し
CheckDataProcess#
データ処理の履歴管理用関数。
CopyData#
装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする。各DAQ CPU上にあるデータを/data/XXX以下へ持ってくるための関数を実行する。測定中のデータおよび測定後のデータは、各DAQ CPUに分散して保存されているため、これらを解析するためには1ヶ所に集める必要がある。そのための関数である。(DR.CopyDataと全く同等)
CopyData(first_run=10,last_run=-1,flag=0)
パラメータ
タイプ
説明
runNo
正の整数(UInt4)
コピーしたいRun number
flag
正の整数(UInt4)
通常は省略、コピーではなくシンボリックリンクにするときは1
戻り値
なし
なし
CopyIroha2Params#
装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする。
MakeRunList#
装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する。