Change History 2021#

Author

Yasuhiro Inamura

Last Update

Jan. 25, 2022

4.0.211227 or later#

Dec 27 2021

[bugfix:manyo:0.3.4] the issue overlapped intensity bins on summation in MlfArraySlicer::_MakeRectXbinCutData

MlfArraySlicer::_MakeRectXbinCutData で与えたY区切りに対して積分した際に、境界部分がオーバラップされることがわかったので修正した。

これまでは以下のように、境界のindexが双方に含まれていた(二重にカウント)。

+-------------+-----------------+
|与えた区切り |使用されるindex  |
+=============+=================+
|Y=0.049-0.099|index 275-300    |
+-------------+-----------------+
|Y=0.099-0.149|index 300-325    |
+-------------+-----------------+
|Y=0.149-0.199|index 325-350    |
+-------------+-----------------+
|Y=0.199-0.249|index 350-375    |
+-------------+-----------------+

今回の修正で、境界部分での二重にカウントすることは無くなった。

+-------------+-----------------+
|与えた領域   |使用されるindex  |
+=============+=================+
|Y=0.049-0.099|index 275-299    |
+-------------+-----------------+
|Y=0.099-0.149|index 300-324    |
+-------------+-----------------+
|Y=0.149-0.199|index 325-349    |
+-------------+-----------------+
|Y=0.199-0.249|index 350-374    |
+-------------+-----------------+

_MakeRectYbinCutDataでの X区切りに対するindexは問題なかった。

なおMlfArraySlicer.ccの中で、#[inamura 211227] が含まれるコメント文を復活させると、それぞれの積分に加えられたindexが確認できる。

Dec 26 2021

[update:manyo:0.3.4] Improve to return false when the result of SearchInHeader is empty.

SearchInHeaderで、検索結果が空だった場合にfalseを返すようにした。 これにより、

  • そもそも検索すべきデータがセットされていない

  • データに対し検索をしたが見つからない

の両方でfalseを返すことになる。

Dec 25 2021

[Update:Utsusemi:4.0] Add new class to create event data

イベントデータを作成するためのクラス (UtsusemiEventDataCreator) を追加した。

シナリオとなるテキストファイルを読み込んで、イベントを生成し、ファイルに書き出す。 現状は、NEUNETとTrigNET(DIOシグナル)のみ対応。

シナリオ例

s.txt

#<Head> k=T0, n=Neunet, t=Trignet
k:0:0.0
t:300:dio:2u
t:400:dio:2d
n:500
k
t:300:dio:2u
t:400:dio:2d
n:500
k
t:300:dio:2u
t:400:dio:2d
t:600:dio:1u
t:700:dio:1d
n:1000
k
t:300:dio:2u
t:400:dio:2d
n:2000
k
t:300:dio:2u
t:400:dio:2d
n:3000
(以下略)
+--------+------+---------------------+
|Event   |Header|Notation             |
+========+======+=====================+
|T0+Clock|k     |k[:<pulseId>:<clock>]|
+--------+------+---------------------+
|Neutron |n     |n:<tof[us]>          |
+--------+------+---------------------+
|TrigNET |t     |t:<tof>:<sid2>:<sid1>|
+--------+------+---------------------+

実行例

make_event.py

import Manyo.Utsusemi as mu

tt=mu.EventDataCreator()
neut="data/SIK/SIK000001_20211224/SIK000001_00_000_000.edb"
trig="data/SIK/SIK000001_20211224/SIK000001_00_254_000.edb"

tt.output( "s.txt",neut,trig )

引数はシナリオのファイルパス、Neunetイベントファイルパス、TrigNETイベントファイルパス、である。

EventDataCreator::output( string <scenario>, string <output_neunet>, string <output_trignet>)
Dec 25 2021

[Update:Utsusemi:4.0] Add new cyclic data treatment on TrigNET with a virtual time origin and a counter by 25Hz trigger

以前からTrigNETのシグナルを起点とした時間分解(秒による指定)をサイクリックに処理する機能が実装されている。これによりストロボスコピック実験を行うための構成がシンプルになった。 しかしながら時間分解の起点となるシグナルからの秒数による指定だと、正確にフレーム単位で取り出すことが難しい(キッカーの周期がある程度揺らいだり、抜けたりするため)。

そこでTrigNETに、時間分解の起点となるシグナル、およびMLF基準トリガー(常時25Hzなど)のシグナルを同時にカウンターとして入力し、サイクリックに処理することにした。 これにより、Caseの範囲を起点シグナルのフレームからのフレーム数で指定でき、正確にフレーム単位で処理できるようになった。

この方式のCaseInfoの例は以下のようになる。

<caseInfo>
    <caseAmbiguity>3</caseAmbiguity>
    <initialCase>0</initialCase>
    <filters/>
    <counters n="1">
        <counter i="0" type="KICKCOUNT">
            <signal n="2" cnd="OR">
                <trignet i="0" index="0" io="DIO1R" title="Kicker" attr="1.0"/>
                <trignet i="1" index="0" io="DIO2R" title="Counter" attr="1.0"/>
            </signal>
            <conversionVal>1.0</conversionVal>
            <originVal unit="Count">0.0</originVal>
            <cyclicRegion/>
            <conditions type="2">
                <cond>-0.5,11.5,1.0</cond>
            </conditions>
        </counter>
    </counters>
</caseInfo>
  1. <counter>のtype属性に”KICKCOUNT”を与える。

  2. <counter>/<signal>には二つの<trignet>があり、片方は仮想キッカー、もう片方はカウンターであり、両者の区別はtitle属性で行う。

+----------+----------+
|役割    |title     |
+==========+==========+
|仮想キッカー|"Kicker"  |
+----------+----------+
|カウンター |"Couinter"|
+----------+----------+

変更点

  • UtsusemiTrignetCounter::Type はこれまで 0:”ABP”, 1:”NORMAL”, 2:”ABC” だったが、新たに 3:”KICKCOUNT”を加えた

  • UtsusemiTrignetCounter::SetType が”KICKCOUNT”を認識するようにした

  • UtsusemiTrignetCounter::CountEvent で、”KICKCOUNT”の処理を行うように改変した

  • UtsusemiTrignetCondition::Check( uInt4, UInt4, UInt4, vector<UInt4>* )に引数 string titleをつけた(キッカーとカウンター識別用)

Dec 22 2021

[Update:Utsusemi:4.0] Improve Shamono’s DymPDF class to produce G(r,hw) 2D map by using of given r’s bin width and max value.

DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植

社本氏のDynamical PDFの計算クラス(ShamotoDymPDF)に対して以下の機能追加を行なった。

  • 出力G(r,hw)のrのbin幅と最大値を設定して計算できるようにした

  • Executeにboolの引数 doSlice を加え、スライス機能を実行するかしないかを選択できるようにした

  • 将来的には、空蟬で作成されたデータではないデータを読み込んで同様の処理と空蟬での可視化ができるようにする布石

サンプルコード

(前略)
# 変換用クラスの準備
tt=mu.ShamotoDymPDF()
# データ読み込み
tt.SetData( DAT )
# hwのスライス領域の設定 幅:0.2, hw_min: 1.0, hw_max: 12.5
tt.SetSliceWidth( 0.2, 1.0, 12.5 )
# Magnetic form Factor
tt.SetMagFormFact( 0.4220, 17.684, 0.5948,6.005,0.0043,-0.609,-0.0219 )
# 出力用 r 情報( bin width : 0.1, max r : 40.0 )
tt.SetRRange( 0.1, 40.0 )
# Correction Factor (?)
tt.SetCf(74.84)

# 変換実行
tt.Execute()

# 結果取り出し(横軸r、横をhwにする場合は、PutResult(False))
eca = tt.PutResult(True)
(後略)
Dec 21 2021

[Update:Utsusemi:4.0] Improve Shamono’s DymPDF calculation code to use Inelastic-Powder-Data directly.

DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植

社本氏のDynamical PDFの計算クラス(ShamotoDymPDF)に対して以下の機能追加を行なった。

  • 非弾性Powderデータを直接読み込む

  • 与えたhwの範囲と幅により、Powderデータをスライスし、それぞれを変換コードにて変換

  • 変換後データを再構築して、2次元の可視化が可能とする

あとはFacadeを作成すること。

Test.py

import Manyo.Utsusemi as mu
import Manyo
import Cmm
import uGao.M2PlotPlusCui as M2

# 返還前の保存済み 非弾性パウダーデータ(バックグランドも引いてある)を読み込みプロット
DAT = Cmm.LoadDataFromDump( "data_shamoto","Mn3RhSi_5K_Ei18meV.dmp" )
v1=M2.M2PlotPlusCui(DAT)
v1.ShowData()

# 変換用クラスの準備
tt=mu.ShamotoDymPDF()
# データ読み込み
tt.SetData( DAT )
# スライス領域の設定 幅:0.2, hw_min: 1.0, hw_max: 12.5
tt.SetSliceWidth( 0.2, 1.0, 12.5 )
# そのほかパラメータ
tt.SetCf(74.84)

# 変換実行
tt.Execute()

# 結果取り出し(横軸r、横をhwにする場合は、PutResult(False))
eca = tt.PutResult(True)

# 変換後データの2Dプロット
v2=M2.M2PlotPlusCui(eca)
v2.ShowData("R","EnergyTransfer")

4.0.211217 or later#

Dec 17 2021

[bugfix:manyo:0.3.4] The issue that HeaderBase::InputString cannot treat previous format of string header info ( causes the core dump error )

DATA_RDCT-115 空蟬4:D4Mat2で古いd4mファイルの読み込みで core dump

HeaderBase::DumpToString及びInputStringの改良した結果、古いフォーマットにおけるStringの情報を読み込むと core dump する問題を修正した。

4.0.211203 or later#

Dec 3 2021

[Update:Utsusemi:4.0] Enable to find given run numbers in other data folders like (SIK, SIK00, SIK01,…) in MakeRunList function

Dec 3 2021

[bugfix:Utsusemi:4.0] The issue that an argument of Com:IntegPixels facade is not treated correctly on SequenceEditor

Dec 3 2021

[update:Utsusemi-SAS:0.3.7,4.0] Add new params to IncohCalcFor3HeSpinFilter.

  • IncohCalcFor3HeSpinFilterに、Heのガス圧を+と-のそれぞれに指定できるようにした

  • Cmm.IncohCalcFor3heNSFmulを上記に対応させた

Nov 26 2021

[bugfix:Utsusemi:4.0] The issue that error occurs on executing the projection on D4Mat2Slicer using Step-by-step data.

Nov 19 2021

[bugfix:Utsusemi:4.0] The issue that error occurs on cutting along PSD and Pixel on DetectMap

DATA_RDCT-112 空蟬4:DetectMapでPSD方向及びPixel方向のスライスができない

  • 課題の問題点を修正した

  • Cutする場合に、強度がMASKVALUEとなっているピクセル(エラーが負のものも)がCutの対象に含まれてしまう問題を修正した

  • いくつか不要な出力コメントを削除した

Nov 17 2021

[update:Utsusemi-SAS:4.0] Update WiringInfo for added PSD at HL and HD

Nov 11 2021

[bugfix:Utsusemi:4.0] fixed wrong letter on VisualContM GUI.

4.0.211022 or later#

Oct 21 2021

[bugfix:Utsusemi:4.0] The issue that the error occurs on saving d4m file in D4Mat2Slicer

DATA_RDCT-82 D4Mat2Slicer関連の要望

連続回転測定のデータをd4m形式で保存するとエラー(2021.10.21稲村追記)に対応

連続回転測定時に複数のRunを扱えるようにした結果、d4m保存時の記述に問題がありエラーが出るのを修正した。

Oct 21 2021

[bugfix:Utsusemi:4.0] The issue that array variables created in D4MatGroup are not deleted correctly

Oct 14 2021

[Update:Utsusemi:4.0] Improve D4Mat2Slicer to enable to do data reduction with several run numbers at a time

DATA_RDCT-82 D4Mat2Slicer関連の要望

連続回転測定モードで、複数のRunNoを同時に処理(ヒストグラム化の時点でマージ)する機能を追加した。

追加機能

一度に複数のRunNoを扱うためには、RunNoごとにStart Deg(測定スタート時の角度情報)が必要である。

複数のRunNoとStart Degを入力するためにData ReductionパネルのRunNoとStart Degの入力欄に、複数の値をカンマ区切りで入力することで対応した。

変更点

RunNoごとにCaseInfoが異なる(Start Degが変わる)ので、共通のWiringInfoとDetectorInfoを設定したのち、RunNoごとにCaseInfoを作り、読み込ませ、TrigNETのイベントデータを読み込んで、NEUNETのデータを処理する。

よって、RunNoごとに

cfile = DU.MakeCaseInfoFile( st_deg, min_deg, max_deg, w_deg, runNoi, dio )
self.DataConverter.SetCaseInfoParams( cfile )
self.DataConverter.LoadTrignetEventFile( runNoi, data_dir, "" )
self.DataConverter.LoadEventDataFiles( runNoi, data_dir, "" )

を実行することになる。

また、RunNoごとにそれぞれのCaseに対応するKicker数が異なるので、上記の処理の後にKicker数をCaseごとに保存し(PutNumOfT0ListInCases())、全てのRunNoを読み込んだのちに、そのRunNo毎のKicker数をマージ(加算)する。

その複数のRunNoでマージされたCaseごとのKicker数を、UtsusemiD4Matrix2::ImportEcmsContRotに渡せるように引数を変更し、このKicker数でCaseごとに取り出したElementContainerMatrixのヘッダのKicker数をオーバーライトしておく。

これにより複数のRunNoが含まれた強度の角度毎のノーマライズがImportEcmsContRot内部のUtsusemiReductionInEla::NormByKickersで問題なく行われる。

あと、Data ReductionパネルのRunNoとStart Degの入力欄を少しだけ大きくした。

Oct 11 2021

[bugfix:Utsusemi:4.0] Improved and fixed the way to calculate rotation angle steps on the virtual mode of both D4MatSlicer and D4Mat2Slicer

Oct 4 2021

[bugfix:Utsusemi:4.0] The issue that slicing on VisualContQ fails when the X-axis label text includes comma.

DATA_RDCT-109 空蟬4 VisualCont関連

  1. Axis Labelに,が含まれていると、スライス時に失敗する問題に対応した

  2. Projection実行後に自動的にスライスの軸の範囲がAutoFillされる機能を削除した

対応1

VisualContQにおけるLabelsは、ElementContainerのHeaderBaseに、X方向のbinの値のキーとして使用される。

uGaoの中でキーを取り出す際に DumpToStringを使用するが、HeaderBaseに例えばStringMapに複数の値が含まれていると、DumpToStringによってカンマ区切りで出力される。

>>> HH.Dump() # HeaderBaseに以下のようなDouble情報がある場合

***DoubleMap***
Index  Key      Value
0      Qx(H,0,0)  -1.5
1      Qy       -3.5
...

>>> HH.DumpToString() # 出力結果は
'...#,#2#,#Qx(H,0,0),Qy#,#-1.50,-3.50#,#...'

>>> v=HH.DumpToString().split('#,#')
>>> v[4]
'Qx(H,0,0),Qy'

ここにわかるように、同一Map内に複数あり、かつKeyにカンマが含まれると、カンマが区切りなのかKeyなのか判別が難しくなる。

よって、今回はVisualContQ内で、

  • Labelにカンマが含まれる場合、カンマを外したものをKeyとして使用する

  • プロットする際に、KeyとLabelを同一に扱っていたのを分離する

ことで、今回の問題を回避した。

対応2

OperationTab::OnProj内にある self.OnAutoFill()をコメントアウトし、呼び出さないようにした。

Oct 4 2021

[update:uGao:master] Update to treat new format of Manyo::HeaderBase::DumpToString

ManyoライブラリのHeaderBase::DumpToString及びInputStringのテキストフォーマットの改良(KEYやStringの区切りを”,”から”,”に変更)に対応した。

Oct 4 2021

[bugfix:manyo:0.3.4] The issue that previous format in HeaderBase::DumpToString and InputString cannot treatment.

HeaderBase::DumpToString及びInputStringの改良した結果、古いフォーマットが扱えなくなったので修正した。

注意点

KEYやString, StringVector値といった文字列の区切りに使用されるのは コード内では’\,’ と記述されるが、実際に出力される文字列内では ‘,’ ( バックスラッシュ+,)である。

Oct 4 2021

[update:manyo:0.3.4] Improve the format used in HeaderBase::DumpToString and InputString to avoid incorrect treatment of Key and string including comma charactor

HeaderBase::DumpToString及びInputStringの改良を行なった。

問題点 ヘッダ情報のキーにコンマが含まれている時にDumpToStringの結果をInputStringで読み込むと、キーのコンマと情報区切り用のコンマとが判別できなくなるため、正しく処理できない。

Int4MapやDoubleMapなどのMapグループの区切りは ‘#,#’であるが、それぞれのMap内のキーと値の区切りは ‘,’のみである。

#,#KEY1,KEY2#,#CONT1,CONT2#,#

ここで、KEYやCONTにコンマが入っていると、このテキストを正しくデコード(InputString) できないことになる。

対処

そこで、Stringを用いるKEYの区切りと、StringMap及びString vector Map内の値の区切りを ‘\,’ にすることで、KEYやString値にコンマがあっても大丈夫なようにした。

Example

以前の状態(復元したHH2がおかしいのをDumpで確認)

>>> import Manyo
Manyo>>> HH=Manyo.HeaderBase()
Manyo>>> HH2=Manyo.HeaderBase()
Manyo>>> HH.Add("Qx(H,0,0)",-1.5)
Manyo>>> HH.Add("Qy",-3.5)
Manyo>>> HH2.InputString(HH.DumpToString())
Manyo>>> HH.Dump()
***Int4Map***
Index   Key     Value

***DoubleMap***
Index   Key     Value
0       Qx(H,0,0)       -1.5
1       Qy      -3.5

***StringMap***
(omission)

Manyo>>> HH2.Dump()
***Int4Map***
Index   Key     Value

***DoubleMap***
Index   Key     Value
0       Qx(H    -1.5
1       0       -3.5

***StringMap***
(omission)

今回の修正により、以下のように問題なく復元できた。

Manyo>> HH2.Dump()
(omission)

***DoubleMap***
Index   Key     Value
0       Qx(H,0,0)       -1.5
1       Qy      -3.5

(omission)

4.0.211003 or later#

Oct 3 2021

[bugfix:Utsusemi:4.0] The issue that data treatment for Qx-Qy-Qz text on VisualContQ causes core dump

QxQyQz形式のファイルを取り込んでProjection-> Sliceでダンプする(バグ)に対応

0.3.7 -> 4.0(WxPythonからPySide)に変更した際に、タブを独立したWidgetオブジェクトとして使用するようにしている。

しかしQx-Qy-Qzファイルを読み込む部分で古いコード(SetTab)を呼び出していたため、一つのタブに複数のオブジェクトが作成されるようなバグがあった。

古いコード(SetTab)の代わりに、新しいコード(AddNewTab)のみ使用するように改変した。

Sep 21 2021

[update:Utsusemi:4.0] Add some comments and fix return values of CalcYRotAngleFromQ function series

Sep 15 2021

[update:Utsusemi:4.0] Replaced print function to UtsusemiMessage series

Sep 14 2021

[update:Utsusemi:4.0] Add function to find rotation angle around Y axis from the Q position on energy - momentum transfer space

DATA_RDCT-108 空蟬4:単結晶試料データ処理後のQ空間の座標を測定するために必要な試料の方位を求める手段

VisualContMなどの単結晶試料データ処理を行なった後のQ-hw空間の座標を観測するために必要な試料の方位(Y軸周りに回転させる角度)を求める手段を作成した。 ついでに、検出器の位置(detIdとpixel)も計算するようにした。

戻り値については検討中。

追加した関数

Python

  • BaseCommandsInEla::CalcYRotAngleFromQ

  • BaseCommandsInEla::CalcYRotAngleFromQXtalParam

  • BaseCommandsInEla::CalcYRotAngleFromQString

  • BaseCommandsInEla::GetDetectorPixelFromOrientation

manyo - UtsusemiSqeCalc2::PutInnerMatrix(string)

使用例

既に用意されているXtalParamファイルを利用する場合

コード

import utsusemi.ana.Reduction.BaseCommandsInEla as BCI

XtalParam="XtalParam.xml"
Q = [1.0,1.0,-1.0] # Q values
Ei = 45.56         # [meV]
hw = 0.0           # [meV] 0.0 means elastic position
runNo = 999999     # run number is used to choose suitable WiringInfo and DetectorInfo
pixNum = 100       # number of pixels on 1 PSD

BCI.CalcYRotAngleFromQXtalParam( XtalParam=Xfile, Q=Qin,Ei=Ei, hw=hw, runNo=runNo, pixNum=pixNum )

結晶・方位などの情報を直に渡す場合

import utsusemi.ana.Reduction.BaseCommandsInEla as BCI

LC = [3.62284,3.62284,3.62284,90,90,90] # Lattice Consts
Uv = [1,0,0]                  # U-vector
Vv = [0,1,1]                  # V-vector
RotStep = "None"              # if No rotation of sample
# RotStep = "Y:-10.0"         # If sample rotated -10 degree around Y axis
VA1 = [ 1, 0, 0 ]             # Projection axis1
VA2 = [ 0, 1, 0 ]             # Projection axis2
VA3 = [ 0, 0, 1 ]             # Projection axis3

Q = [1.0,1.0,-1.0] # Q values
Ei = 45.56         # [meV]
hw = 0.0           # [meV] 0.0 means elastic position
runNo = 999999     # run number is used to choose suitable WiringInfo and DetectorInfo
pixNum = 100       # number of pixels on 1 PSD

BCI.CalcYRotAngleFromQ( LatticeConst=LC, Uvect=Uv, Vvect=Vv, RotStep=RotStep,
                        ViewAxis1=VA1, ViewAxis2=VA2, ViewAxis3=VA3,
                        Q=Qin, Ei=Ei, hw=hw, runNo=runNo, pixNum=pixNum )

実行結果

Y Rotation Angle= -29.954239108109043
   detId, pixel = 75, 52
Y Rotation Angle= -150.04576089189098
   detId, pixel = 328, 52
Sep 3 2021

[update:Utsusemi:4.0] Add function to find pixel position from the Q position on energy - momentum transfer space

DATA_RDCT-108 空蟬4:単結晶試料データ処理後のQ空間の座標から検出器のPixelを求める手段

VisualContMなどの単結晶試料データ処理を行なった後のQ空間の座標が、実際の検出器のどこに当てはまるのかを求める手段を作成した。

追加した関数

  • BaseCommandsInEla::GetOrigPixelFromQXtalParam

  • BaseCommandsInEla::GetOrigPixelFromQString

  • BaseCommandsInEla::GetOrigPixelFromQ

facadeとしては、GetOrigPixelFromQXtalParamとGetOrigPixelFromQStringを使用する。

使用例

既に用意されているXtalParamファイルを利用する場合

import utsusemi.ana.Reduction.BaseCommandsInEla as BCI

XtalParam="XtalParam.xml"
Q = [1.0,1.0,-1.0] # Q values
Ei = 45.56         # [meV]
hw = 0.0           # [meV] 0.0 means elastic position
runNo = 999999     # run number is used to choose suitable WiringInfo and DetectorInfo
pixNum = 100       # number of pixels on 1 PSD

detId,pix = BCI.GetOrigPixelFromQXtalParam( XtalParam, Q, Ei, hw, runNo, pixNum )

print( "DetId={}, Pixel={}".format(detId,pix) )

結晶・方位などの情報を直に渡す場合

import utsusemi.ana.Reduction.BaseCommandsInEla as BCI

LC = [4.8, 8.4, 2.9,90,90,90] # Lattice Consts
Uv = [0,1,0]                  # U-vector
Vv = [0,0,1]                  # V-vector
RotStep = "None"              # if No rotation of sample
# RotStep = "Y:-10.0"         # If sample rotated -10 degree around Y axis
VA1 = [ 1, 0, 0 ]             # Projection axis1
VA2 = [ 0, 1, 0 ]             # Projection axis2
VA3 = [ 0, 0, 1 ]             # Projection axis3

Q = [1.0,1.0,-1.0] # Q values
Ei = 45.56         # [meV]
hw = 0.0           # [meV] 0.0 means elastic position
runNo = 999999     # run number is used to choose suitable WiringInfo and DetectorInfo
pixNum = 100       # number of pixels on 1 PSD

detId,pix = BCI.GetOrigPixelFromQ( LC, Uv, Vv, RotStep, VA1, VA2, VA3, Q, Ei, hw, runNo, pixNum )
print( "DetId={}, Pixel={}".format(detId,pix) )
Sep 2 2021

[bugfix:Utsusemi:4.0] The issue that error occurs on reading .d4m file in D4Mat2Slicer

4.0.210830 or later#

Aug 30 2021

[bugfix:Utsusemi:4.0] The issue that some text labels on GUI parts are collapsed with hi resolusion display and 200% of text size setting on window

Windowsのディスプレイ解像度が高く、高密度なディスプレイの場合、設定で拡大縮小とレイアウトで200%(推奨)という設定が選ばれる。 この時に幾つかのパーツ自体が縮小し、そのパーツのフォントサイズなどが200%になるためか、非常にアンバランスとなる問題に対処した。

対応

  • QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling,True)の設定を加える

  • QApplicationのフォントサイズを設定(今回は14)する

    • フォントサイズを設定しないと極端に小さなサイズとなったため

そのほか

  • SequenceEditorのコマンドツリーの横スクロールができなかったので、ツリーの内部サイズの横幅を400pxとした

    • こうすることで最初から横スクロールバーが表示された

動作確認

以下の環境で正しく動作するようにした。

  • Windows 10 Surface Pro

    • 項目サイズ 200% (推奨)

    • 解像度 2736 x 1824 (推奨)

    • Anaconda 2105 (Python 3.8.8)

      • PySide2 (v5.13.2)

一方、今回の変更がUbuntuでの動作に影響がないかをチェックしたが問題なし。

  • Ubuntu Linux 20.04

    • PySide2 (v5.14.0)

なお今回のコードでは

UTSUSEMI_DEFAULT_FONTSIZE

という環境変数があればデフォルトのフォントサイズとして使用するように加えているが、まだ設定ファイルは変更していない。

Aug 30 2021

[bugfix:uGao:master] The issue that some text labels on GUI parts are collapsed with hi resolusion display and 200% of text size setting on window

[bugfix:Utsusemi:4.0]と同等の変更

対象

  • FastPlot.Qt.py

  • u2dplot.py

  • U2IF.py

  • M2PlotPlus.py

Aug 27 2021

[bugfix:uGao:master] The issue that YZ slice aside 2D Plot does not shown on clicking plot.

Aug 27 2021

[update:Utsusemi:4.0] Add functions to remove run no from run list on D4Mat2Slicer

DATA_RDCT-82 D4Mat2Slicer関連の要望

以下のバグと要望に対応した

  1. 空蟬0.3.xのXtalParamを読み込むとエラー

  2. Projectionのax4のデフォルト値がおかしい(バグ)

  3. runlistの先頭にコメントアウトが欲しい(要望)

  4. runlist読み込み後 任意のrun noを削除したい(要望)

4.への対応結果

runlist読み込み後に任意のrun noを削除する方法は以下の通り

  • D4Mat2SlicerのDataReductionパネル上のRun List上で削除したいrun noをクリックで選択状態にし、[Clear]ボタンを押す

Aug 26 2021

[update:Utsusemi:4.0] Remove the way of import module using wildcard like from <module> import *

DATA_RDCT-101 空蟬4や夕顔のPythonコードからfrom XXX import * をなくしたい

空蟬でいくつか存在したワイルドカードを使用したimportをなくした。

Aug 25 2021

[update:Utsusemi:4.0] Improve XML treatment in SetMask in order to increase the processing speed.

DATA_RDCT-106 空蟬4: Mask動作が遅い問題

Manyo.MLF.BoostXmlParserに加えられた高速に検索する方法を導入し、マスク処理、特にMaskInfoに大量の情報が書かれていたときの処理を高速化することに成功した。

試験

maskのノードが10000個あるMaskInfo.xmlを用意して、これを用いて試験した。

<maskInfo>
  <masklist n="10000">
    <mask i="0">
      <pixelid/>
      <detector>0</detector>
      <pixelno>0</pixelno>
      <axis key=""/>
    </mask>
    ...
  </masklist>
</maskInfo>

結果

従来の方法だと69秒かかっていたDoMask処理が、0.4秒程度で終了した。ざっくり170倍ほどの高速化を達成した。

Aug 25 2021

[update:manyo:0.3.4] Add new method to BoostXmlParser to treat directly innder node of boost::property_tree/ptree in order to increase the processing speed.

DATA_RDCT-106 空蟬4: Mask動作が遅い問題

BoostXmlParserはシンプルな使い方ができるが、その分処理に時間がかかる部分がある。 XMLのトップのタグから目的のタグまでのパスを与えると、そのパスにそって何度も検索処理が発生し、時間がかかる。 特に大量のタグを含む場合に非常に遅くなる。

対処 検索を減らすためには、同じパスを何度も検索を行わなくてすむ手段も別途用意する。 具体的には、今まで隠蔽されていたptreeのノードを利用側でアクセス、検索できるようにする。

  1. 特定のパスまでの ptreeのノードを取り出すメソッドを用意

  2. 与えられたノードから、さらにパスを与えて情報を取り出す手段をこれまでのメソッドに追加

1では以下の新規メソッドを追加

  • PutNode

  • PutFoundChildNodes

2では以下の既存メソッドをオーバーロードしたものを用意

  • PutContent

  • PutAttValList

  • PutElemContList

  • PutNumOfElements

  • hasPath

利用例 以下のようなXMLがあるとする。

<group>
  <person>
    <name>INAMURA</name>
    <age>10</age>
  </person>
  <person>
    <name>TANAKA</name>
    <age>20</age>
  </person>
  <person>
    <name>SUZUKI</name>
    <age>30</age>
  </person>
</group>

それに対して、groupタグのノードを取り出して、それに対して情報を取り出す例を以下に示す。

n1 = PutNode("group","") #ノード取り出し
age = int( PutContent( n1, "person,name:INAMURA","") #ノードからINAMURAのageを取り出す

特に多くの同じタグが並ぶ場合、PutFoundChildNodesが強力である。

n1 = PutNode("group","")
person_list = PutFoundChildNodes( n1, "person" ) #ノードからpersonタグのノードを全て取り出す
for i in range(person_list.size():
    p_name = PutContent( person_list[i], "name", "" )
    p_age  = PutContent( person_list[i], "age", "" )
    print( "NAME,AGE={},{}".format( p_name,p_age ) )
Aug 18 2021

[update:uGao:master] Improve checking range method in continuous slicing.

Aug 11 2021

[update:Utsusemi:4.0] Improve Reading step size in ReadEventData to be calculated from T0Index values.

UtsusemiEventDataConveter系で、イベントデータをファイルから読み込む際、一度に読み込むデータサイズはT0の個数(ReadingStep)で決められていて、その大きさは1500(つまり 1500/25Hz=60[sec])分を固定で読み込んでいた。これは読み込み時のバッファとして、散乱強度の強いデータでは大きなメモリ領域を、強度の弱いデータでは少ないメモリ領域を確保していた。しかし、これだと極端に大きな散乱のデータの場合、かなり大きな値になる。

SIKの場合おおよそ100,000 byte=100kBに対し、NBRでは600,000,000 byte = 600MBとなり、3桁以上の開きとなる。 処理を考えると、この値がマルチスレッドで増えるため、1フレームあたりのイベント量に応じて無駄にメモリを消費し、環境によっては厳しいものとなる。

そこで、データの量(正確には1フレームあたりのデータサイズ)によって、ReadingStepを変更することにした。

現状の形としては

1,500/(1フレームあたりのイベント数)* 10,000

とすることにした。

  • SIK000373では 1フレームあたりの平均イベント数は7、ReadingStep = 2.0E+6、バッファは70MB

  • NBR000724ではイベント数は3252129、ReadingStep = 4、バッファは120MB

と大体桁が揃う感じだ。こうなると読み込み時に8スレッドだと考えると、最大バッファは1GB以下となる。

当面はこれでゆく。

なお、この変更により、SIK000373のヒストグラム化処理が1割高速化した。

Aug 6 2021

[update:manyo:0.3.4] Add method to MlfArraySlicer to add LABEL information to given ElementContainer

DATA_RDCT-104 夕顔:M2PlotPlusの連続スライスの問題

上記の課題に対し、以下を解決するために必要なメソッドを追加した。

  1. 元データは Qbin=0.05[1/A] で、Xrange 0.85-0.9 delta 0.0 や、 Xrange 0.9-0.95 delta 0.0 でLabelが”0”となっている。Xrange 0.85-0.95 delta 0.0 だとOK(by松浦さん at BL02 : 210804稲村追記)

状況

スライスの幅が狭い時、その範囲内にある一つのデータ(ElementContainer)のみを取り出し、それをそのままスライス結果として返していた。その際にMlfArraySlicerで作成されるはずのラベルに関するヘッダ情報がないために、MPlotでのプロット時に表示されない。

対応

MlfArraySlicer::SetHeaderToEC を加えスライス時のヘッダ情報を加えるメソッドを追加した

Aug 6 2021

[update:uGao:master] Improve the continuous slicing function of M2PlotPlus.

DATA_RDCT-104 夕顔:M2PlotPlusの連続スライスの問題

上記の課題に対し、以下を解決した。

  1. 元データは Qbin=0.05[1/A] で、Xrange 0.85-0.9 delta 0.0 や、 Xrange 0.9-0.95 delta 0.0 でLabelが”0”となっている。Xrange 0.85-0.95 delta 0.0 だとOK(by松浦さん at BL02 : 210804稲村追記)

状況

  1. スライスの幅が狭い時、その範囲内にある一つのデータ(ElementContainer)のみを取り出し、それをそのままスライス結果として返していた。その際にMlfArraySlicerで作成されるはずのラベルに関するヘッダ情報がないために、MPlotでのプロット時に表示されない。

  2. また、同時にスライスのLABELで示される範囲が直感的でない(与えた値ではなく、データの範囲で表示するので、ずれがある)

対応

そこで、以下のように対応した。

  • MlfArraySlicer::SetHeaderToEC を加えスライス時のヘッダ情報を加えるメソッドを追加した(Manyoのコミット)

  • SetHeaderToECを利用するよう、M2PlotPlusのスライスを行う関数に変更を加えた。

  • 2.のLABELに表示する範囲を直感的なものにするため、ユーザーの入力値をスライス関数に渡すように新たな引数を加えた。

そのほか

小さいバグを修正した。

  • 連続スライス実行後に与えたパラメータが元の設定値に戻らないバグを修正

Aug 5 2021

[update:uGao:devContSlice] Improve the continuous slicing function of M2PlotPlus.

DATA_RDCT-104 夕顔:M2PlotPlusの連続スライスの問題

上記の課題に対し、以下を解決した。

  1. 連続スライスで、Range 0.4 - 1.0 delta 0.1としたとき、0.35-0.45, 0.45-0.55, 0.55-0.65 ではなく、0.4-0.5, 0.5-0.6,..にしてほしい (by松浦さん at BL02 : 210804稲村追記)

状況

UI上にはスライスの方法として

  1. 中央値+-幅で指定する

  2. 範囲で指定する(積分的)

が用意されている。今回は、2.の連続スライスの機能に連続スライスを組み込んでいたが、そこに1.のやり方で実現したところに問題があるように思われる。

  1. Range 0.4 - 1.0 delta 0.0 のとき、スライス範囲は 0.4-1.0

  2. Range 0.4 - 1.0 delta 0.1 のとき、スライス範囲は 0.35-0.45, 0.45-0.55, 0.55-0.65, …

すなわち、2.の機能は元々範囲をその両端で指定する(A)にもかかわらず、そのスライス自体は1.の中央値を用いる(B)やり方で行っていた。

この(A)と(B)では数値が食い違っているように見え、かつ実際に行っていることが異なっているところに問題があった。

そこで、2.における連続スライスは

  1. Range 0.4 - 1.0 delta 0.1 ==> 0.4-0.5, 0,5-0.6, 0.7-0.8,…

のように(A)と似た挙動するようににし、同時に新たに1.中央値で指定の方にも連続スライスの機能をつけることで、挙動の混乱が起きないようにする。

変更点

X Rangeで指定したときのスライスでは与えた範囲は端点として扱い(0.4-0.5, 0.5-0.6,…)、中央値をとるのは X valueの方に新しく to [XXX] step [ XXX] の欄を加えることにする。

  • GUI (M2PlotPlus.ui) にパーツとスロットを追加

  • M2PlotPlus.pyのスライス部分の修正

結果として、Manyo::MLF::CalcRangeAsBinCenterZeroは使用しないことになった。

Aug 3 2021

[update:Utsusemi:4.0] Improve the function of XtalParam.xml treatment to enable to read/write the partial information

DATA_RDCT-82 D4Mat2Slicer関連の要望

  • XtalParam.xmlの一部、例えばProjection情報と、Slice情報だけを読み込む・保存するといったことが可能なようにした

XtalParam内の指定した情報のみXMLファイルに書き出したり、与えたXtalParam.xmlから必要な情報のみ読み込んだりが可能となった。

XtalParamのLoad,Saveボタンに加え、Partialボタンを用意し、XtalParam内の部分的な情報選択のためのダイアログを用意した。

部分的な読み込みに関しては、指定したファイル内に記述された情報から選択して反映させることができる。

一方書き出しに関しては、指定した情報のみで構成されたXMLファイルが作成される。これを通常のLoadボタンで読み込んだ場合、そこに書かれた情報のみ反映され、他の情報はそのままである。

また、これまではUtsusemiSqeCalcXtalParamのクラスをread/write毎に新規作成していたが、これでは以前読み込んだXMLの情報が毎回消えてしまうので、起動後は常に保持することで、他の情報が消えることを防ぐようにした。

Jul 29 2021

[bugfix:Utsusemi:0.3.7] The issue that UtsusemiContainerTextConverter occurs error on reading a text file outputed by itself.

DATA_RDCT-105 空蟬4 ContainerTextConverterの読み込みバグ

  • UtsusemiContainerTextConverter::Saveで作成したテキストファイルをReadで読み込むとエラーとなる問題に対処

    • 読み込み中の行番号とデータの個数が、先頭に#のある行をスキップしたことにより食い違いが生じることを考慮していなかったので修正

  • UtsusemiContainerTextConverter::Saveで、Keyとvectorの書き出しの順番を改良し、X,Y,E,O1,O2,… とX,Y,Eを先頭に並べるようにした

Jul 28 2021

[bugfix:Utsusemi-DNA:4.0] The issue that Import Error of VisualModule occurs on SequenceEditor.

Jul 21 2021

[update:manyo:0.3.4] Add new option for CalcRangeAsBinCenterZero function.

DATA_RDCT-104 夕顔:M2PlotPlusの連続スライスの問題

CalcRangeAsBinCenterZeroでは、これまで与えられた最小値が0以上であっても、0を中心とするbinを仮定し、それに当てはめていた。

例えば

  • 最小値: 0.1

  • bin幅: 0.2

の場合、これまでの計算結果では、0を中心とした -0.1,0.1,0.3,0.5の列を作成するため

bin[0]=0.1
bin[1]=0.3
bin[2]=0.5

となっていたが、M2PlotPlusでの使用を考えると、あまり直感的ではない。 そこで、

bin[0]=0.0
bin[1]=0.2
bin[2]=0.4

とした方が良いと判断してた。

このロジックをbool isZeroCenter (Default=true)の引数で与えるようにした。 M2PlotPlus内では、Trueとしている。

この引数がTrueでも、与えられた範囲が0をまたぐ場合はこれまで通りである。

Jul 21 2021

[bugfix:uGao:master] The issue that continuous slicing function of M2PlotPlus occurs error and does not work correctly.

DATA_RDCT-104 夕顔:M2PlotPlusの連続スライスの問題

  1. プロットデータの横軸の強度が0.1から始まっている時に、X rangeを0.1 - 1.9, Binを0.2をするとエラー(by 山田さん at BL02)

  2. 連続スライスで境界領域において、同じbinが2度読み込まれる(by 松浦さん at BL02)

1.について

エラーが発生するのは、X range 0.1 - 1.9を用いてManyo::MLF::CalcRangeAsBinCenterZeroを実行した際に、これまでの演算では最小値として-0.1が戻ってきたため、データが存在しないところを読みに行っていたためにエラーとなっていた。 一度エラーとなると、その後は正しくデータが戻ってこないようだ。

対応1

FastPlotQt.py内での処理で、与えられたデータが全てMASKVALUEだった場合の処理で問題があったので修正した(山田さんのエラーログの直接的な原因はこれ)

対応2

データ範囲外を含むスライスによって下記の部分でエラーが発生する。

data_index_x0 = parent.converter.indices_sort[ indices[0] ]
IndexError: list index out of range

そこで、データのindexを正しく計算(範囲外の確認をきちんとする、正しい値を入れる)するようにした。

例えば

plot_index_x0 = n_x_data # 最大のbinを指したものとみなす

は、indexの最大値は、n_x_data-1 のはずなのでそのように修正した。

また、範囲の確認は、plot_index_x0は行っているのに、plot_index_x1については行われていなかったので追加した。

1.の修正によって露わになった問題

X range 0.1 - 1.9を用いてManyo::MLF::CalcRangeAsBinCenterZeroを実行した際に予期しない最小値が返ってくる。この関数は必ずbinの中央が原点となるように計算した最小値を返すからであるが、パウダーデータのように軸が正しか取らない場合、計算される値が直感的ではない。よって、MPlotPlusから呼び出す場合は、与えた最小値をbinの中央値とするように変更した。

2.の修正

連続スライスに限らず、スライスの領域の端点の扱いに問題がある。 例えば、1.0 +- 0.1 の場合、0.9 - 1.1の範囲の積分を期待するが、実際に計算されているのは0.850 - 1.10 である。この問題により、連続的にスライスすると同じ点が隣り合うスライスの両方で使用される。

これはM2PlotPlus内部で numpy.searchsortedを利用して配列中のindexを取り出すが、連続スライスの場合、境界点が同じindexを返すために二重どりが発生する。

x0 = searchsorted( xbin, v0 ) - 1
x1 = searchsorted( xbin, v1 ) - 1

  1   2   3   4   5   6
--+---+---+---+---+---+--
   ^           ^
   |           |
   v0          v1
      ^           ^
      x0          x1

この場合、v0の位置からindexのx0は2、v1のx1は5を選択される。

次のスライスでのv0は上のv1になるので同じようにx0は5となり、隣り合う部分で同じindex 5を共有することになる。

よって、範囲の両端でindexの計算方法を変える必要がある。

x0 = searchsorted( xbin, v0 )
x1 = searchsorted( xbin, v1 ) - 1

  1   2   3   4   5   6
--+---+---+---+---+---+--
   ^           ^
   |           |
   v0          v1
      ^       ^
      x0      x1

とすることで、x1=4、次のスライスではx0=5となり、二重どりがなくなる。

Jul 19 2021

[update:Utsusemi:4.0] Rename DoxySwig.i to DoxySwig40.i to distinguish one of Utsusemi4.1 or later

Jul 19 2021

[update:Utsusemi:4.0] Update the swig interface file of Doxygen documentations.

Jul 19 2021

[update:Utsusemi:4.0] Add some comments to UtsusemiSqeCalc and UtsusemiSqeCalc2

  • UtsusemiSqeCalcとSqeCalc2に少しコメント(Doxygen)を追記

  • UtsusemiSqeCalc2::ConvertToD4Mat(string filepath)に引数 bool isAverageMode を加えた

Jul 19 2021

[bugfix:Utsusemi:4.0] The issue that scripts to make DoxySwig.i does not support python3

  • コード内のDoxygenの記述をSWIGを通した後でdocstringsにするスクリプトが、python3に対応していなかった問題に対処

Jul 19 2021

[bugfix:Utsusemi:4.0] The issue that there are Warning message on compiling.

  • 時刻のテキスト化をfprintfからstrftimeに変更

  • fgetsの戻り値を使用するように変更

Jul 16 2021

[bugfix:Utsusemi:4.0] The issue that DetectMap can not treat correctly M2Plot+

DATA_RDCT-103 空蟬4DetectMapで2Dスライス時に挙動がおかしい

に対応した。

現象

  1. DetectMapのPSDデータをM2Plot+で表示する

  2. 無事にM2Plot+パネルとu2dplotパネルが表示

  3. ここでM2Plot+パネルをClose

  4. 続けてDetectMapからPSDデータをM2Plot+で表示

  5. ここでu2dplotパネルのみ表示され、M2Plot+パネルが見えない

対策

DetectMapのコードの中から直接M2PlotPlusのインスタンスを作成してしまうと、M2PlotPlusの生死がわからない。 よってDetectMapで使用するM2PlotPlusを別クラス(Plot2DMapOnDetectMap)でラップし、使用することで扱いを簡略化し、かつM2PlotPlus側の’u2dclosed’イベントを拾うようにした。

Jul 14 2021

[bugfix:Utsusemi:4.0] The issue that DetectMap shows some warnings on matplotlib 3.3

DATA_RDCT-100 空蟬4 DetectMap起動時のWarning回避

の以下のWarningに対応した

C:\Program Files\Utsusemi\python-utsusemi\utsusemi\vis\DetectMap.py:974: MatplotlibDeprecationWarning:
The draw function was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use toolbar.canvas.draw_idle() instead.
  self.toolbar.draw()
C:\Program Files\Utsusemi\python-utsusemi\utsusemi\vis\DetectMap.py:1216: MatplotlibDeprecationWarning: You are modifying the state of a globally registered colormap. In future versions, you will not be able to modify a registered colormap in-place. To remove this warning, you can make a copy of the colormap first. cmap = copy.copy(mpl.cm.get_cmap("jet"))
  cmap.set_bad('w', 1.0)

メッセージにあるように書き換えただけ。

self.toolbar.draw() -> self.toolbar.canvas.draw_idle()
cmap = cm.jet -> cmap = copy.copy(mpl.cm.get_cmap('jet'))
Jul 14 2021

[bugfix:Utsusemi:4.0] The issue that DetectMap occurs error when mouse pointer moves on color bar area

DATA_RDCT-98 空蟬4:DetectMapでポインタ位置情報の表示部でエラー

マウスmoveイベントに関連しプロットエリア内にいる状態を示すフラグが、いつのバージョンからかは不明だが、カラーバー上でも立つようになったらしい。 DetectMap上のPSD位置などの情報をハッシュテーブルから値を取り出す時にエラーとなっていたので、範囲外の場合は無視するようにした。

Jul 14 2021

[bugfix:uGao:devForMPL3.3] The issue that uGao plotters show warnings on matplotlib 3.3

DATA_RDCT-102 夕顔の各種プロッタでmatplotlib 3.3 でWarningが出る問題

夕顔のプロッタをmatplotlib 3.3 で動作させると、同じようなWarningが出現する。

DetectMap( utsusemi.vis.DetectMap -> uGaoUtil )

C:\Program Files\Utsusemi\python-ugao\uGao\uGaoUtil.py:819: MatplotlibDeprecationWarning:The parent attribute was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use self.canvas.setParent() instead.
self.parent = parent
C:\Program Files\Utsusemi\python-ugao\uGao\uGaoUtil.py:824: MatplotlibDeprecationWarning:
The _init_toolbar method was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Please fully initialize the toolbar in your subclass' __init__; a fully empty _init_toolbar implementation may be kept for compatibility with earlier versions of Matplotlib.
  NavigationToolbar2QT.__init__(self,parent.canvas,parent,coordinates=False)

M2PlotPlus

C:\Program Files\Utsusemi\python-ugao\uGao\u2dplot.py:461: MatplotlibDeprecationWarning:
The _init_toolbar method was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Please fully initialize the toolbar in your subclass' __init__; a fully empty _init_toolbar implementation may be kept for compatibility with earlier versions of Matplotlib.
 super(ChartToolBar, self).__init__(parent.canvas, parent, coordinates=False)

MPlot(FastPlotQ.py)

C:\Program Files\Utsusemi\python-ugao\uGao\FastPlotQt.py:1088: MatplotlibDeprecationWarning:
The parent attribute was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use self.canvas.setParent() instead.
  self.parent = parent
C:\Program Files\Utsusemi\python-ugao\uGao\uGaoUtil.py:819: MatplotlibDeprecationWarning:
The parent attribute was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use self.canvas.setParent() instead.
  self.parent = parent
C:\Program Files\Utsusemi\python-ugao\uGao\uGaoUtil.py:824: MatplotlibDeprecationWarning:
The _init_toolbar method was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Please fully initialize the toolbar in your subclass' __init__; a fully empty _init_toolbar implementation may be kept for compatibility with earlier versions of Matplotlib.
  NavigationToolbar2QT.__init__(self,parent.canvas,parent,coordinates=False)
C:\Program Files\Utsusemi\python-ugao\uGao\FastPlotQt.py:4677: MatplotlibDeprecationWarning:
The draw function was deprecated in Matplotlib 3.3 and will be removed two minor releases later. Use toolbar.canvas.draw_idle() instead.
  self.toolbar.draw()

修正点

  • self.parent = parent

    • uGaoUtil::ChartToolBar(NavigationToolbar2QT)

    • FastPlotQt::ChartToolBar2(uGaoUtil::ChartToolBar)

    にて使用されている。self.canvas.setParent()の使用が推奨のようだが、次のNavigationToolbar2QT.__init__(…)を行うことで、self.parentに自動的に挿入される模様。

  • NavigationToolbar2QT.__init__()

    uGaoUtil::ChartToolBar::__init__()にて使用。

    fully initializeが何を意味しているのかわからないが、どうも_init_toolbar メソッドをOverrideしていることが問題のようだ。

    uGaoUtilのChartToolBarは、オリジナルのツールバーを拡張しようとして、結局行っておらず、FastPlotQt内でも独自拡張を_init_toolbarメソッドを同様にoverrideしている。おそらく大元のNavigationToolbar2QTのイニシャライズの時に自動的に_init_toolbarが呼ばれることになっているのを利用しようとしたと思われる。Warning文章では、_init_toolbarを使わず__init__内でやれ、と読める。

    よって、

    • uGaoUtil::ChartToolBar::_init_toolbar() は(使っていないので)廃止

    • FastPlotQt::ChartToolBar2::_init_toolbar() 及び u2dplot::ChartToolBar::_init_toolbar()もinit_toolbar() に関してはinit_toolbar()に名前を変更し、__init__から呼び出す

    という対応。

  • toolbar.draw()

    これはtoolbar.canvas.draw_idle()に置き換えるだけ。

Jul 14 2021

[bugfix:M2PP] スライス表示などのAxesインスタンス使用方法見直し

DATA_RDCT-85 DATA_RDCT-58 add_subplot時に同じ位置のAxesがあると、 新しいインスタンスを作らずに、既存のインスタンスを使うという仕様。 この仕様が将来変更されるとのことであった。

新しいインスタンスを作るようにすると、動作が変わったので、現状の既存インスタンスを使うのを将来も維持するように変更した。

4.0.210713 or later#

Jul 13 2021

[update:Utsusemi:4.0] Replace some print commands to Utsusemi logging commands

Jul 12 2021

[bugfix:Utsusemi:4.0] The issue that compile error occurs on Windows

Jul 12 2021

[bugfix:manyo:0.3.4] The issue that the diagonal cutting does not work correctly on MlfArraySlier

DATA_RDCT-58 夕顔M2Plot+への要望(集約)

下記に対応した。

  • M2PlotPlusのDiagonalスライスがうまく動作していない。おそらくMlfArraySlicer(Manyo.MLF)に問題がありそう

指定した2点間の対角線上のスライス機能において、MASKVALUEの扱いが全く考慮されていなかったため、スライス結果がおかしな値となっていたのを修正した。

IntensityがMLF_MASKVALUE、もしくはErrorが負の場合、加算処理を行わないようにすることで問題を回避した。

Jul 9 2021

[bugfix:Utsusemi:4.0] Bugfix of the issue that the calculation of 3rd frame TOF (using a frame boundary TOF and frame periods) is wrong when one kicker is lack.

3rdフレームを利用したデータ処理において、キッカーが一つ抜けた場合の処理に問題があったので修正した。

フレームバウンダリでTOFに加えられるClockの定義

(UtsusemiEventDataConverterTemplate.cc内)

  • Clock[0] : そのTOFが含まれるフレーム内で発生した中性子に加えるTOF ( = 0 )

  • Clock[1] : そのTOFが含まれるフレームの1つ前のフレームで発生した中性子に加えるTOF

  • Clock[2] : そのTOFが含まれるフレームの2つ前のフレームで発生した中性子に加えるTOF

3rdフレーム使用時にキッカーが一つ抜けた場合

Clock[1]に二つ分のフレームのTOF時間(80ms)が入る。

この場合、3rdフレーム解析時に使用されるClock[2]はClock[1]+40msと3フレーム分のTOFが入ることになり、上記のClockの定義でTOFを加えると、中性子TOFに余計なフレーム分のTOFが加えられることになる。

よって、Clock[2]を計算するときに、Clock[1]が1フレーム以上の時間を持つ場合にClock[2]=Clock[1]とすることで、この問題を回避した。(UtsusemiEventDataConverterTemplate::PreIncrement)

また、キッカーが抜けた場合、本来次のフレームで来るはずだったバウンダリTOF以下の中性子が、TOF+フレームの値でやってくる。この時、TOF+バウンダリ以下のTOFには一つ前のフレームを足し、TOF+バウンダリ以上のTOFにはそのフレームをたす必要がある。

これを判別するために以下の関数内でClockを足す部分に新たな分岐を加えた。

  • UtsusemiNeunetEventDecoderBase::DecodeEventData

  • UtsusemiReadoutMWPCEventDecoder::DecodeEventData

  • UtsusemiReadoutRPMTEventDecoder::DecodeEventData

  • UtsusemiReadoutWLSF32EventDecoder::DecodeEventData

この時、1フレーム分のTOFの値を設定できるように、 Double UtsusemiNeutronEventDecoderBase::_MicroSec_Par_Frame を定義した。この値には通常40msが入るが、キッカーの間引き測定が行われることも考慮し変更できるメソッドも追加した。

  • UtsusemiNeutronEventDecoderBase::SetFramePeriod( Double )

  • UtsusemiEventDataConverterTemplate::SetFramePeriod( Double )

この変更による影響はなし

2ndフレームを使用する場合や、キッカーの抜け一つではない場合、例えばビームがメインリングに行くなど複数抜ける場合などでも上記の変更による影響はないことを確認した。

Jul 1 2021

[bugfix:uGao:master] The issue that slice with wrong range occurs when delta bin size is larger than difference of range.

DATA_RDCT-94 M2PP: 1Dプロット表示不具合

以下の不具合に対応

M2Plotのスライスで、範囲を”Along Y axis”で、X range 0.8 - 0.9, delta=0.5として1DプロットするとMPlotでの表示が 0.750 - 1.270となる。

対応内容

rangeで指定した幅(上記の例だと0.1 (=0.9-0.8))よりdeltaが大きな場合におかしなことが起きていたので修正。

Jun 24 2021

[bugfix:Utsusemi:4.0] Bugfix of the issue that D4Mat2Slicer does not read the setting of Time-independ background from XtalParam.xml on D4Mat2Slicer.

DATA_RDCT-95 空蟬4 D4Mat2SlicerでTimeIndependバックグランドの設定が読み込めない

上記の問題を修正した。

Jun 15 2021

[update:Utsusemi:0.3.7] Ignore useless signals from TrigNET to create virtual time origin for time division

DATA_RDCT-92 TrigNETシグナルを時間分解の仮想的な原点とする手法が働かない場合を解消する

CaseInfo.xmlにおいて、TrigNETのDIOのシグナルを時間分解における仮想的な原点とする機能がある。 シグナルが来たときに必ず時間分解の原点を設定する(シグナル優先)方針であったが、DIOシグナルが暴れる(オンオフを短時間でバタバタ繰り返す)場合に問題が起きる。 例えばオフの場合にのみ時間分解原点を設定する場合に、本来オンのタイミングでシグナルが暴れてオフが混じることで、正しくない時間が原点となる。

この対策として、シグナルが一定の時間で繰り返されることを前提に、CaseInfoで指定した時間分解の範囲にシグナルが来ても無視する設定をつけた(Case優先)。

この時間分解範囲内の次のシグナルが来ても無視される設定により、例えばオフの場合にのみ時間分解原点を設定する場合、オンが出現するタイミングも時間分解に含めてしまうように設定することで、シグナルが暴れて不要なオフシグナルが来ても無効化される。 時間分解のデータを取り出すときはシグナルが暴れる領域以降は使わないことにすれば良い。

CaseInfo.xmlの例

originValタグに、属性”priorigy”を設定、これは”case”か”signal”をとる。”case”になると、Case優先となり、時間分解中にシグナルが来ても無視される。

<caseInfo>
  <caseAmbiguity>2</caseAmbiguity>
  <initialCase>0</initialCase>
  <filters/>
  <counters n="1">
    <counter i="0" type="NORMAL">
      <signal n="1" cnd="AND">
        <trignet i="0" index="0" io="DIO2R" title="Counter" attr="1.0"/>
      </signal>
      <conversionVal>1.0</conversionVal>
      <originVal unit="Clock" priority="case">0.0</originVal>
      <cyclicRegion/>
      <conditions type="1">
        <cond case="1">0.0,1.0</cond>
        <cond case="2">1.0,2.0</cond>
        <cond case="3">2.0,3.0</cond>
        <cond case="4">3.0,4.0</cond>
        <cond case="5">4.0,5.0</cond>
        <cond case="6">5.0,6.0</cond>
        <cond case="7">6.0,7.0</cond>
        <cond case="8">7.0,8.0</cond>
        <cond case="9">8.0,9.0</cond>
        <cond case="10">9.0,15.0</cond>
      </conditions>
    </counter>
  </counters>
</caseInfo>
Jun 15 2021

[bugfix:Utsusemi:0.3.7] The issue that wrong raw data files which name include RunNo different with one included in folder name on histogram creation.

ヒストグラム化でRAWデータを読み込む際に、与えられたRunNoがフォルダ名に入っていれば、そこに含まれるファイル名が異なるRunNoでも読み込まれてしまう問題に対処

Jun 14 2021

[Bugfix:M2PP] Disable the matplotlib font manager logger.

DATA_RDCT-91 loggingへの大量の記載があり、matplotlibのfontmanager からのものであった。 これを止めるための設定を追加した。

Jun 11 2021

[Update:M2PP] Change the format of slicing parameters on the plots.

DATA_RDCT-89 スライスプロットに付記するパラメータの形式を変更した。 範囲指定の場合は中央値も表示するようにした。

Jun 11 2021

[Update:M2PP] Change precisions of slicing parameters on the plots.

DATA_RDCT-89 スライスプロットに付記するパラメータの精度を変更した。 ダイヤログなどでの精度が”.3f”だったのでそれに合わせるための変更。

Jun 10 2021

[Update:M2PP] Add slicing parameters on the plots.

DATA_RDCT-89 スライスパラメータをスライスプロットに付記した。

Jun 1 2021

[update:manyo:0.3.4] Update the path of access cgi to get proton current information

May 26 2021

[update:uGao] Add CUI function on M2PlotPlus to change units

DATA_RDCT-86 CUIでUnit情報を変更可能に対応

  • M2PlotPlusCui:SetUnits を追加

    • これを解釈するために

      • M2PlotPlus:OnNotifySetUnits を追加

      • その他これらのためにifi_mineへのリスナーとM2PlotPlusCuiIF.functionsへのsetunitsを追加

May 25 2021

[update:Utsusemi-DNA:4.0] Add and improve some files to make debian package for DNA (2)

  • levmar系列のコンパイルやインストールがうまく動作しなかったためいくつかのスクリプトを改変

    • lib-levmar/2.5/Makefile パッケージ作成用のパスの指定

    • Debian Packageを作成するための設定を改変(rule)

    • Utsusemi-DNA/Makefile

May 23 2021

[bugfix:Utsusemi-SAS:4.0] Add manyo/CC_Files_Dependence to compile on building deb package.

May 23 2021

[update:Utsusemi-SAS:4.0] Update script to make debian package of mlf-utsusemi-sas

May 23 2021

[update:Utsusemi-DNA:4.0] Add and improve some files to make debian package for DNA

  • Debian Packageを作成するための設定ファイルを追加

  • それに合わせてMakefileも一部改変

    • lib-levmar, manyo-LevmarToolsは、make時にインストールまで行うようにした(本来は別ライブラリでインストールするべきか)

May 23 2021

[update:Utsusemi-DNA:4.0] Add 4.0 branch : improve installation by adding Makefile including copy python scripts.

  • ブランチ4.0を追加

  • lib-levmar/2.5/Makefile に INSTALL_ROOT=$(MANYO_PATH)を付けてMANYO_PATHにインストールするようにした

  • トップディレクトリにMakefileを追加

    • これを雛形として、$ make install でインストールできることを目指す(Debパッケージ作成への一歩)

    • lib-levmar/2.5, manyo-LevmarTools, manyo をコンパイルし、Pythonコードをコピーするなどの機能を持つ

    • Makefile は雛形、Makefile.ubu20 はUbuntu20用。

May 21 2021

[update:Utsusemi:4.0] Rename VisualModule facade form VisualModuleQ to VisualModule

May 21 2021

[bugfix:Utsusemi:4.0] The issue of failure to import Utsusemi installed from debian packages because of using old Makefile.obj

May 21 2021

[bugfix:Utsusemi-SAS:4.0] The issue that VisualModule facade occurs error in SequenceEditor script made on 0.3.7

May 21 2021

[update:Utsusemi-SAS:0.3.7] Add new WiringInfo from BL PC

May 20 2021

[update:Utsusemi:4.0] Add some functions on D4Mat2Slicer to know what task is executing, improve file name to save SPE and nxspe.

DATA_RDCT-82 D4Mat2Slicer関連の要望

以下の要望に対応した。

  1. SPE出力およびnxspe出力で、プログレスバーに対応させる

  2. 連続回転測定データの出力nxspeファイル名に角度を入れ込む(これまではindexだった)

  3. データ読み込みで読み込み中の状態であることをわかりやすくする

1.では、その通り処理時にプログレスバーを表示するようにした (D4Mat2Slicer.py)

2.では、UtsusemiD4Mat2::ExportEcmFromStepByStep で各角度のデータを取り出すときにヘッダ情報に角度の情報(KEY=D4MatOne::D4MAT2ANGLE)を入れ込み、ファイル名に使用するようにした (UtsusemiD4Mat2.cc, D4Mat2Slicer.py)

3.では、メインパネルのData Reduction [Execute]ボタンの色を処理中は赤くするようにした(終了時に元に戻る)(D4Mat2Slicer.py)

ただし3.の機能実現では、コード内で単純に変更を加えてもその直後にパネルの描画Updateはされない(QtWidgets.QApplication側の都合)ので、一旦確認ダイアログを表示させて、そのタイミングで画面Updateさせることで対応した。

May 11 2021

[bugfix:Utsusemi:4.0] The issue error occurs on showing Ei value in VisualContQ

May 7 2021

[bugfix:Utsusemi:4.0] The issue that it does not work to do data reduction using the external script file on continuous rotation method in D4Mat2Slicer

DATA_RDCT-76 D4Mat2Slicerの連続回転測定で外部スクリプトが使用できない

検討事項

連続回転測定時の外部スクリプトの役割の整理

内部では連続回転測定のデータから各角度のデータ(ElementContainerMatrix)を一つずつ取り出し、PolarAngleなどの計算(CalcPhi)を行ったデータを作成する

  • 外部スクリプトを使用しない場合、以下のデータ処理を行う

    • Mask設定

    • dHWCorrect

    • NormBySolidAngle

    • KiKfCorrect

    • NormByKickers

    • NormFactorの掛け算(f<0.0 -> I/|f|, f>0.0 -> I*f)

    • DetectorEfficiencyCorrection

  • 外部スクリプトの役割

    • 上記のデータ処理をベースにして追加・改変を行いたい場合にのみ使用可能

  • 上記のデータ処理に必要なパラメータ(GUIで与えられる)を引数にする

    • DAT

    • phi

    • maskFile

    • normFactor

    • deteeffi

実際の改変

D4Mat2Slicer

  • 外部スクリプトのテンプレートファイルの改変

    • 元々Eiやhwの範囲など、連続回転測定には不要な引数があったのをなくして、上記の仕様に合うように改変

    • 予め記載する処理を内部と同等にする

Cmm.dHWCorrection(dat=DAT)
Cmm.SolidAngleCorrection(dat=DAT)
Cmm.KiKfCorrection(dat=DAT)
Cmm.DoMask(dat=DAT,filename=maskFile)
Cmm.NormByKickers(dat=DAT,factor=normFactor)
Cmm.DetectorEffi(dat=DAT, dataFile=deteeffi)
  • 外部スクリプトの関数(DataReductionContRot)の呼び出しの変更(新しい引数に対応)

  • その他

    • Projection時にプログレスバーを表示 - UtsusemiD4Matrix2::ProjectionStepByStep( vector<Double> ) は内部で全部の角度の処理を行っていたため進捗がわからなかった - UtsusemiD4Matrix2::ProjectionStepByStep( UInt4, vector<Double> ) を加え、角度一つずつ処理できるようにしてプログレスバーと連携させた

    • ExecProjectionContRotクラスと関連する名前を ExecDataReductionContRot に変更 - 実態に合っていないため(ProjectionはStep-by-Stepと共用となったため)

    • 細かいバグ修正

BaseCommands::NormByKickers

引数factorの仕様を変更(UtsusemiD4Matrix2内部の仕様に一致)

  • factor<0の時、I/<Kickers>*<factor>

  • factor>0の時、I/<Kickers>/<|factor|>

UtsusemiD4Matrix2

UtsusemiD4Matrix2::ProjectionStepByStep( UInt4, vector<Double> ) を加え、角度一つずつ処理できるようにしてプログレスバーと連携させた。

UtsusemiSetMask

与えるファイル名が空文字(“”)の時もエラーを出さずに戻るようにした。

May 7 2021

[update:Utsusemi:0.3.7] Replace literal to constant value defined in Manyo

May 6 2021

[Update:Utsusemi:4.0] Add Shamoto’s DymPDF calculation code by conversion from Fortran to C++

DATA_RDCT-77 空蟬4 Dynamical PDF 計算コード移植

社本氏のDynamical PDFの計算コード(Fortran)をC++に移植した。

ShamotoDymPDF classを作成・追加した。

現状、Shamotoの名前を冠したクラスにしているが、将来的には変更予定。 社本氏のFortranコードが吐き出すデータと比較して一致することころまで確認済み。

Test.py

import Manyo
import Manyo.Utsusemi as mu

tt = mu.ShamotoDymPDF()
ECA = Manyo.ElementContainerArray()

tt.SetCf(74.84)
tt.Test("4meV18.TXT","G_4meV18.TXT",ECA)

import uGao.MPlot as mp
p=mp.MPlot([ECA(0),ECA(1),ECA(2)])
May 6 2021

[bugfix:Utsusemi:0.3.7] The issue that Bose Factor correction does not work correctly on hw<0.

Apr 28 2021

[bugfix:Utsusemi:4.0] The issue that data reduction of continuous rotation method occurs error

DATA_RDCT-75 空蟬4 D4Mat2で連続回転測定データ処理ができない

症状

  1. 連続回転測定で[Set Parameters]ボタンが効かない

  2. 連続回転測定での処理の途中で落ちる

対策

  1. はStep by Stepの改良をした際に少し余計なことを行なっていたを修正

  2. は、使用するWiringInfoに書かれていたTrigNETの情報が古く、今は使用していないものまで登録されていたせいで 存在しないTrigNETファイルを読みに行こうとして落ちていた。WiringInfoを修正して免れた。

懸案

D4Mat2のパネルでDAQ IDとmodule Noを利用する(デフォルトを埋めておく)ことを考える。

Apr 28 2021

[bugfix:Utsusemi:4.0] The issue that error occurs on using external script with plural run numbers on D4Mat2

症状

D4Mat2のStep-by-Stepである角度に複数のRunNoが入っている場合に、外部スクリプトを利用した処理をするとエラーになる問題に対処。

対処

スクリプトを実行する前にマスクファイルを設定する部分があり、GUIでのマスク設定が’default’であり、かつ複数のRunNoがあると(例え ば”66520,66656”)とエラーになってしまうので修正した。

Apr 28 2021

[update:Utsusemi-DNA:master] Remove useless line form bashrc.py3.DNA

Apr 28 2021

[update:Utsusemi-DNA:master] Update bashrc.py3.DNA from BL’s PC

Apr 28 2021

[update:Utsusemi-DNA:master] Add Extract_runlist_DNA.py for D4Matrix on DNA

DATA_RDCT-72 DNAで回転測定測定のデータ処理ができるようにする

以下の要望に対応した

  • Extract.py

    • Dumpファイルと角度のRunListから変換する

    • VisContMOutputFileByPhiが Indirect Geometryに対応しているのか?

対応

Run listのフォーマットを <Full path to dmp file> <Angle> というシンプルなものとし、それを読み込んで処理するExtract.pyを作成した。

Run Listのサンプルとスクリプト自体は以下に入れておく

python-utsusemi-DNA/scripts/DNA_runlist_Sample.txt
python-utsusemi-DNA/scripts/Extract_runlist_DNA.py

使い方

SaveDataToDumpで保存されたデータ(dmpデータ)を準備し、dmpデータのファイルパスとそのデータの角度を一行に入れたRun Listファイルを準備する

$ python3 Extract_runlist_DNA.py <filename of runlist> [<output dir> [<XtalParam>]]
  • 第1引数<filename of runlist> : RunListファイルのパス

  • 第2引数<output dir> : vbinファイルの出力先(省略した場合は、Extract_runlist_DNA.pyに書かれている値を使用)

  • 第3引数<XtalParam> : XtalParamファイルのパス(省略した場合は、Extract_runlist_DNA.pyに書かれている値を使用)

Apr 27 2021

[update:Utsusemi:0.3.7] Add MaskInfo_191215_RC.xml on SIK environment

Apr 26 2021

[update:Utsusemi:4.0] Improved functions to use VisualContM on DNA environment.

DATA_RDCT-72 DNAで回転測定測定のデータ処理ができるようにする

以下の項目に対処した

  1. VisualContQ

  • Eiを前提にしたGUIであるので、一部の表記をDNAのデータの場合に置き換える必要

    • Ei [meV] -> Ef [meV]など

対処

VisualContQ.pyのTabに、”Ei [mev] :”としてEiをデータから読み込んで表示していたが、DNAの場合、”Ef [meV] :” として、データからEfを読み込んで表示させるようにした。 また、スライス結果をプロットする際に与えるタイトルにある Ei=<Val> を Ef=<Val> とするようにした。

Apr 26 2021

[update:Utsusemi:4.0] Improved functions to use D4MatSlicer on DNA environment.

DATA_RDCT-72 DNAで回転測定測定のデータ処理ができるようにする

以下の項目に対処した

  1. manyo/UtsusemiD4Matrix

  • Inverted Geometryの挙動確認

  • Inverted Geometryのモードの切り替え機能

  1. D4MatSlicer

  • D4Mat_manyo.py

    • Inverted Geometryへのモード切り替え機能

  • D4MatSlicer

    • Inverted Geometryでの仮想Matrix作成機能

対処

  • UtsusemiD4Matrixで以下を追加

    • bool _isDirectGeometry, Double _Ef_fixedの 追加

    • bool SetEf( double _ef ) <-これを行うと _isDirectGeometry=false

    • bool PutEf() <- _Ef_fixedを返す

    • _CalcVirtualAngleInfo( ElementContainerMatrix* _ecm )

      • オリジナルは WiringInfoとDetectorInfoで算出していたPolarAngleとAzimuthAngleをヒストグラムのヘッダ情報から取れるようにした

    • いくつかの場所でInverted Geometry時のkfの算出が抜けていたので修正

    • _VirtualAngleInfo.clear()でメモリリークが発生するのを修正

  • UtsusemiSqeCalc2で以下を修正

    • Projectionで、与えられたデータのヘッダに”Ef”(UTSUSEMI_KEY_HEAD_EF)があれば inverted geometryとする

    • XtalParam.xmlで、AxisType (X,Y,Z,T) がいずれであってもbin幅は書かれている値を利用するように修正した

      • 元々UtsusemiSqeCalcXtalParam::PutAxRangeで実装済みだが使い方を間違っていた

  • D4MatQ_Manyo.py

    • インスタンス作成時の引数にEfを取るようにして、UtsusemiD4Matrix::SetEf に渡すようにした

  • D4MatSlicer.py

    • 起動時にDNAであれば引数(アナライザ)を取るようにした(これは議論が必要)

      $ D4mat Si111 <- Ef=2.08497 meV
      $ D4mat Si311 <- Ef=7.64meV
      
    • インスタンス作成時にEfを与えられるようにし、D4MatQ_Manyo.pyのインスタンスの引数とするようにした

      • Ef=0.0ならDirect Geometry

    • 仮想マトリックス作成、もしくは範囲を計算するときに以下のように分岐させる

      • Direct Geometry ならこれまで通り

      • Inverted and “DNA”なら、Cmm.GetHistogamHW( runNo=0, … )でデータを作成し、そのヘッダ情報をUtsusemiD4Matrixに渡す

    • 仮想マトリックスGUIで、Ei (mev)の表記を Inverted なら Ef (meV) とするようにした

Apr 23 2021

[bugfix:Utsusemi:4.0]

DATA_RDCT-73 空蟬4 VisualContでXtalParam.xmlの回転情報の書き出し、読み込みエラー

問題点

XtalParam.xmlの回転情報に関し、UtsusemiSqeCalcXtalParams::DecodeFromXml(読み込み側)において

<Axis>:<Value>,...

というコロンとカンマを用いる形式になっていた。 しかしながら、EncodeToXml(書き出し側)において、

<Axis>,<Value>,...

というカンマのみを用いる形式となっていたため、エラーが発生した。

またVisulContQ.py側でもPython2の名残りがあり、Python2でしか通用しない(整数)/(整数)=(整数)を要求する部分が残っており、Python3では(実数)となるためエラーが発生していた。

対処

まず、EncodeToXml(書き出し側)を

<Axis>:<Value>,...

とコロンとカンマでの形式に修正し、かつDecodeFromXml(読み込み側)においても両方の形式を読み込めるように修正した。

また、VisualContQ.py側も整数に明示的に変換することで対応した。

Apr 22 2021

[bugfix:Utsusemi:4.0] The issue that the output to Nxspe file causes error and improve the RadialCollimatorCorrect to check data size between dat and vdat

  • Nxspeへの出力でエラーになるのを修正した。

  • RadialCollimatorCorrect実行時に、目的のデータとVandiumデータのサイズが異なるときにraise UserWarningを出すようにした

Apr 22 2021

[bugfix:Utsusemi:4.0] The issue of compile error on CentOS 7

問題

CentOS 7でコンパイルしたときに以下のようなエラーがでたので修正した。

NxspeFileIO.cc: メンバ関数 ‘bool NxspeFileIO::_ExportData(ElementContainerMatrix*)’ 内:
NxspeFileIO.cc:165:45: エラー: オーバーロードされている ‘isnan(__gnu_cxx::__alloc_traits<std::allocator<double> >::value_type&)’ の呼び出しが曖昧です
             if (isnan(_intensity[ind][k])){
                                         ^

修正

isnan関数を使わずに、isfiniteを用いることで回避した。

Apr 22 2021

[update:Utsusemi-DNA:master] Update some files by current ana PC at the instrument

Apr 21 2021

[bugfix:Utsusemi-DNA:master] The issue that treatment of events was wrong just after kickers are lost

DATA_RDCT-68 DNAの2ndフレーム動作確認

2ndフレームを使用したヒストグラム化のとき、キッカーが途切れた直後のイベントを正しく処理できず、ヒストグラムに加えられていなかった問題に対応した。 TOFが目的のTOF範囲(2ndフレーム内、すなわち40000<TOF<80000)に入っていた時にも40000を足して処理していたのを修正した。

Apr 20 2021

[bugfix:Utsusemi:4.0] The issue that it causes error to treat external script of data reduction on Step-by-Step mode in D4Mat2Slicer

DATA_RDCT-71 空蟬4 D4Mat2Slicerで外部スクリプトがエラーとなる問題

対処

Python2で使用していたメソッドがそのまま使用されていた部分がエラーのようだ。 Python3で動作するように書き換えた。

Apr 20 2021

[update:uGao:master] Add “.txt” extention to filename automatically for SaveAsText on M2PlotPlus

DATA_RDCT-58 夕顔M2Plot+への要望(集約)

以下の要望に対応

  • Save as Textでファイル名に自動的に”.txt”をつけろ

対応内容

選択したファイル名に”.txt”がなかった場合につけるようにした。

Apr 19 2021

[bugfix:Utsusemi:4.0] The issue that NXSPE made from Manyo codes causes errors when Manitd MSlice reads it.

DATA_RDCT-70 NxspeフォーマットがMantid MSliceで読めない

空蟬で作成したNXSPEファイルをMantidのMSliceで読み込む際にエラーが出る問題に対処。

以下の2点をMERLINのNXSPEファイルを参考に修正した

  • NXSPEファイルの”ki_over_kf_scaling” (NX_BOOLEAN) の書き込みにおいて、これまでWriteNeXusFile::WriteData( string, bool )で、”NX_INT8”で 1:True, 0:Falseを書き込んでいたが、それをNX_INT32で書き出すようにした(Manyo)

  • NXSPEファイルの”INSTRUMENT/fermi_chopper” の情報を”INSTRUMENT/fermi”にも作成するようにした

  • “program_name”に”version”属性を加えた

Apr 19 2021

[bugfix:manyo:0.3.4] The issue that NXSPE made from Manyo codes causes errors when Manitd MSlice reads it.

DATA_RDCT-70 NxspeフォーマットがMantid MSliceで読めない

空蟬で作成したNXSPEファイルをMantidのMSliceで読み込む際にエラーが出る問題に対処。

以下の2点をMERLINのNXSPEファイルを参考に修正した

  • NXSPEファイルの”ki_over_kf_scaling” (NX_BOOLEAN) の書き込みにおいて、これまでWriteNeXusFile::WriteData( string, bool )で、”NX_INT8”で 1:True, 0:Falseを書き込んでいたが、それをNX_INT32で書き出すようにした

Apr 19 2021

[update:uGao:master] Add CUI function on M2PlotPlus to close

DATA_RDCT-56 夕顔 MPlotへの要望

以下の要望に対応

  • MPlotに複数のデータを追加した時、オートスケールが最初のデータの値に縛られるのをなんとかできないか

  • uGao.MPlotで、[Home]ボタンを押してもオートスケールが効かない問題(210419追記)

対応内容

複数のテキストファイルを読み込んだ場合は[Home]ボタンの挙動に問題は起きなかった。一方でM2PlotPlusからのスライスにおいては、複数のスライス結果の表示する際に問題が起きていることを確認した。 また最小値に対しては問題ないことも報告された。

結局、FastPlotQt::Chart::SetScales の内部でY方向の最大値と最小値を求める部分で、M2PlotPlusから渡される値にMASKVALUE(1.0E100)が含まれており、これが最大値として選ばれたものの、IF文によってその値を無視する(当然だが)ようになっていたため、Y範囲が変更されない、ということがわかった。よってMASKVALUEを省いて最大値を探すようにロジックを変更した。

Apr 16 2021

[update:uGao:master] Add CUI function on M2PlotPlus to close

DATA_RDCT-58 夕顔M2Plot+への要望(集約)

以下の要望に対応した

  • CUIでプロッタをCloseできるようにしろ

対応

M2PlotPlusCui::Closeを追加した

Apr 16 2021

[update:uGao:master] Add CUI function on M2PlotPlus to save data as text file.

DATA_RDCT-58 夕顔M2Plot+への要望(集約)

以下の要望に対応した

  • M2PlotPlusCUIでSaveAsTextを使用可能にしろ

Apr 15 2021

[update:Utsusemi:4.0] Add new parameters for data reduction on D4Mat2

DATA_RDCT-65 空蟬4 D4Mat2Slicerへの要望

下記の要望に対応した。

Data Reductionで設定できるヒストグラム化のパラメータを増やすべき(2021.4.14追記)

増やしたパラメータは以下のとおり

  • NormFactor

  • TimeIndepBack

  • DetEffi

作業

  • GUI(DataReductionパネル)に追加

  • UtsusemiD4Matrix2::ImportEcmsContRotに引数を増やした

    • 連続回転の場合はデータリダクション処理がこの中で行われるため

結果

  • Step-by-Stepの場合に動作することは確認した

  • 連続回転測定手法では、未検証

Apr 14 2021

[update:Utsusemi:4.0] Add data correction function to correct uneven intensity over PSDs produced by the radial collimator installed in BL01

DATA_RDCT-36 White Vanadiumデータで検出器強度補正(物理的な遮蔽による)を行う(PSD単位)

BL01に設置されたラジアルコリメータによる強度のムラを取り除くファサード関数を加えた。

Cmm.RadialCollimatorCorrect(dat,vdat,integRange="All",pixelRange="All")

@param dat (ElementContainerMatrix) 補正されるデータ
@param vdat (ElementContainerMatrix) 補正に使用するVanadiumデータ
@param integRange (string) 補正値として積分する範囲(TOF or hw方向) "All"なら全て、"<min>:<max>"は範囲指定
@param pixelRange (string) 補正値として積分する1PSD上のPixel番号  "All"ならPSD上のPixel全部、"<min>:<max>"はPixel範囲指定

基本的に積分値で強度を割るが、積分値そのままで割るのではなく、全PSDの積分値(Sn)の平均値(Sav)で割った値で補正する。

In : original intensity for PSD n
Icorr = In / (Sn/Sav)
Apr 14 2021

[bugfix:Utsusemi:4.0] Fixed small typo and button descriptions on some dialogs on D4Mat2Slicer

DATA_RDCT-65 空蟬4 D4Mat2Slicerへの要望

以下に対応した。

要望とバグ

  1. XtalParam.xmlの読み込み時のダイアログのCancel/YesをNo/Yesにすべき

  2. Typo a,b,c (1/A) -> (Ang.)

Apr 13 2021

[update:Utsusemi-SAS:4.0] Add files to make Debian package on Ubuntu 20 and remove useless files.

Apr 9 2021

[update:Utsusemi:4.0] Add some setting files to make the debian binary install on Ubuntu20.04

DATA_RDCT-67 空蟬4Debianパッケージの最終的な形をフィックスする

空蟬4のUbuntu20.04でのDebinaパッケージを作成するために必要なファイルをアップデートした。

下記のような流れで作成できる。

# Utsusemi + uGaoのパッケージ作成

## パッケージ名
mlf-utsusemi-with-ugao
mlf-utsusemi-with-ugao-dev

## コード取り出し
$ git clone https://happymlf.backlog.jp/git/DATA_RDCT/Utsusemi.git
$ git clone https://happymlf.backlog.jp/git/DATA_RDCT/uGao.git

## 必要なbranchに変更
$ cd Utsusemi
$ git checkout -b 4.0 origin/4.0

## uGaoのコードを同梱
$ mv ../uGao ./
$ cd ..

## パッケージ作成の準備
$ mv Utsusemi mlf-utsusemi-with-ugao-4.0.210402
$ tar czvf mlf-tsusemi-with-ugao-4.0.210402.tar.gz mlf-utsusemi-with-ugao-4.0.210402

## パッケージ作成
$ dh_make -f ../mlf-utsusemi-with-ugao-4.0.210402.tar.gz
$ rm debian/*.ex debian/*.EX
$ rm debian/*.dirs debian/*.install
$ cp contrib/deb/ubuntu20/debian/* debian
$ dch -v 4.0.210402-ubu20
$ sudo dpkg-buildpackage -us -uc
Apr 8 2021

[update:Utsusemi:4.0] Add functions to reset D4mat2 data and status to [Set Parameters] button when data reduction parameters are changed on D4Mat2Slicer

DATA_RDCT-65 空蟬4 D4Mat2Slicerへの要望

以下の要望に対応した

要望

  1. D4Mat形式に変換するときに、”.xml”がファイル名に抜けていたら自動的に”.xml”を付加する

  2. 一通り処理を終えたのちにDataReductionパネルに戻り、Eiなどパラメータを変更した場合に[Set Parmeters]ボタンを押してもデータ処理ができない

対応

  1. D4Mat形式で保存時にファイル名をチェックし、なければ”.xml”をつけるようにした

  2. Eiなどのパラメータが変更されているかを確認して、変更されていれば以下を行うようにした

  • 前のデータを消して良いかのダイアログ表示

  • Step-by-Stepの時はRunListのマーカークリア

  • D4Matrix2::ResetD4mat()の実行

  • メインパネルの各種ボタンの初期化

その他

  • 不要な;がついていたのを修正

  • Eiなどエネルギー設定のパラメータをチェックする順番を修正した

Apr 5 2021

[bugfix:uGao:master] The issue that M2PlotPlus and MPlot occur error on Windows Anaconda environment

MPlotやM2PlotPlusなどで、

from pylab import *

で、wxモジュールがない、と言われる問題。

これは

import matplotlib
matplotlib.use('Qt5Agg')

の前に pylab モジュールを読み込むためにエラー。

そのあたりを修正した。

Apr 2 2021

[update:Utsusemi:4.0] Improve the behavior of combo-box and button for data conversion on D4Mat2Slicer

DATA_RDCT-65 空蟬4 D4Mat2Slicerへの要望

Data Conversionのプルダウンの項目において、

  • 条件1 DataReduction後に可能となるもの [SPE][nxspe]

  • 条件2 Projection後+Axis,Stepの設定が必要なもの [D4Mat]

と分かれているのに、全て条件2でしか使えない問題に対処した。

内部では状態遷移の流れを確認・修正し、以下の二つのフラグと各種ボタンの挙動を修正した。

かなり見通しは良くなった(明らかにダブっているフラグ self.IsReadySlice, self.isEnableSliceを統合した)が これらはもう少しスマートにできるはずである。

  • 状態

    • self.IsReadyProjection (DataReductionが終わっていて、Projection可能)

    • self.isEanableSlice (Projctionが終わっていてスライス可能)

  • ボタン制御

    • self.ButtonCtrlAfterDR

    • self.CheckEnableSliceButton

  • Data Conversionのプルダウンは常にEnabledとし、プルダウンの選択変更が発生したときに[Save]ボタンの状態を変更するようにした

他の変更点

  • 連続回転測定のデータをSPE, nxspeに出力するときに無駄な処理をしていると思われる部分があったので修正

Apr 2 2021

[update:Utsusemi:4.0] Add funcitons to make and treat virtual D4Mat2 data

DATA_RDCT-64 D4Mat2Slicerに仮想データ作成機能をつける

D4Mat2において、連続回転モードでRunNo=0を設定したときに強度1の仮想データを作成し、Projection, Sliceなどが可能とした。

あと細かい修正 - D4Mat2Slicer.py内部で、import Manyo as mm を import Manyoに変更

4.0.210401 or later#

Apr 1 2021

[bugfix:Utsusemi:4.0] The issue that Step values for slicing on D4Mat2Slicer are not restored correctly.

DATA_RDCT-62 D4Mat2のスライス情報のStepの値の挙動

  • XtalParamに保存されるStepがrangeの幅そのもの

    • VisualContMでは発生しない

    • UtsusemiSqeCalcXtalParam::SetSliceAxesにおける、Type=”T”の時の挙動が、予め設定されているStepを無視して、幅を計算して返す仕様になっていたのでおかしなことになった。

    • D4Mat2Slicerでは、VisualContMと同様に、SetSliceAxisを用いるように変更し、挙動を統一した。

    • SetSliceAxesの扱いは未定

  • Auto Fillボタンで、Stepがrangeの幅そのもの<-これはそんなことはなかった。

Mar 31 2021

[update:Utsusemi:4.0devD4mat2] Remove useless comment lines and rename class D4MatRSlicer to D4Mat2Slicer

DATA_RDCT-59 空蟬4 : D4Mat2のデータ保存・読み込み機能

  1. Continuous RotationモードでProjection前のデータをD4MatOneに収める改良

に対応

  • D4Mat2Slicer内で、不要となったメソッドやコメント文を削除した。

  • いくつかはのちの理解のために残しているが、wxPython時代のコメントアウト部分は基本削除した。

  • D4Mat2SlicerのメインウィンドウのタイトルがD4MatSlicer2だったのを修正した

次に必要なこと

  • ProjectionStepByStep名をProjectionOffLineとかに変更

  • オンラインモードでの挙動を確認(ここはいずれRedisPubSubに移行)

Mar 31 2021

[update:Utsusemi:4.0] Add icons for D4MatSlicer and D4Mat2Slicer

DATA_RDCT-60 空蟬4のアプリにアイコン

ソフトウェアのアイコンを加えた(D4MatSlicer, D4Mat2Slicer)

Mar 31 2021

[update:Utsusemi:4.0] Replace pictures for splash and log on Sequencer, VisualContM, D4MatSlicer and so on.

DATA_RDCT-60 空蟬4のアプリにアイコン

ソフトウェア起動時のスプラッシュと、バナー(Sequencer, VisualContM)に使用する画像を空蟬4のものに入れ替えた。

Mar 31 2021

[update:Utsusemi:4.0devD4mat2] Update data reduction part of continuous rotate mode only to put histogram data into D4Mat2 data for output to D4Mat2 binary file

DATA_RDCT-59 空蟬4 : D4Mat2のデータ保存・読み込み機能

  1. Continuous RotationモードでProjection前のデータをD4MatOneに収める改良

に対応

D4Mat2Slicerにおいて、連続回転時のオフラインデータ処理がバイナリ保存に向いていないので修正した。

Step by Stepでは、Data Reduction [Execute]ボタンを押すと、ヒストグラムをElementContainerMatrixに入れてデータリダクションを行ったのち、D4Mat2データとしてメモリに蓄える。

一方、連続回転測定(Offline)では、[Execute]ボタンを押すと、CaseInfoを利用したヒストグラム化までは行うが、データリダクションもメモリに蓄えることもしない。

このように両者で[Execute]ボタンによる挙動が違いすぎるので、それを統一することで、データ保存と読み込みを可能とする。

統一的なステップとして以下を定義。

  • [Execute]ボタンを押すと、D4MatGroup,D4MatOneまでを作成し、Projection直前の状態でバイナリデータ保存可能とする

  • Step-by-Stepでも連続回転測定でも同じ関数でProjectionとスライスを行うようにする

改変場所

UtsusemiD4Matrix2

  • 連続回転測定データ処理で呼ばれるImportEcmsContRot内部で、Step-by-Step処理で使用されるImportEcmStepByStepに流し込める形とする

  • ImportEcmStepByStepに新しい引数 bool isContRot を加えて、D4MatGroupへの追加方法を変更する(Step-by-Stepはadd, 連続回転では Allocate)

  • D4MatGroupに対しNULLをAllocateする使い方が発生したので、何箇所かでNULLにアクセスしないように改変した

D4Mat2SlicerQ.py

  • イベントデータの読み込みだけで終わるところを、パラメータを揃えたImportEcmsContRotを呼び出すようにした。結果として[Execute]ボタンでD4Mat2データが作成されるようになった。

    • 旧: [Execute]ボタン-> DRContRotationStatic -> LoadEventDtaFiles

    • 新: [Execute]ボタン-> DRContRotationStatic -> LoadEventDtaFiles -> ExecProjectionContRot.OnStart -> UtsusemiD4Matrix2::ImportEcmCOntRot

  • 連続回転測定ではここでD4Mat2データ作成およびProjectionを行っていたが、Step-by-Stepと処理を同じ(既に作成したD4Mat2データを使ってProjection)にした

    • 旧: [Projection]ボタン-> OnProjForAll -> ExecProjectionContRot.OnStart -> UtsusemiD4Matrix2::ImportEcmCOntRot

    • 新: [Projection]ボタン-> OnProjForAll -> UtsusemiD4Matrix2::ProjectionStepByStep (Step-by-Stepと統一)

次に必要なこと

  • 不要となったメソッドを大胆に削除

  • ProjectionStepByStep名をProjectionOffLineとかに変更

  • オンラインモードでの挙動を確認(ここはいずれRedisPubSubに移行)

Mar 29 2021

[bugfix:Utsusemi:4.0devD4mat2] The issue that Saving XtalParam.xml causes error due to wrong values for some data reduction parameters

D4Mat2SlicerのDataReductionパネルでContinuous RotateモードでXtalParam.xmlを保存しようとするとき、DataReductionパラメータが正しくないとエラーになる問題に対処。

Continuous Roteteモードでは、これまで保存する場合[Set Parameters]を押した時と挙動が同じくパラメータチェックが行われ、よければメインパネルのDataReduction [Execute]ボタンが押せるようになっていた。 しかし、保存する際に[Execute]ボタンが使用可能になるのはおかしいため、XtalParam.xml保存時にはパラメータチェックは行わず、[Execute]ボタンの状態変化をおこなさないようにした。 (Step by Stepモードでは修正ずみ)

Mar 29 2021

[update:Utsusemi:4.0devD4mat2] Enable to save D4Mat2 data as a binary file on D4Mat2Slicer

DATA_RDCT-59 空蟬4 : D4Mat2のデータ保存・読み込み機能 に対応

D4Mat2SlicerでD4Mat2バイナリファイル(*.d4m)を読み書きできるようにした。

結果としてできるようになったこと

  • Step-by-Stepで、DataReduction[Execute]を押した直後のデータをバイナリ保存が可能に

    • RunListのDataReductionの状態も含めて保存される

      • D4Matのときのようにファイルが分割しない(*.d4m一つだけ)

    • 読み込んだ場合にもRunListのDataReduction状態を再現するため、[Execute]ボタンでDataReduction未実行のRunから再開する

    • 新たにRunListを追加した場合でも、追加したものだけDataReuductionする

具体的な作業

  • d4mバイナリファイル保存時にXtalParamの文字列も送り込む必要があるので

    • UtsusemiSqeCalcXtalParamにファイル保存機能を拡張し、XMLの文字列を返すメソッドを追加

    • 同様にファイル読み込み機能を拡張し、XML文字列から情報を展開できるメソッドを追加

  • D4Mat2SlicerでもXtalParamファイルを扱う部分をXML文字列経由で情報を読み込めたり設定したりするメソッドを追加

  • D4Mat2Slicerのメインパネルのレイアウトを変更

    • “Param File…”を”D4Mat2 File…”に置き換え、[Load] [Save]ボタンでD4Mat2バイナリファイルの読み書きに対応

    • “RunNo.”やデータリダクション条件の表示場所を移動した

  • D4Mat2Slicerでバイナリファイルを読み込んだときのDataReductionPanelのrun_listやメインパネルのDataReduction[Execute]ボタンの挙動を修正

  • ana/Reduction/BaseCommandsInEla::LoadRunListToExtract実行時にimportエラーが発生するのを修正

Mar 29 2021

[update:Utsusemi:4.0devD4mat2] Enable to save D4Mat2 data as a binary file

DATA_RDCT-59 空蟬4 : D4Mat2のデータ保存・読み込み機能 に対応

UtsusemiD4Matrix2のBinaryファイルに日付とXtalParamsの情報を加えた。 結果的に以下のようにする(D4Matrix Binary version 1)

D4MatGroup Dump

Type

size

Descriptions

シグネチャ

string

19*8(bytes)

“D4MATBINARYINAMURA”

バージョン

UInt4

1*8(bytes)

1

日付

string

20*8(bytes)

“2021/03/29 17:15:48”

XtalParam size

UInt4

1*8(bytes)

XtalParamのPutXmlString().size()+1

XtalParam

string

XtalParamsのPutXmlString(), D4Mat2Slicerデータリダクション情報込み

HeaderBase size

UInt4

1*8(bytes)

HeaderBase.PutDumpToString()のサイズ+1

HeaderBase Dump

string

HeaderBase.PutDumpToString()

Size of D4MatOne

UInt4

1*8(bytes)

角度データ数

D4MatOne Dump

角度データ数 * bin数

D4MatOne Dump

Type

size

Descriptions

バージョン

UInt4

1*8(bytes)

1

HeaderBase size

UInt4

1*8(bytes)

PutDumpToString().size()+1

HeaderBase Dump

string

PutDumpToString()

NumOfPixels

UInt4

1*8(bytes)

総Pixel数

size of binning

UInt4

1*8(bytes)

Binning数

Energy

vector<float>

size_of_binning*8(bytes)

Intensity

vector<float>

size_of_binning*8(bytes)

Error

vector<float>

size_of_binning*8(bytes)

PolarAngles

vector<float>

NumOfPixels*8(bytes)

PolarAnglesW

vector<float>

NumOfPixels*8(bytes)

AzimAngles

vector<float>

NumOfPixels*8(bytes)

AzimAnglesW

vector<float>

NumOfPixels*8(bytes)

L2

vector<float>

NumOfPixels*8(bytes)

EFs

vector<float>

NumOfPixels*8(bytes)

  • D4MatGroupにXtalParamのXMLストリングを保存するメンバ変数とメソッドを追加した。

  • D4MatGroupにSIGNATUREやヘッダ系を保存するためのstatic constを各種定義した

  • data(D4MatOne)が空かどうかをみるEmpty()メソッドを追加した

  • D4MatGroupで_Clear()を2回繰り返すと落ちる問題に対処した

Mar 28 2021

[update:Utsusemi:4.0devD4mat2] Enable to save D4Mat2 data as a binary file

DATA_RDCT-59 空蟬4 : D4Mat2のデータ保存・読み込み機能 に対応

UtsusemiD4Matrix2::LoadDataおよび::SaveDataをつけた。

D4MatOne

::Save

::Load

D4MatGroup

::Save

::Load

これで、D4MatOneの Energy, Intensity, Error, PolarAngles, PolarAnglesW, AzimAngles, AzimAnglesW, L2, EFsなどのvector<float>をバイナリ で保存・読み込みが可能となった。 同時にHeaderBaseもDumpToStringでテキスト化し、バイナリ保存している。

次は、XtalParam.xmlの情報も同じファイルにバイナリ保存するようにする予定。

また、EfがVxなどと同じ数のvectorだった場合に問題が起こるのに対処。

Mar 23 2021

[update:Utsusemi:4.0devD4mat2] Enable to convert nxspe file on D4Mat2Slicer

DATA_RDCT-53 D4Mat2でのバグとUnit対応 要望:nxspe書き出し に対応

nxspeファイルへの書き出しが可能になった。

  • D4Mat, SPE, nxspeをプルダウンで選択して,Convertボタンで出力

  • Plot Axisの組み合わせでData Conversionのプルダウンとボタンが無効・有効となる

  • nxspeのヘッダには試料?の温度の入力が必要なので、ダイアログで聞くようにした。

Mar 23 2021

[bugfix:uGao:master] The issue that plot of data cut along Y-axis shows only first line of sub title.

Mar 23 2021

[bugfix:uGao:master] The issue that show-grid button changes current window size on M2Plot+

M2Plot+で、Grid表示ボタンを押すと、プロッタのサイズが変わる問題に対応 いくつかの変数名が間違っていてエラーとなる問題に対応

Mar 23 2021

[bugfix:uGao:master]

M2Plot+で保存したテキストファイルの読み込みに失敗する問題に対処した。

Mar 22 2021

[bugfix:Utsusemi:4.0devD4mat2] The issue that [Add Run List] on D4Mat2Slicer (add run_list.txt) does not work correctly.

DATA_RDCT-53 D4Mat2でのバグとUnit対応 5. Step by Stepでrun_list.txtの追加が正しくできない に対応

run_list.txtの追加ができるようにした。

UtsusemiD4Matrix2 - vector<string> UtsusemiD4Matrix2::PutLabelsOfImportedEcm()

  • 既にImportされたデータのLabelを取り出す機能を加えた

  • UtsusemiD4Matrix2::ImportEcmStepByStep

    • 同じLabelのデータが来た時は上書きするようにした

    • Labelが同じでRunNoが追加される場合は、D4Mat2SlicerQ側で対応

      • RunListのrunNoに追加、GetDataOfMonochroEi3で処理

D4Mat2SlicerQ.py

  • Data Reductionスタート時に登録されているRun_listの状態を初期に戻し、UtsusemiD4Matrix2::ClearAll()を行っていた部分を削除

  • DataReductionパネルで、Run_listの[Clear]を押したときにClearAll()を行うようにした

  • run_listを読み込むときに誤って同じファイルを読み込んだ場合に対処

    • 角度とRunNoが同じ時はRunNoを追記しないようにした

Mar 22 2021

[update:Utsusemi:4.0devD4mat2] Replace some string literal to static const string

DATA_RDCT-53 D4Mat2でのバグとUnit対応

  1. Step by Stepでrun_list.txtの追加が正しくできない

に対応中

  • UtstusemiD4Matrix2において幾つかのリテラルをconstにした

Mar 22 2021

[bugfix:Utsusemi:4.0] The issus of compile error with the code including to_string on gcc version 5.4 on Ubuntu16

Mar 22 2021

[update:Utsusemi:4.0] Add folding info into SubTitle of M2Plot+ from D4Mat2 and some small updates.

DATA_RDCT-53 D4Mat2でのバグとUnit対応

要望2 (Folding情報のSubTitleへの追加)

要望3 (SubTitleのリターンコードの扱い)

に対応

要望2:D4Mat2の2Dスライスで、SubTitleの情報にFolding情報を加える

  • D4Matと同様に加えた

要望3:D4Mat2の2Dをさらに1Dカットした時に、2Dプロット上のSubTitleの1行目しか1Dプロットに渡らない

  • SubTitleに”n”コードが入っていたため発生する。このコードを抜いてMPlotに渡すようにした。

その他: XtalParam.xmlで<unit>情報が空っぽで、かつ<title>に”(..)”もしくは”[..]”の記述があれば、それを<unit>とみなすように機能追加

Mar 22 2021

[bugfix:Utsusemi:4.0] The issue that D4Mat2Slicer could not treat an unit correctly.

DATA_RDCT-48 非弾性散乱測定のデータコンテナにおける単位の検討

DATA_RDCT-53 D4Mat2でのバグとUnit対応

バグ2. Unitへの対応

バグ7. [Reduction Set]ボタンの文字を[Set Params]に

バグ8. Mainパネルの結晶定数のcがaになっている

に対応

D4Mat2Slicerでの軸の単位をうまく扱えるようにした。

  • UtsusmiD4Matrix2::Slice2D系の引数に単位を渡せるvector<string>を追加

    • 戻り値として作成されるECAのヘッダにXKEY = “ax”+to_string( index )としてX軸の値を、ECAのヘッダ(MLF_KEY_HEAD_UNIT_PRE+XKEY)とECのヘッダ(Y軸,Intensity,Error)の単位を加えた。

  • D4matへの書き出し部分に <axisUnit>タグを追加

  • D4Mat2SlicerQ.py

    • Projectionに単位をつけてスライス時に単位を渡せるようにした

Mar 22 2021

[bugfix:Utsusemi:4.0] fixed the charactor for attice consts c, renamed the button to send parameters from Sub to Main panel

DATA_RDCT-53 D4Mat2でのバグとUnit対応

  • Reduction Set] の文字を[ Set Params]に

  • Mainパネルの結晶定数の cがaになっている

を修正

Mar 22 2021

[update:uGao:master] Add the button to turn grid on/off and set default color of grids to blue

DATA_RDCT-58 夕顔M2Plot+への要望(集約)

  • M2Plot+のSubTitleに”n”が含まれていると、Cutした時のMPlot上でのSubTitleに1行目しか表示されない

    • “n”を省いて表示するように改変

Mar 22 2021

[update:uGao:master] Add the button to turn grid on/off and set default color of grids to blue

DATA_RDCT-58 夕顔M2Plot+への要望(集約)

以下の要望に対応した

  • M2Plot+でgridのon/offボタン

    • M2Plotにあった機能を再現した

  • M2Plot+のGrid Lineの色のデフォルトが白なのを青か黒に

    • 青へと変更した

Mar 20 2021

[bugfix:Utsusemi:4.0] The issue of failure to save template file to execute the optional data reduction code on D4Mat2Slicer

Mar 20 2021

[bugfix:uGao:master] The issue that some results of fitting are not shown.

DATA_RDCT-56 夕顔 MPlotへの要望

以下の要望に対応した

  • エラーバーのキャップサイズを変更できますが、キャップサイズを0(つまり、エラーバーがただの縦棒になる)にもできると良いと思います。現状、キャップサイズに0を指定すると、最大値になるみたいです(もしかしてバグ?)

    • キャップサイズの指定が以前からおかしかったようだ。与えた値の1/2がキャップの幅となるように改変した

  • フィッティング結果がLineになってお陰様で見やすくなりましたが、良くを言えば”Check”したときの計算結果もLineの方が良いと思います

    • 対応した

  • ターミナルに表示されるフィッティング結果のパラメータの数が1つ足りないようです。Linear+Gaussianで試していますが、A1~A5のパラメータがあるのにA1~A4までの結果しか表示されませんでした

    • 修正した

Mar 19 2021

[bugfix:Utsusemi:4.0] The issue that marks on tab title does not indicate data treatments and slice button is disabled after projection

DATA_RDCT-57 空蟬4でのVisualContMのバグ

  • データタブの星が処理に対応しない

  • XtalParam.xmlを読み込んだ結果Slicingの欄でX-axis, Y-axisなどが正しい状態で、[Projection]処理が終わっているのに[Slice]ボタンが押せない

に対応。

Mar 19 2021

[bugifx:Utsusemi:4.0] Failed to execute projection on VisualContQ because of adding the check function for linearly independent on axes of the projection

Mar 19 2021

[update:Utsusemi:4.0]

DATA_RDCT-53 D4Mat2でのバグとUnit対応

  1. XtalParam.xmlの保存でスライズ情報が正しくない

  1. XtalParamの保存で、.xml拡張子がないときに自動で .xmlをつける

に対応

  1. にコメント

XtalParam.xmlの保存時に表示されているパラメータをセットしにゆくが、この機能は実行時と同じものを使用している。 その時に設定パラメータに問題がある場合、エラーを返すようになっている。 XtalParamの保存時は特にパラメータが間違っていても問題ないので(実行時にエラーになれば良い)強制的にパラメータセットするフラグを加えた。 (Energy情報やSliceのAxis Typeなどの整合性をチェックしている)

  1. にコメント

ついでにVisualContMに対しても同じ処置をした

Mar 19 2021

[bugfix:Utsusemi:4.0] Fixed typo, which occurs compile error.

Mar 19 2021

[update:Utsusemi:4.0devD4mat2] Change some variables name.

UtsusemiD4Matrix2内部の変数名が分かりにくい部分があったのを修正した。 また、L2(vector<float>)を追加し、PixelPosition情報をL2, PolarAngles, AzimAnglesで計算するようにした。

Mar 19 2021

[update:Utsusemi:4.0devD4mat2] Remove useless comments in UtsusemiD4Matrix2 code.

Mar 18 2021

[bugfix:Utsusemi:4.0] The issue that conversion to SPE on Step-by-Step mode occurs core dump.

DATA_RDCT-53 D4Mat2でのバグとUnit対応

D4Mat2Slicerで、Step by StepモードでのConvToSPEが動作しない問題に対応した

  1. UtsusemiD4Matrix2::ExportEcmFromStepByStep実行中のコアダンプ

    • 必要なデータがNULLになっていた(PAd, AAd)

  2. D4Mat2SlicerのOnConvSPEFilesで実行エラー

    • Step by Stepの時のrunNoとmaskfileが未定義

    • FileDialogの戻り値ミス

    • ContRot時のdHWCorrect()未実行

    • 保存時のファイル(spe,phx,par)の再定義

  3. TreatSPE実行時にエラー

    • TreatSPEで必要となるヘッダ情報”TypicalPixelSize”がなかった UtsusemiD4Matrix2::ExportEcmFromStepByStepの戻り値にヒストグラム化直後ECMからヘッダ情報をコピーした

  4. SPEファイルの強度がdHW分だけおかしい

    • UtsusemiD4Matrix2::ImportEcmStepByStep内で dHWCorrectが実行されていたのをなくした

      • これはGetMonochroEi3で既に実行ずみ

    • TreatSPE内で、HistogramBinToPointを実行している部分があった

      • これはヘッダ情報に”NormByBinWidth”=1を加えることで回避

      • ただ、これは将来なくすべき。

Mar 18 2021

[update:Utsusemi:4.0] Add brief check of linearly independent between given projection axes

DATA_RDCT-55 VisualContで直交しない軸で射影するとエラー

VisualContQでのProjection座標が線形結合していないことをチェック(簡易版)を加えた。

  • UtsusemiSqcCalc2:InverseMatrix

  • VisualContQ.py

Mar 18 2021

[update:Utsusemi:4.0] Add the function to estimate memory occupancy on data reduction in D4Mat2Slicer

DATA_RDCT-53

Step by Stepのデータリダクションで、NormFactor=1000000を作用させた。

Mar 18 2021

[bugfix:Utsusemi:4.0] The issue that error occurs when projection with not orthogonal axes is executed on VisualContQ

DATA_RDCT-55 VisualContでMonoclinicな軸で射影するとエラー

に対応

VisualContQでのProjection座標が直交することをチェックする部分があった。そのためmonoclinic系のProjection座標を入れるとエラーとなっていた。

Mar 18 2021

[bugfix:Utsusemi:4.0] The issue that failure to read run_list file on Step-by-Step mode of D4Mat2Slicer

DATA_RDCT-53 D4Mat2でのバグとUnit対応

  1. StepByStepモードで、run_list読み込み時にエラー

に対応

D4Mat2SlicerのData Reductionパネル上でStep By Stepモードでの [Add Run List]を押して run_listを選択しても何も起きない問題に対処。 新しいrun_listのフォーマットに合っていなかったため。 run_listのタイトル行(1行目)の文字から判別するようにした。

Mar 17 2021

[bugfix:Utsusemi:4.0] The issue that execution of MakeVirtualMatrix on D4MatSlicer causes core dump

DATA_RDCT-52 空蟬4のD4MatSlicerでVirtualモードでCore Dumpする に対応.

D4MatSlicerでMakeVirtualMatrixを実行すると落ちる。 これは新しくUnitの概念を取り入れた時に一部足りない機能があった模様。

Mar 17 2021

[bugfix:Utsusemi:4.0] The issue that ElementContainer sliced on VisualContM (UtsusemiSqeCalc2) does not have correct unit.

DATA_RDCT-48 非弾性散乱測定のデータコンテナにおける単位の検討 に対応

VisualContMのスライス結果をMPlot+で表示した時にうまく単位が渡らない問題を修正した。 なお、この問題を解決するために行った修正は以下の万葉ライブラリのルールに従うコーディングである。

ヘッダ内の値に対する単位の与え方

ヘッダ内にKEYで収められた値の単位を与える方針を以下のような方針としてみた。

"_UNIT_"+KEY

ここでMlfHeader内でMLF_KEY_HEAD_UNIT_PRE=”_UNIT_”と定義したので 例えばECのヘッダに”Qc”という値が入っていたとして、その単位を”rlu”としたい場合

EC.AddToHeader(MLF_KEY_HEAD_UNIT_PRE+"Qc","rlu")

とする。

Mar 17 2021

[update:manyo:0.3.4] Define rule to store an unit for each key

DATA_RDCT-48 非弾性散乱測定のデータコンテナにおける単位の検討

ヘッダ内にKEYで収められた値の単位を与える方針を以下のような方針としてみた。

"_UNIT_"+KEY

ここでMlfHeader内で MLF_KEY_HEAD_UNIT_PRE=”_UNIT_” と定義したので、例えばECのヘッダに”Qc”という値が入っていたとして、その単位を”rlu”としたい場合

EC.AddToHeader(MLF_KEY_HEAD_UNIT_PRE+"Qc","rlu")

とする。

Mar 17 2021

[update:uGao:master] Add function to clear plotted data for XZ slice and YZ slice as button and context menu

DATA_RDCT-51 夕顔 M2Plot+上のスライス&プロット機能にClear機能を追加

M2Plot+上のスライス機能では、[1D Plot]ボタンを押したり、メイン2Dプロッタ上のコンテキストメニューで”MPlot”を選択するとMPlotが起動しプロットデータが追加・表示されるが、プロットデータの追記はできるが消去できない。消去するためには起動中のMPlotをCloseするしかないが、そうするとせっかく変更したMPlot上の設定値が消滅する。

この問題を解決するために、MPlotは起動させたまま、プロットデータのみを消去する機能を加えた。

なおこの機能は

  • M2Plot+ メインパネル上の[1D Plot]ボタンの側の[Clear]ボタン (M2PlotPlus.py)

  • メインプロッタ(u2dplot)のサブプロッタ上のコンテキストメニューの[Clear]メニュー (u2dplot.py)

から呼び出せる。

なお、今回の改変に伴いコンテキストメニューをこれまでの[MPlot]1項目から

  • [Add To MPlot]

  • [Clear]

の2項目にしている。

Mar 17 2021

[bugfix:uGao:master] The issue that an unit for X axis on M2Plot+ is not indicated correctly on changing combobox

DATA_RDCT-45 M2PlotPlus使用上のバグ

1. 1Dプロットした時のラベルの単位が二重に表示 “Energy (meV) (meV)” に対応

M2Plot+パネル上で、VisualContMなどのスライス時に正しい単位が表示されない問題に対処。 これは以下の万葉ライブラリのルールに従うコーディングである。

ヘッダ内の値に対する単位の与え方

ヘッダ内にKEYで収められた値の単位を与える方針を以下のような方針としてみた。

"_UNIT_"+KEY

ここでMlfHeader内でMLF_KEY_HEAD_UNIT_PRE=”_UNIT_”と定義したので 例えばECのヘッダに”Qc”という値が入っていたとして、その単位を”rlu”としたい場合

EC.AddToHeader(MLF_KEY_HEAD_UNIT_PRE+"Qc","rlu")

とする。

Mar 16 2021

[bugfix:Utsusemi:4.0] fixed codes to avoid compile error on g++ 5.4.0

Mar 16 2021

[update:Utsusemi:4.0] Add functions to treat <unit> information around D4MatSlicer and XtalParam.xml

DATA_RDCT-50 XtalParam.xmlに軸の単位を追加、D4MatSlicer系への対応

に対応

UtsusemiSqeCalcXtalParam関連

  • VisualContMに追加した各軸の単位の扱いをXtalParam.xmlへ反映するようにした

<visualContParams>
  <slicingInformation>
    <projectParams>
      <axis id="0">
        <vector>1,0,0,0</vector>
        <title>Qa</title>
        <unit>rlu</unit> <!- 追加 -->
      </axis>
      ...
    </projectParams>
    ...
  </slicingInfomation>
</visualContParams>
  • Projectionのための情報を与える時に<unit>情報も渡すようにした

    • PutViewAxesUnits, SetProjectionAxes

    • これらを使うVisualContQ.pyも修正

  • <unit>のない古いXtalParam.xmlを読み込んだ際に、<title>に “Qb (rlu)” のようにカッコで囲まれた部分があった場合、それを単位として取り出すようにした

D4MatSlicer関連

  • D4mat作成やスライス関数の引数にunit情報が必要なようにし、戻り値のElementContainerArrayに<unit>情報を渡すようにした

    • UtsusemiD4Mat::AllocateNewMat, AllocateVirtualMat

    • UtsusemiD4Mat::Slice2d, _SliceMat

  • D4Mat.xmlに<unit>情報を加えるようにした。

    • SetAxUnit, SetAxUnitsなどの関数を加えた

    • SaveParamXmlやReadParamXmlで以下のような<unit>情報を扱うようにした

<D4Matrix>
  ...
  <axisUnit>
    <ax1>rlu</ax1>
    <ax2>rlu</ax2>
    <ax3>rlu</ax3>
    <ax4>meV</ax4>
  </axisUnit>
  ...
 </D4Matrix>
  • これらを呼び出すPythonコードも改変した( D4MatQ_Manyo.py, D4MatSlicerQ.py )

    • <unit>情報を扱う内部変数を用意

  • <unit>情報を表示・入力できるようにGUIにLineEditを加えた

    • Main及びSubウィンドウ共に

Mar 16 2021

[bugfix:Utsusemi:4.0] The issue that the processing is slow just after open script file and that SequenceEditor shows twice the warning for overwrite existed file on save script dialog

DATA_RDCT-49 空蟬4 SequenceEditorの問題

に対応

  • スクリプトファイルを読み込んだ直後にコマンドが順次表示されるが、その動作に時間がかかる問題に対処。

    • (リストオブジェクトのアイテム更新時のイベントを受けないようにした)

  • スクリプト保存時、ファイル上書きのWaningがQtのダイアログ自身と、SequenceEditor自身のものの二重に表示される問題を修正

Mar 16 2021

[bugfix:Utsusemi:4.0] The issue that sliced data from VisualContM does not include a unit on each axis correctly

DATA_RDCT-45 1. 1Dプロットした時のラベルの単位が二重に表示 “Energy (meV) (meV)”

DATA_RDCT-48

に対応

VisualContMでスライスされたデータをECAとして取り出すのに使用されるUtsusemiSqeCalc2::SetSlicedElementContainerArray において,新たに単位を指定する引数を増やし

  • ElementContainerのデータ(vector<Double>)のAdd時に、X,Y,Eそれぞれに単位をつける

  • ElementContainerArrayのヘッダに”Xunit”(string)として横軸単位をつける

を実現した。(UtsusemiSqeCalc2)

強度の単位としてarb. unitを追加した(UtsusemiHeader)

VisualContQで、これまで[“Qa (rlu)”] と軸ラベルにまとめていた単位情報を、新しい内部変数として確保し、[“Qz”] [“rlu”] とGUI上でも分けて扱うようにした。 同時にスライスしたデータを取り出す際にこの単位情報を与えることで、スライス結果の戻り値のデータに正しく単位の情報が引き継がれるように改変した。 (VisualContQ.py VisContQTab.py)

今後必要な同様の作業:

  • XtalParamに単位情報を加える

  • D4Matに単位情報を加える

Mar 16 2021

[bugfix:manyo:0.3.4] The issue that the sliced data from ElementContainerArray on MlfArraySlicer does not have a unit on X-axis

DATA_RDCT-45 1. 1Dプロットした時のラベルの単位が二重に表示 “Energy (meV) (meV)”

DATA_RDCT-48

MLF/MlfArraySlicerで、矩形型配列のデータスライス(特にVisualContM)において、横軸がElementContainerの並び(ECAのindex)方向にスライスを行った際、単位が規定されない問題に対応した。

ElmentContainer方向の軸の値は、定義的にはElementContainerのヘッダに含まれる”XRANGE”や、”Xaxis”(uGao)などが使用されているが、単位については規定がなかった。 そこで以下のように再定義し、MlfArraySlicerの戻り値のElementContainerに単位を加えるように改変した。

2次元矩形型データ

横軸の定義:ElementContainerの並びの方向の軸

縦軸の定義:ElementContainerのX方向の軸

この時ElementContainerのヘッダには以下の情報が含まれることとする。

“XRANGE”

vector<Double>

対象ElementContainerの横軸のbin幅

“Xaxis”

Double

対象ElementContainerの横軸の値

“Xunit”

string

横軸の単位

なお、XRANGEとXaxisは排他的に処理するイメージ。今後はXaxisを常用(uGaoでも)すること。

また、これらを用いるために

  • MLF_KEY_HEAD_XAXIS=”Xaxis”

  • MLF_KEY_HEAD_XUNIT=”Xunit”

  • MLF_KEY_HEAD_XRANGE=”XRANGE”

と定義した。

Mar 16 2021

[bugfix:uGao:master] The issue that units list for X axis created from given data is wrong.

Mar 16 2021

[bugfix:uGao:master] The issue that error occurs on loading old format parameter file saved as default

Mar 16 2021

[bugfix:uGao:master] The issue that error occurs on fitting in MPlot

DATA_RDCT-47 uGaoのMPlotにいくつかバグと要望

以下のバグと要望に対応した

バグ

  • Fittingしたらエラーが表示される問題<- 修正した

要望

  • Fittingの結果をターミナルに表示 or textファイル or コピペできるような形<- ターミナルに表示するようにした

  • Fitting結果のプロットをLineに <- OK

Mar 16 2021

[bugfix:uGao:master] fixed type in the dialog of Save as Text…

DATA_RDCT-45

  1. Save as TextメニューのIgnore Maskedのダイアログの”Left Value”の文字がおかしい(せめてright?)

に対応

Value in right boxに変更

Mar 16 2021

[bugfix:uGao:master] The issue that a unit of data is not treated correctly in M2PlotPlus, and that there is useless button on toolbar

DATA_RDCT-45

  1. 1Dプロットした時のラベルの単位が二重に表示 “Energy (meV) (meV)”

  2. ツールバーに”Edit axis, curve and image parameters” というToolTipの出るボタンがあるが不要

に対応

各部品ごとに、単位の情報を独立して扱い動作するようにした。

u2dplot

  • ToolBarから不要なボタンを削除

  • ScaleParamsクラスに単位を収める unit を追加

    • 注意:以前の初期設定ファイル ~/ana/xml/initial.uprを削除しないと動作しない

  • View Params ダイアログに unit 欄を追加

  • D2Chartで、軸のラベル表示を、label (unit) の方式にした

U2IF

  • SetUnits, GetUnitsの関数を追加

M2PlotPlus

  • GUIにLabelの隣にUnitをつけた

    • データ読み込み時に自動的に入力

    • 編集は可能

  • Keyの選択に応じたUnitを選択するようになった

ただし、M2PlotPlusやu2dplotの単位は、スライス時にはMPlotには直接流れないので注意。 スライス生成時に作成される単位が有効(現状)。

Mar 12 2021

[bugfix:uGao:master] The issue that error occurs on pussing Back To : [Initial] button on Set View Parameters panel in u2dplot

DATA_RDCT-45

Set View Parameters パネルで、保存された設定の読み込みで用いるBack To :[Initial]ボタンを押すとエラーがでる問題に対処。

ここで仕様を以下のようにした。

これまでの

  • Back To : [Initial] [Default]

  • Save as : [Initial]

のボタンの役割を以下のように変更した

  • Back To : [Default] [Initial]

  • Save as : [Default]

そして、それぞれの機能は以下のように再定義した。

  • Save as : [Default] で現在の設定をDefaultとして保存する

  • Defaultは、起動時と、Back To [Default]を押した時に読み込まれて設定される

  • Back To [Initial] は[Default]がない時の(u2dplot自体の)設定に戻す

一度の読み込みでは設定されないパラメータが存在したが、パラメータの設定する順番を入れ替えることで対処できた。 (おそらく自動アップデートの機能が悪さをしている)

また、他にも下記のような修正を行った。

  • 上記のBack To:では、TitleとCommentは変更しないようにした

  • [Initial] でWindow Sizeが戻らない問題にも対応した

Mar 12 2021

[bugfix:Utsusemi-SAS:0.3.7] The issue that HistBaseCommands::CheckT0bUpdate does not work correctly with ACE storage

BL15において、ACEストレージ設定した際に、データフォルダが複数に分かれてしまった(/data/SAS, /data/SAS00)。 そのため一部のデータでT0Bのチェックに失敗するようになっていた。 空蟬C++では、

  • /data/XXX

  • /data/XXX00

  • /data/XXX01

  • /data/XXX99

まで探しにゆくので、それに倣い修正した。

また最新の装置環境に合わせ、WiringInfoとenviron_ana.xmlをアップデートした。

Mar 12 2021

[update:Utsusemi-SAS:0.3.7] Add correction function of poralization lambda dependency

DATA_RDCT-40

BL15 偏極度の波長依存性を補正する関数の追加を行った。

Utsusemi-SAS/manyo/P0LambdaCorrection

def P0LambdaCorrection(dat1=DAT,dat2=DAT,PolData="BL15_pol_vs_lambda.dat"):

    P0(lambda dependency of poralization) correction
    @param dat1 [Def:DAT1]  (ElementContainerMatrix) I^{+}_obs
    @param dat2 [Def:DAT2]  (ElementContainerMatrix) I^{-}_obs
    @param PolData  (str) file path to text data for the polarization vs lambda
    @retval RET list of ElementContainerMatrix [I^{+}, I^{-}]
Mar 12 2021

[bugfix:Utsusemi-SAS:0.3.7] Fixed the fomula of the correction for lambda dependency of poralization

Mar 12 2021

[update:Utsusemi-SAS:0.3.7] Enable to give minus angle value in azim_range argument of GetAzimuthProfile function

DATA_RDCT-30

GetAzimuthProfileでのazim_rangeが負の値動だと作しない問題に対処した。

Mar 11 2021

[bugfix:0.3.7] environ_ana.xml updated yesterday was wrong.

Mar 11 2021

[update:uGao:master] M2Plot+ and u2dplot : When one window is activated by click, the other is brought up to front

DATA_RDCT-44

M2Plot+ と u2dplot で、どちらかをクリックなどで前面に持ってきた時に、同時にもう片方も上に上がってくるように改良した。そのためのボタンは付いているが、それが面倒だとのことでさらに前面に持ってくる動作のイベントを拾うようにした。

Mar 11 2021

[bugfix:uGao:master] The issue that MPlot does not show error bars on the log scale plot

DATA_RDCT-46

ログスケールの時にエラーバーがでない問題に対処。 開発当初のMatplotlibでは出せなかった模様。

Mar 10 2021

[update:0.3.7] Add new WiringInfo_210305.xml by R.Kajimoto

Mar 10 2021

[update:4.0] Add the function to estimate memory occupancy on data reduction in D4Mat2Slicer

DATA_RDCT-42

  • 連続回転測定のDataReduction用パラメータを設定する時、メモリ使用量の予測を行うようにした

    • Data Reductionパネルで[Reduction Set]ボタンを押した時にメッセージを表示

Mar 10 2021

[bugfix:4.0] The issue that data conversion to D4Mat data does not work correctly on D4Mat2Slicer (PySide)

DATA_RDCT-41

  • TrigNETの情報をGUI上で設定できるようにした(PySide版)

  • MainWindowのタイトルやDataReductionPanelのタイトルを修正(PySide版)

  • その他GUI上のTypoを修正(PySide版)

Mar 10 2021

[bugfix:4.0] The issue that data conversion to D4Mat data does not work correctly on D4Mat2Slicer

DATA_RDCT-41

  • D4Mat2Slicer上で、データをD4Matへの書き出しがうまく動作していない問題に対応

  • TrigNETの情報をGUI上で設定できるようにした(PySide2版)

  • MainWindowのタイトルやDataReductionPanelのタイトルを修正(PySide2版)

  • その他GUI上のTypoを修正(PySide2版)

Mar 9 2021

[bugfix:4.0] The issue that ‘/data’ is used in D4Mat2Slicer.py instead of UTSUSEMI_DATA_DIR environment variables

DATA_RDCT-37

Mar 8 2021

[bugfix:4.0] The issue that text boxes on D4Mat2Slicer are empty just after launching

DATA_RDCT-37

起動直後に全てのテキストボックスが空欄なのを修正した。

  • サブウィンドウ(DataReduction用ウィンドウ)の初回起動時にテキストボックスを設定するように改変した

  • 格子状数、射影パラメータ、スライズパラメータに初期値を与えた

Mar 6 2021

[update:uGao:master] Increse the number of decimal places in the value box for the intensity range on M2Plot+

M2Plot+の強度範囲設定の表示の小数点以下の桁数が3桁と少なかったため増やした(%%.3f -> %%g)

Mar 5 2021

[bugfix:4.0] The issue that D4Mat2Slicer with LineDriveConvTrignetMlf event data does not work correctry.

DATA_RDCT-37

連続回転測定の実験で使用するD4Mat2Slicerを、ゴニオのエンコーダシグナルを相対角度に変換するLineDriveConvTrignetMlfモジュールの作成するイベントデータに対応させた。

  • LineDriveConvTrignetMlfのイベントに合わせたCaseInfoの書き出しを行うようにした

  • 連続回転測定の測定開始時の角度と回転範囲が自由に選べるようにした

    • これまでは”Start Ang”,”End Ang”だけで指定しており、測定は”Start Ang”から開始することが前提であったが、測定開始角度を”Start Ang”, 回転範囲を”Min Ang”,”Max Ang”と分けて指定するようにGUIとコードを改変

  • MaskFileに’default’を使えるように改変した

Mar 5 2021

[bugfix:4.0] Fix Latest WiringInfo include useless TrigNET module (00-253)

2021.3.5に行った連続回転測定のLineDriveシグナルの入力に使用するTrigNETを 00-254 に割り当てたので、それ以外のTrigNET (00-253)の記述は不要なので削除した(実際、こちらのTrigNETは故障している)。

Feb 19 2021

[update:0.3.7] Add UtsusemiMessage commands at the begining of code of Facade functions to know the functions name and arguments executed in script

  • Facade関数実行時にFacade名と引数を表示するようにした

    • XXX/facade/DR.py XXX/facade/Cmm.pyの関数が対象

    • UTSUSEMI_LOG_QUIET=Y状態でも表示されるので、スクリプト実行時にどのFacade関数がどのような引数で実行されたかがわかるようになる。

  • BaseCommands.pyで、printでの表示をUtsusemiLogger系で置き換えた

Feb 19 2021

[update:0.3.7] Add function to get an environment variable of UTSUSEMI_LOG_QUIET and add flag argument in UtsusemiLogger functions to show messages in spite of LOG_QUIET

  • 空蟬用環境変数UTSUSEMI_LOG_QUIETの値を返す関数を作成した

    • bool UtsusemiEnvGetIsQuiet()

    • UTSUSEMI_LOG_QUIETの値が”y”, “Y”であればtrue、それ以外はfalseを返す。

  • UtsusemiLoggerの関数に、LOG_QUIETがどの状態でも関係なく表示する引数を追加した

    • QUIET状態でFacade関数実行時にFacade名と引数を表示するため

      • UtsusemiMessage( str, bool )

      • UtsusemiError( str, bool )

      • UtsusemiWarning( str, bool )

  • BoostXmlParseを使用する各種コードで、LOG_QUIETの値に応じて表示を減らす(SetQuiet)ように対応した。

Feb 15 2021

[update:manyo:0.3.7] Remove useless file and add some descriptions to README.md

4.0.210209 or later#

Feb 9 2021

[update:4.0] Improved the order of searching on FindParamFilePath and FindTempFilePath

FindParamFilePath と FindTempFilePath の検索順序の挙動を確認し、最後に /tmp を追加した。

  1. additionalPath/<target>

  2. ${CurrentDir}/<target>

  3. ${UTSUSEMI_BASE_DIR}/${UTSUSEMI_INST_CODE}/ana/xml/<target>

  4. ${UTSUSEMI_USR_DIR}/ana/xml/<target>

  5. /tmp/<target>

本来、空蟬はヒストグラム化を中心に~/ana/tmpや ~/ana/xmlがなくても動作することを目指していたが、実際にはこのFindTempFilePathなどで ana/xmlフォルダがないためにエラーとなることがあった。 そこでなくても動作するようにサーチパスの最後に/tmpに加えた。 これでUTSUSEMI_DEBUGMODE=yであってもLinuxではエラーが出ないようになった(最悪/tmpに出力)。

Feb 8 2021

[update:4.0] Update bashrc.py3.XXX

Feb 8 2021

[update:4.0] Add codes to make debian packages (Ubuntu20) named mlf-utsusemi-ugao and mlf-utsusemi-ugao-dev

Debパッケージを作成するためのファイルをいくつか用意した。

  • contrib/deb/ubuntu20

    • Ubuntu20.04でのパッケージ作成に使用するファイルを追加した。

Feb 8 2021

[update:4.0] Add codes to make debian packages (Ubuntu18) named mlf-utsusemi-ugao and mlf-utsusemi-ugao-dev

Debパッケージを作成するためのファイルをいくつか用意した。

  • Makefile

    • パッケージ作成を楽にするためにあえて追加。

    • 通常のmanyo以下のコンパイルに加え、python-utsusemi-XXXのコピー、uGaoがあればそれもMANYO_PATH/../python-utsusemi内にコピーする。

  • contrib/deb/

    • README.mdは簡単なやり方

    • ubuntu18/ にUbuntu18でパッケージを作成するためのファイル

Feb 2 2021

[update:4.0] Remove useless parameters descriptions from output of WiringInfo

WiringInfoファイルの出力で、不要なAttribute値が残っていたのを省いた。

省いたAtrtribute一覧

Attribute

wiringInfo

tofBinInfo

“n”

tofBin

“i”

tofBinPatternList

“n”

tofBinPattern

“i”

psdBinInfo

“n”

psdParam

“n”

parameter

“i”

Mar 2 2021

[bugfix:uGao:master] Fixed typo of File menu

Mar 2 2021

[bugfix:uGao:master] The issue of the different reactions of scale range setting between M2Plot+ and u2dplot

DATA_RDCT-34

u2dplotの”Set View Parameters”のRangeの設定は、左右二つの蘭のうち、左(start)の値 < 右(End)の値 でないとメッセージが表示される。 一方、M2Plot+のScaleのRangeの設定のRangeの欄では、左 > 右 でも問題ない。ただしプロット上の軸は逆順(最大値と最小値がひっくり返っている)となる。 エラーがないようにMPlot+の方に統一する。

Feb 1 2021

[bugfix:0.3.7] fixed typo in SaveDataToSPE which causes error.

Mar 1 2021

[bugfix:uGao:master] The issues that the actions of items of Display menu in MPlot by appearance of dialogs do not work correctly.

  • MPlotのDisplayメニューにあるいくつかのアイテムが、ダイアログの表示や出現および閉じる動作に連動しなかったのを修正した

  • MPlotの各ダイアログのタイトルが正しくなかったのを修正した

Jan 30 2021

[bugfix:uGao:master] The issue that menu item ‘print’ causes error. ( Not sure the way to print out plot figure )

Jan 29 2021

[bugfix:0.3.7] The issue of the compile error on Windows because Makefile.obj.vc includes the obsolete class.

Jan 29 2021

[update:4.0] Remove useless line from __init__.py on Windows.

Jan 29 2021

[bugfix:Utsusemi-SAS:0.3.7] The issue of the compile error on Windows because of typo of Makefile.obj.vc.

Jan 29 2021

[bugfix:Utsusemi-SAS:4.0] The issue that Manyo.SAS functions can not be used on Windows

Jan 29 2021

[update:Utsusemi-SAS:0.3.7] Update Makefile.obj.vc and SAS.i.vc to append CalcScanTrajectory class on Windows

Jan 28 2021

[bugfix:4.0] The issue that some menu items of DetectMap are not working.

  • DetectMapのメニューの “Open”,”Save”,”Save as”がグレーアウトしていない問題に対処

    • グレーアウトするようにした。

  • DetectMapのメニューの”Print”がWindows環境でエラーとなる問題に対処

    • LinuxやMacでは内部で “lpr”を呼び出している。Windows版では “Printer_Print()”というコマンドを使用しているが、これも正しく動作するか分からないので、とりあえず画像ファイルを書き出す機能に置き換えた。

Jan 28 2021

[update:uGao:master] Remove printer button on toolbar (ChartToolBar)

uGaoUtil.pyにあるChartToolBarクラスで不要と判断したプリントアウト機能(直接印刷する機能)を省いた。 なお、このChartToolBarはDetectMapやMPlotに使用されている。 (必要となったら頑張って追加する)

Jan 28 2021

[bugfix:uGao:master] The issues of some mouse click actions and plotting with log scale on MPlot

MPlotに関して以下の問題を解決した。 - プロッタ上でのクリックやダブルクリックの挙動がおかしくなるので修正

  • matplotlib 3.3.x上で、NavigationToolBarの属性値_activeが使えなくなったことによるエラー

  • Logスケール指定時に、該当する軸の値に負の数が入った時に発生するUserWarningに対処

    • 軸の範囲指定での負の値への対処を精密にした

Jan 27 2021

[update:4.0] Improve UtsusemiCheckDataProcess to enable to treat ElementContainer and -Array

UtsusemiCheckDataProcessは、ElementContainerMatrixのヘッダにあるDATAPROCESSEDのキーの値を取り扱うものであるが、これをElementContainerArrayやElementContainerでも使用できるようにした。

Jan 27 2021

[update:Utsusemi-DNA:master] Add some Header data to ElementContainer returned from GetHistogramMon.

GetHistogramMonの戻り値のElementContainerのヘッダにKikcer値と、DATAPROCESSEDを加えた。

Jan 26 2021

[update:0.3.7] Add new arguments to TreatSPE functions in order to give optional file names of PHX file and PAR file

TreatSPEを用いるLoadDataFromSPEやSaveDataToSPEにおいて、任意のPHXファイル名、およびPARファイル名を指定可能とする引数を追加した。 結果として、これまでRunNoごとに作成されていたPHX, PARファイル(中身は検出器配置や、マスクの条件が異ならない限り同じ)を一つに絞ることができる。

new arg

意味

注意点

phxfile

PHXファイル名

“default”だとこれまで通りspeファイルの 名前を使用

parfile

PARファイル名

以前に作成されたスクリプトでも動作するが、phxfileもparfileも”default”設定となる(結果もこれまで通り)。

また、SPEファイルを読み込んだときに強度がbin幅で割られるという古い仕様を削除した。

Jan 26 2021

[bugfix:0.3.7] The issue that error happens when argument of UtsusemiReductionCommon::NormByBinWidth(str) is empty.

Jan 18 2021

[bugfix:0.3.7] Typo on the gauss function formula for fitting.

Jan 15 2021

[bugfix:Utsusemi-SAS:4.0] The issue of error occurs on compile

4.0.210114 or later#

Jan 14 2021

[update:4.0] Remove useless intensity calculation step on pusing “Intensity Range Apply” button.

DetectMapの下部にある、”Intensity Range” の[Apply]ボタンを押した時に、TOF方向の範囲の再計算をしている部分を省いた。

単にプロット左側のスライドバーと同じ機能を持つはずの[Apply]ボタンが、同時にTOF方向の範囲を変更しての強度の再計算も行っていて、余計な時間がかかっていることに気がついたので修正した。

Jan 13 2021

[bugfix:4.0] The issue of the error occurs in DetectMap on changing values of “intensity ranges”

DetectMapで、Intensity Rangesの変更など強度の再計算をさせる部分で time.clock() というメソッドが使えないというエラーに対処した(削除しただけ)

Jan 13 2021

[bugfix:0.3.7] The issue that core dump occurs on READOUT creating histogram with time slice when beginning time [sec] is not 0.0.

READOUT系のヒストグラム化で、時間分解(SetRangeOfSingleTimeSlicing)の指定で最初の値として0以外の場合にコアダンプする問題に対処した。

UtsusemiEventDataConverterReadoutTemplate::CheckPulseIdTables()で、空のvectorに対しback()メソッドを行なったため。

Jan 12 2021

[bugfix:uGao:master] The issue of the error of launching M2PlotPlus on PySide environment

Jan 4 2021

[bugfix:4.0] The issue that script error happends

Jan 4 2021

[bugfix:Utsusemi-SAS:4.0] The issue that script error happends

Jan 4 2021

[bugfix:Utsusemi-DNA:master] The issue that script error happends

Older change history#