Change History 2026

Change History 2026#

Author:

Yasuhiro Inamura

Last Update:

Feb 24, 2026

4.0.260221 or later#

Feb 21 2026

[update:manyo:0.4RC] fixed README.md

Feb 21 2026

[update:Utsusemi-NVA:4.0] Add CMakelists.txt to enable to build with cmake and improve some codes.

  • CMakelists.txtとmanyo/CMakelists.txtを追加し、cmakeによるビルド可能とした

  • NVA.iにstd系を追記した

  • MergNova.ccでのビルド時のWarningに対処した(sprintf -> snprintf)

Feb 21 2026

[update:Utsusemi-TKtools:4.0] Add CMakelists.txt

CMakelists.txtとmanyo/CMakelists.txtを追加し、cmakeによるビルド可能とした

Feb 20 2026

[bugfix:Utsusemi:4.0] The problem that SequenceEditor cannot load user’s facade placed in UTSUSEMI_USR_DIR/facade on Utsusemi installed by debian packages.

DATA_RDCT-343 空蝉4:Debianパッケージ版で、私家版ファサードがimportされない

Debianパッケージ(Ubuntu アプリケーション)版空蝉において、自分で作成したファサードを利用する場合の UTSUSEMI_USR_DIR/facade に置かれたファサードが読み込まれない問題に対処した。

Feb 20 2026

[bugfix:uGao:master] The problem that scipy.signal occurs the error on the old version of scipy.

Feb 20 2026

[update:uGao:master] Rewrite SaveAsText in U2IFInDark (U2IFJupyter) to put the text data with the same format produced by M2Plot+ and add SetUnits method

DATA_RDCT-341 夕顔:M2Plot+のU2IFJupyer系列のSaveAsTextをGUI版と同じにしたい

GUIを表示せずにM2Plotの画像を保存したり、テキストに出力したりするU2IFInDarkであるが、SaveAsTextの出力フォーマットが、M2Plot+(GUI)やM2PlotPlusCuiから出力されるものと大きく異なっている。 それらが同じフォーマットになるように変更した。

  • U2IFInDark::SaveAsText はM2PlotPlusC::SaveAsTextと全く同じ引数と処理とした

  • 以前のSaveAsTextはメソッド名を変更→ SaveAsTextFromPlot

  • 各軸の単位(Unit)を変更するU2IFInDark::SetUnitsメソッドも追加

Feb 17 2026

[bugfix:Utsusemi:4.0] Fixed small bugs

Feb 17 2026

[update:Utsusemi-DNA:4.0] Improve CMakelists.txt to apply to latest Manyo library

CMakeでビルド・インストールする際の -DCMAKE_INSTALL_PREFIX ので与えるパスを、万葉ライブラリ(C++)およびPythonコードのインストール先の両方を含んだトップディレクトリとする。 (詳細は万葉ライブラリの更新を参照)

Feb 17 2026

[update:Utsusemi-SAS:4.0] Improve CMakelists.txt to apply to latest Manyo library

CMakeでビルド・インストールする際の -DCMAKE_INSTALL_PREFIX ので与えるパスを、万葉ライブラリ(C++)およびPythonコードのインストール先の両方を含んだトップディレクトリとする。 (詳細は万葉ライブラリの更新を参照)

Feb 17 2026

[update:Utsusemi-TKtools:4.0] Update do_make_Utsusemi.py

  • do_make_Utsusemi.pyを最新のものに変更

  • numpyのinclude先を自動的にC_INCLUDE_PATHに含めるようにした

Feb 17 2026

[update:Utsusemi-TKtools:4.0] Update codes to apply to latest Manyo-lib

DATA_RDCT-300 万葉lib:C++コードの名前空間の整理(極力クリーンに)

最新のManyoライブラリの変更に対応するようにいくつか修正を行った。

  • vector, cout, endl, stringなどにstd名前空間を付与

他に PyObject の使い方でNumpyのアップデートに伴い、引数の型チェックが厳しくなったために発生した問題に対処した

  • M2Slicer

Feb 16 2026

[bugfix:Utsusemi:4.0] The problem that X position and Y position are swapped on the histogram creation for the WLSF

WLSFのヒストグラム化において、DetectMapデータとしてみた時にX軸とY軸が逆転していた問題に対処した。

Feb 13 2026

[update:Utsusemi:4.0] Update some visualization codes to avoid the DeprecationWarning: setDaemon() is deprecated, set the daemon attribute instead th.setDaemon(True)

Feb 13 2026

[bugfix:Utsusemi:4.0] The problem that ReadTrigEvent causes errors when TrigNET event file size is smaller than information in T0B file.

DATA_RDCT-342 空蝉4:D4Mat2Slicer連続回転測定時TrigNETの読み込みがエラーのときの対応

測定中のデータを読み込む時に、TrigNETイベントファイルの大きさが、T0Bに書かれている情報よりも小さい場合にエラーとなる。

ERROR : UtsusemiFilterTrignet::ReadTrigEvent : Cannot read enough event data from file (ReadingNumOfEvents,ii)4481,4500)

この結果、UtsusemiFilgerTrignet::MakeCaseTable が実行されず、正しくCaseTableが作成ないため、データはおかしくなる。 この問題に対処した。

  • 読み込めないのは最後の一部のみなので、少しでも読めていればそれを利用してMakeCaseTableを実行するようにした

  • この場合はERRORではないと考えてWarning扱いとする

  • ii変数がループ内で初期化されていないので上記のメッセージに示された数値もおかしい(ReadingNumOfEvents < ii)ので修正した

  • 表示するメッセージをWarningの内容に合わせてわかりやすくした

Feb 10 2026

[bugfix:Utsusemi:4.0] The problem that TimeIndependent background correction does not work on D4Mat2Slicer GUI with the continuous rotation measurement.

DATA_RDCT-339 空蝉4:D4Mat2Slicerの連続回転測定時にTimeIndependentなバックグランド処理が行われていない疑惑

調査したところ、 TOF:xxxx-yyyy と指定した場合に、StepByStepでの内部処理GetDataOfMonochroEi3ではうまく処理していたが、D4Mat2Slicerの連続回転測定データ処理時には処理されていなかった。 その問題に対処した。

D4Mat2Utils::MakeTempInfoFilesにてWiringInfoを作成する際にUtsusemiGetNeunetHistogram::SetTimeDependBackGroundInfoを使用するが、最終的に TIMDEP というキーコードに変換しなくてはならなかったのに行っていなかった。

Feb 10 2026

[update:Utsusemi:4.0] Change the default font size to 10 from 14 on some GUI codes

Feb 10 2026

[update:uGao:master] Change the default font size to 10 from 14

Feb 8 2026

[bugfix:Utsusemi:4.0] The problem that error messages “QFont::setPointSize: Point size <= 0 (-1), must be greater than 0” appear at PySide6 (6.10.1) on Windows.

PySide6 (6.10.1) on Windowsで、Qtアプリを起動すると下記のメッセージが死ぬほど現れる問題に対処。

QFont::setPointSize: Point size <= 0 (-1), must be greater than 0

これは、Qtアプリのなかでのフォントサイズの指定方法が古すぎたせいのようだ。

app = QtWidgets.QApplication(sys.argv)

deffont = app.font()
deffont.setPixelSize(12)
app.setFont(deffont)

これを以下のように書き換えるべし。

app = QtWidgets.QApplication(sys.argv)

deffont = app.font()
deffont.setPointSize(12)
app.setFont(deffont)
Feb 8 2026

[bugfix:manyo:0.4RC] The problem that the build error occurs on Windows

Feb 7 2026

[bugfix:uGao:master] The problem that error messages “QFont::setPointSize: Point size <= 0 (-1), must be greater than 0” appear at PySide6 (6.10.1) on Windows.

PySide6 (6.10.1) on Windowsで、Qtアプリを起動すると下記のメッセージが死ぬほど現れる問題に対処。

QFont::setPointSize: Point size <= 0 (-1), must be greater than 0

これは、Qtアプリのなかでのフォントサイズの指定方法が古すぎたせいのようだ。

app = QtWidgets.QApplication(sys.argv)

deffont = app.font()
deffont.setPixelSize(12)
app.setFont(deffont)

これを以下のように書き換えるべし。

app = QtWidgets.QApplication(sys.argv)

deffont = app.font()
deffont.setPointSize(12)
app.setFont(deffont)
Feb 6 2026

[update:uGao:master] Improve arguments in U2IFJupyter::SetXScale, SetYScale, SetRange to set None value for using the auto scale value.

DATA_RDCT-331 夕顔:M2Plot+の軸範囲指定時の要望

U2IFJupyter (U2IFInDark) の、SetXScale, SetYScale, SetRange に関して、範囲指定の値に None を入れるとAuto Scale時の値が使用されるようにした。

  • u2dplotBase.py

  • D2Chart::PlotD2Chart内で、それぞれの軸で与えられたrange値がNoneならデータの最大範囲の値を使用するようにした

  • U2IFJupyter.py

  • U2IFJupyter::SetXScale, SetYScale, SetRange で 値がNoneの場合の処理(Noneを設定する)を行うようにした

  • SetRangeをラッパーするSetIntRangeを用意した

Feb 6 2026

[bugfix:Utsusemi-SAS:4.0] The problem that VisualModule::AddToMPlot can not import data container list as argument

Feb 5 2026

[update:manyo:0.4RC] fix the folder name

Feb 5 2026

[bugfix:uGao:master] Fixed a bug and add docstrings of some methods in U2IFJupyter

Feb 5 2026

[bugfix:uGao:master] The problems tha the argument interval does not work in U2IFJupyter::SetHGred and SetVGrid

Feb 2 2026

[update:Utsusemi-DNA:4.0] Update BaseCommandsDNA::OutputECADAVEText and EfficiencyCorrection::ExecEfficiencyCorrection

Feb 2 2026

[update:Utsusemi-DNA:4.0] Add WiringInfo

Feb 2 2026

[update:Utsusemi-DNA:4.0] Update SQWqt.py by Dr. Yamada@CROSS

Jan 26 2026

[bugfix:manyo:0.4RC] The problem that the warning occurs on compiling codes including ElementContainerArray.Add(ElementContainer) method.

ElementContainerArray.Add(ElementContainer)が含まれているコードをコンパイルしたときに、下記のようなWarningが出現した。

warning: catching polymorphic type ‘class std::bad_alloc’ by value [-Wcatch-value=]
148 |   catch( std::bad_alloc error ){
|                         ^~~~~

以下のように修正。

catch( const std::bad_alloc& error )
Jan 26 2026

[update:Utsusemi-DNA:4.0] Rewrite codes in manyo-LevmarTools to reduce the warning messages on building in Linux.

manyo-LevmarToolsのコンパイル中にWarningが多数出現する。それらを精査し必要な修正を加えた。

ロジックのエラー

AdvModelSmallAngle.cc 条件分岐が逆であったのを修正

/usr/include/stdlib.h:483:23: warning: argument 1 null where non-null expected [-Wnonnull] 483 | return (int) strtol (__nptr, (char **) NULL, 10); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/features.h:502, from /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h:679, from /usr/include/c++/13/cstdlib:41: /usr/include/stdlib.h: In member function ‘void AdvModelSmallAngle::SetFuncParam(const char*)’: /usr/include/stdlib.h:215:17: note: in a call to function ‘long int strtol(const char*, char**, int)’ declared ‘nonnull’ 215 | extern long int __REDIRECT_NTH (strtol, (const char *__restrict __nptr, AdvInsMEM.cc

変数(nmin/nmax)を定義する場所がおかしいので修正

intとsize_typeの変換

warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
71 |     for (int i=0;i<ResX.size()-1;i++)
|                  ~^~~~~~~~~~~~~~

こちらについては、intではなく、long unsigned int つまりUInt4を使用するようにした

Jan 25 2026

[bugfix:Utsusemi-DNA:4.0] The problems that some codes in manyo-LevmarTools show the warning on compiling.

manyo-LevmarToolsのコンパイル中にWarningが多数出現する。それらを精査し必要な修正を加えた。

バグであるので、修正したWarning

  • warning: variable length arrays in C++ are a Clang extension

char buffer[length_buffer];
->
char* buffer = new char[length_buffer]
...
delete [] buffer;
  • warning: ‘snprintf’ will always be truncated; specified size is 8, but format string expands to at least 9

    • sizeof(buffer)` を length_buffer に置き換え

if( !(std::strlen(buffer)) || !(std::snprintf(buffer, sizeof(buffer), "%f", omega)) )
->
if( !(std::strlen(buffer)) || !(std::snprintf(buffer, length_buffer, "%f", omega)) )
  • warning: ‘sizeof (dest)’ will return the size of the pointer, not the array itself

    • sizeof (*dest) に置き換え

できるところは修正したWarning(できないところもある)

  • warning: variable ‘hoge’ set but not used : 不要な部分はコメントアウト

  • warning: unused variable ‘hoge’ : 不要な部分はコメントアウト

  • warning: variable ‘hoge’ is uninitialized when used here : 初期化する

Jan 23 2026

[update:uGao:master] Add new “SetSmoothing” method in U2IFJupyter(U2IFInDark) as same as M2PlotPlusCui

U2IFJupyter (U2IFInDark) を少しだけ使いやすくした。

  • SetSmoothという使いにくいメソッドがあったが、それに加えてM2PlotPlusCuiと同じメソッドが使えるようにした

  • SetColorMapに設定する文字列がわかりにくいので、間違っていたら有効な(使える)文字列を表示するようにした

Jan 20 2026

[update:Utsusemi:4.0] Remove the dependency of python3 packages from the utsusemi-with-ugao debian packages.

Ubuntu 24以降ではaptでインストールされるpython3-matplotlibなど必要なパッケージのバージョンが微妙に古いため、venv + pipを利用する方法に切り替えることにしている。 しかし空蝉インストールDebianパッケージは、その依存パッケージとしてpython3関連のライブラリを指定している。 そのため空蝉インストール時に自動的にパッケージがインストールされてしまう。 これはvenv + pipを利用するには不適切(無駄)なので、その依存パッケージの指定を外す設定を行った。

4.0.260116 or later#

Jan 19 2026

[bugfix:Utsusemi:4.0] The problem that DetectMap app cannot be launched on old matplotlib version.

DATA_RDCT-301 空蝉夕顔:2D系プロッタのToolbarのPanおよびZoom機能が動作しない(matplotlib 3.9.0)

新しいmatplotlibでPanやZoom機能が動作しない問題に対処した際に、逆に古いmatplotlibで動作しなくなった(BL02)ため、matplotlibのバージョンが3.3以上で新しい方法を用いるようにし、3.3未満では以前の方法を利用するようにした。

Jan 16 2026

[update:Utsusemi:4.0] Improve D4Mat2 methods for CUI control with loaded binary data.

DATA_RDCT-336 空蝉4:D4Mat2SlicerのCUIで.d4mzファイルを読み込んでスライスしたらCoreDump

問題点:

d4mzファイルを読み込んでProjection処理を行う際に、これまで下記のようにSample Info関連のパラメータを入力する必要があった。

D4M = mu.UtsusemiD4Matrix2()
D4M.ClearAll()
D4M.LoadData(inputFile)
## set Sample Info
D4M.SetD4MatSampleInfo(LatticeConst, Uvector, Vvector, RotateSteps)
## Projection
D4M.Projection(ProjAxes)

本来、Sample Infoはd4mzファイルに(XtalParamの形で)含まれていて読み込まれているのに、再度指定するのは美しくない。よって、LoadDataしたときに内部でSample Infoをきちんと取り込むようにした。

  • LoadData時にSetCrystalParametersToHeader、SetD4MatProjectionAxesInfoを実行しProjectionに必要な情報を設定

  • Projection():引数なしを定義し、内部のviewAxis情報を利用するようにした

  • 確認のため、DumpInnerHeader()を追加した

結果として、CUIでのスクリプトがシンプルになった。

D4M = mu.UtsusemiD4Matrix2()
D4M.ClearAll()
D4M.LoadData(inputFile)
D4M.Projection(ProjAxes)
Jan 15 2026

[bugfix:Utsusemi:4.0] The problem that CUI of D4Mat2Slicer occurs core dump on executing Slice2d.

DATA_RDCT-336 空蝉4:D4Mat2SlicerのCUIで.d4mzファイルを読み込んでスライスしたらCoreDump

D4M.Slice2d(sliced_eca, ax1, ax2, ax3, ax4, ax_dFold, ax_units)

を実行すると [2026/01/15 14:19:00] ERROR : UtsusemiSqeCalc2:: _MakeProjectionMatrix >>> viewAxes size is invalid. というエラーが出て結果的にCore Dumpする。

理由:

Projection(PyObj*) を実行した際にメモリセーブモードだった場合に、 引数で与えた viewAxis の値がメンバー変数に引き継がれなかったからである。そのためメンバー関数を利用してProjection Matrixを作成しようとして、EmptyのviewAxisを利用した結果、EmptyのProjection Matrixが作成された。 データの座標変換のために本来サイズ16の Projection Matrixが必要であるが、サイズが0であったためにメモリに不正にアクセスし、Core Dumpを引き起こした。

メモリセーブモードでなければエラーが出なかったので、このバグには気づかなかったかも。

対策:

  • 与えられた`viewAxis` のサイズが16でなければFalseを返すようにした

  • メモリセーブモードでも引数として与えられた viewAxis をメンバー変数 _viewAxis にコピーするようにした

  • 空の _viewAxis を使用して正常でないProjection Matrix(サイズが16でない)が返ってきた場合に、座標変換処理をしないようにした

Jan 15 2026

[bugfix:uGao:master] The problem that the maximum value becomes MASKVALUE when data includes MASKVALUE on M2Plot+

DATA_RDCT-331 夕顔:M2Plot+の軸範囲指定時の要望

Auto Scaleを押した時に最大値を計算するが、単純に max() 関数を利用するとMASKVALUE=1e100に指定しているので、その値が反映される問題に対応。

最大値を取り出す時に内部でMASKVALUEの値は無視して取り出すように変更した。

params.range = (self.u2.plot.data[0].min(), self.u2.plot.data[0].max())

tmp_array = np.array(self.u2.plot.data[0])
masked_arr = np.ma.masked_where(tmp_array >= MASKVALUE, tmp_array)
params.range = (self.u2.plot.data[0].min(), float(masked_arr.max()))
Jan 9 2026

[update:uGao:master] Improve the M2Plot+ behaviors when turning checkboxes for auto scale and add so on

DATA_RDCT-331 夕顔:M2Plot+の軸範囲指定時の要望

  1. M2Plot+のパネルで、Auto Scale チェックボックスのチェックを入れた時に、Rangeの値がAuto Scale時の値に戻らない仕様だったが、戻るように変更

  2. M2Plot+のCUIで強度や軸のスケールを変更する際に、範囲のどちらかをAutoにする方法がなかったので、その機能を追加

  3. M2Plot+のCUIで強度や軸のAutoScaleを設定する関数を追加した

  4. M2Plot+の内部で使用されるSetAutoScaleイベントの呼び出しの引数が発出側と受け手側で仕様が異なっていたため修正

2の機能詳細

引数として範囲を与える際にAutoにしたい値を数値ではなく None にすることにした。なお引数なしの場合(もしくは両方None)はAutoScaleのモードを切り替えとなる。これらの使用は、強度、X軸、Y軸の全てで同等である。

3の機能詳細

SetIntScaleAuto() , SetXScaleAuto() , SetYScaleAuto() はそれぞれ強度、X軸、Y軸のAutoScaleをOnにする

import uGao.M2PlotPlusCui as MP

p = MP.M2PlotPlusCui(DAT)
p.ShowData()

# 強度の最低値をだけを指定したい場合
p.SetIntScale(5, None)

# X軸の最大値だけを3.5に指定したい場合
p.SetXScale(None, 3.5)

# X軸をAutoにしたい場合
p.SetXScaleAuto()
Jan 8 2026

[bugfix:Utsusemi:4.0] The problem that swig/python detectes a memory leak after executing UtsusemiEventDataConverterNeunetWithPH::PutPulseHeightAll / PutPulseHeightOfDet.

  • UtsusemiEventDataConverterNeunetWithPH::PutPulseHeightAllなど、メモリリークを起こしそうな関数(ElementContainerを直接戻り値とする関数)を、結果を戻り値ではなく引数のポインタで渡すように変更した

  • BaseCommands:GetPH内で使用している PutPulseHeightAll の使用方法をメモリリークのない方法へ変更した

Jan 7 2026

[bugfix:Utsusemi:4.0] Fixed import error : from scipy import array exp

Jan 7 2026

[bugfix:Utsusemi:4.0] The problem that swig/python detectes a memory leak after executing AverageElementContainerMatrix::GetAverage and GetSum methods

MLF/AverageElementContainerMatrix::GetAverageおよびGetSumの戻り値(ElementContainer)がメモリリークを起こしているらしく、下記のようなメッセージが出る。

swig/python detected a memory leak of type 'ElementContainer *', no destructor found.

そこでこれらの関数の実行結果を戻り値ではなく、引数で与えたElementContainerで戻す関数(以下)で置き直した。 これらの関数は万葉ライブラリ0.4RC_260107以降で有効となっているので注意。

  • bool GetAverage(ElementContainer* ec)

  • bool GetSum(ElementContainer* ec)

こちらの関数を使うことで、下記の関数でこれまで生じていた上記のメモリリーク表示がなくなった。

  • python-utsusemi/ana/Reduction/BaseCommands.py

  • AverageAll

  • IntegPixels

  • python-utsusemi/ana/Reduction/BaseCommandsInEla.py

  • GetEiFromEvent

  • RadialCollimatorCorrectSIK

Jan 7 2026

[update:manyo:0.4RC] Add new methods GetAverage(ElementContainer*) and GetSum(ElementContainer*) of AverageElementContainerMatrix class

MLF/AverageElementContainerMatrix::GetAverageおよびGetSumの実行結果を引数で渡したElementContainerで戻すようにした。

  • bool GetAverage(ElementContainer* ec)

  • bool GetSum(ElementContainer* ec)

こちらの関数を使うことで、これまでの戻り値がElementContainerだった旧関数を使用した際に発生する下記のエラーがなくなった。

swig/python detected a memory leak of type 'ElementContainer *', no destructor found.

あと、いくつかのコメントを修正した。