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>
<counter>のtype属性に”KICKCOUNT”を与える。
<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関連
Axis Labelに,が含まれていると、スライス時に失敗する問題に対応した
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関連の要望
以下のバグと要望に対応した
空蟬0.3.xのXtalParamを読み込むとエラー
Projectionのax4のデフォルト値がおかしい(バグ)
runlistの先頭にコメントアウトが欲しい(要望)
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のノードを利用側でアクセス、検索できるようにする。
特定のパスまでの ptreeのノードを取り出すメソッドを用意
与えられたノードから、さらにパスを与えて情報を取り出す手段をこれまでのメソッドに追加
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の連続スライスの問題
上記の課題に対し、以下を解決するために必要なメソッドを追加した。
元データは 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の連続スライスの問題
上記の課題に対し、以下を解決した。
元データは 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でのプロット時に表示されない。
また、同時にスライスの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の連続スライスの問題
上記の課題に対し、以下を解決した。
連続スライスで、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上にはスライスの方法として
中央値+-幅で指定する
範囲で指定する(積分的)
が用意されている。今回は、2.の連続スライスの機能に連続スライスを組み込んでいたが、そこに1.のやり方で実現したところに問題があるように思われる。
Range 0.4 - 1.0 delta 0.0 のとき、スライス範囲は 0.4-1.0
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.における連続スライスは
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の連続スライスの問題
プロットデータの横軸の強度が0.1から始まっている時に、X rangeを0.1 - 1.9, Binを0.2をするとエラー(by 山田さん at BL02)
連続スライスで境界領域において、同じ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スライス時に挙動がおかしい
に対応した。
現象
DetectMapのPSDデータをM2Plot+で表示する
無事にM2Plot+パネルとu2dplotパネルが表示
ここでM2Plot+パネルをClose
続けてDetectMapからPSDデータをM2Plot+で表示
ここで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関連の要望
以下の要望に対応した。
SPE出力およびnxspe出力で、プログレスバーに対応させる
連続回転測定データの出力nxspeファイル名に角度を入れ込む(これまではindexだった)
データ読み込みで読み込み中の状態であることをわかりやすくする
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で連続回転測定データ処理ができない
症状
連続回転測定で[Set Parameters]ボタンが効かない
連続回転測定での処理の途中で落ちる
対策
はStep by Stepの改良をした際に少し余計なことを行なっていたを修正
は、使用する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で回転測定測定のデータ処理ができるようにする
以下の項目に対処した
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で回転測定測定のデータ処理ができるようにする
以下の項目に対処した
manyo/UtsusemiD4Matrix
Inverted Geometryの挙動確認
Inverted Geometryのモードの切り替え機能
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への要望
以下に対応した。
要望とバグ
XtalParam.xmlの読み込み時のダイアログのCancel/YesをNo/Yesにすべき
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への要望
以下の要望に対応した
要望
D4Mat形式に変換するときに、”.xml”がファイル名に抜けていたら自動的に”.xml”を付加する
一通り処理を終えたのちにDataReductionパネルに戻り、Eiなどパラメータを変更した場合に[Set Parmeters]ボタンを押してもデータ処理ができない
対応
D4Mat形式で保存時にファイル名をチェックし、なければ”.xml”をつけるようにした
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のデータ保存・読み込み機能
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のデータ保存・読み込み機能
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対応
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対応
XtalParam.xmlの保存でスライズ情報が正しくない
XtalParamの保存で、.xml拡張子がないときに自動で .xmlをつける
に対応
にコメント
XtalParam.xmlの保存時に表示されているパラメータをセットしにゆくが、この機能は実行時と同じものを使用している。 その時に設定パラメータに問題がある場合、エラーを返すようになっている。 XtalParamの保存時は特にパラメータが間違っていても問題ないので(実行時にエラーになれば良い)強制的にパラメータセットするフラグを加えた。 (Energy情報やSliceのAxis Typeなどの整合性をチェックしている)
にコメント
ついでに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が動作しない問題に対応した
UtsusemiD4Matrix2::ExportEcmFromStepByStep実行中のコアダンプ
必要なデータがNULLになっていた(PAd, AAd)
D4Mat2SlicerのOnConvSPEFilesで実行エラー
Step by Stepの時のrunNoとmaskfileが未定義
FileDialogの戻り値ミス
ContRot時のdHWCorrect()未実行
保存時のファイル(spe,phx,par)の再定義
TreatSPE実行時にエラー
TreatSPEで必要となるヘッダ情報”TypicalPixelSize”がなかった UtsusemiD4Matrix2::ExportEcmFromStepByStepの戻り値にヒストグラム化直後ECMからヘッダ情報をコピーした
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対応
の
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
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
1Dプロットした時のラベルの単位が二重に表示 “Energy (meV) (meV)”
ツールバーに”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 を追加した。
additionalPath/<target>
${CurrentDir}/<target>
${UTSUSEMI_BASE_DIR}/${UTSUSEMI_INST_CODE}/ana/xml/<target>
${UTSUSEMI_USR_DIR}/ana/xml/<target>
/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