Changelog

1.0.0 (31 July 2020)

  • Improvement

    • Improve FFT of image in feature extraction. PR #268
    • Improve fitting interface. PR #265
    • Add reset panel in the main GUI. PR #264
    • Update default config files. PR #262
    • Improve azimuthal integration performance. PR #261, PR #268
    • Revert y-axis orientation change. PR #260
    • Add Python binding for double dtype in generalized geometry. PR #259
  • New Feature

    • Implemented pulse-resolved correlation in special suite. PR #270
    • Add curve fitting in histogram window. PR #267
    • Support streaming Basler camera from files. PR #266
    • Add more fitting types, Gaussian, Lorentzian and erf. PR #265
    • Add pump-probe FOM to histogram window. PR #263
    • Reset moving average in correlation scan mode. PR #263

0.9.1 (15 July 2020)

  • Bug Fix

    • Fix transform type update in TransformView in ImageTool. PR #251
  • Improvement

    • PlotItem will not be shown in legend if its name is empty. PR #254
    • Improve y2-axis plot implementation. PR #253
    • Improve stack detector modules. PR #247
    • Implement ScatterPlotItem to replace the pyqtgraph one. PR #238
  • New Feature

    • Implement curve fitting in correlation window. PR #255
    • Implement azimuthal integration and concentric ring detection in C++. PR #252

0.9.0 (30 June 2020)

  • Bug Fix

    • Fix bug in data source tree introduced in 0.8.4. PR #235
    • Fix transparent Nan pixel with the latest pyqtgraph version. PR #231
  • Improvement

    • Improve performance of PlotCurveItem and add benchmarks for PlotItems and ImageViewF. PR #243
    • Make ctrl widgets in Imagetool more compact. PR #241
    • Improve C++ code quality and suppress TBB deprecate warning. PR #239
    • Add meter bar to plot area. PR #236
    • Reimplement ImageItem and PlotItem to replace the pyqtgraph ones. PR #232, PR #242
    • Improve data source updating and color encoding matched source items in the data source tree. PR #230, PR #234
    • Rename configurator to analysis setup manager and allow take snapshot for each setup. PR #228
    • Update data source and trouble shooting in documentation. PR #227
    • Add summary of compiler flags for EXtra-foam-python. PR #226
    • Update installation (gcc7) and CI (gcc8). PR #226
    • Rename misleading mouse mode in the right-click context menu. PR #211
    • Update pyqtgraph to the latest master branch. PR #206, PR #211, PR #233
  • New Feature

    • Annotate peaks in azimuthal integration view. PR #240
    • Enable Legend for all the plot items. PR #206, PR #237
    • Implement logarithmic X/Y scale in right-click context menu. PR #206
    • Enable C++ API installation and add examples. PR #227

0.8.4 (8 June 2020)

  • Bug Fix

    • Beam size in the bar plot will change when the resolution changes in the correlation analysis. PR #209
  • Improvement

    • Update Redis versions: server -> 6.0.5; redis-py -> 3.5.2; hiredis-py -> 1.0.1. PR #220
    • Slightly improve image proc C++ code performance on machines with few threads. PR #219
    • Visualize data type in data source Tree. PR #218
    • Improve the performance of pulse filter. PR #214
    • Improve setup.py. PR #212
    • Keep data when resolution changes in correlation analysis; move sequence classes into algorithms/data_structures. PR #209
    • Mask ASIC edge when n_modules == 1; simplify geometry binding code. PR #207
    • Add benchmark for generalized geometry. PR #205
    • Make special suite more self-contained. PR #204
    • Mask JungFrau and JungFrauPR. PR #200
    • Move statistics ctrl widgets into corresponding windows. PR #199
  • New Feature

    • Color encoding matched sources in the data source tree. PR #220
    • Add processed pulse counter in ImageTool. PR #216
    • Add support for C++ API. PR #213
    • Add xtensor-blas as a submodule. PR #210
    • Implement image transform processor and view (FFT, edge detection). PR #203
    • Integrate Karabo gate (PipeToEXtraFoam device) which allows request pipeline and control data in special suite. PR #168

0.8.3 (11 May 2020)

  • Breaking change
    • In the terminal, “–n_modules 2” is required to run JungFrauPR with two modules. PR #41
  • Bug Fix
    • Change pixel size of ePix100 from 0.11 mm to 0.05 mm. PR #189
  • Improvement
    • Mask tile/ASIC edges by default. PR #192
    • Improve geometry 1M and its unittest. PR #190
    • Invert y axis for displayed image. PR #187
    • Rename geometry to geometry_1m in C++. PR #186
    • Improve tr-XAS analysis in special suite. PR #163, PR #183
    • Improve correlating error message. PR #182
    • Improve documentation for special suite. PR #177
    • New reset interface in special suite. PR #170
    • Regularize names of methods and attributes in special suite. PR #167
    • Add new mode, start/end train ID control and progress bar, etc. in FileStreamer. PR #166
    • Move definition of meta source from config to SourceCatalog. PR #165
    • Use correlated queue in special suite. PR #164
    • Improve shape comparing error message in C++. PR #160
    • Improve mask image data implementation and interface. PR #157
    • Move image assembler into image processor. PR #155
    • Refactor masking code. PR #149
    • Implement generic binding for nansum and nanmean. PR #114
  • New Feature
    • Add axis calibration in Gotthard analysis. PR #179
    • Implement generalized geometry for multi-module detectors. PR #175, PR #196
    • Implement streaming JungFrauPR data from files. PR #174
    • Implement Gotthard pump-probe analysis in special suite. PR #173, PR #178
    • Add ROI histogram in CameraView in special suite. PR #172
    • Add ROI control in special suite. PR #171
    • Implement XAS-TIM-XMCD in special suite. PR #162
    • Implement MultiCameraView in special suite. PR #147
    • Implement XAS-TIM in special suite. PR #146
    • Implement load and save mask in pixel coordinates. PR #132, PR #154, PR #185, PR #191, PR #197

0.8.2 (8 April 2020)

  • Bug Fix

    • Fix not able to close file stream process when closing, if the file stream window is opened through the main GUI. PR #122
    • Fix offset correction switch between dark and offset. PR #141
  • Improvement

    • Move mouse hover (x, y, v) display implementation to ImageViewF. PR #148
    • Visualize dark and offset separately. PR #141
    • Improve loading reference image and calibration constants. PR #141
    • Implement smart auto levels of image. PR #138
    • Enhance SourceCatalog.add_item. PR #137
    • Improve class init with moving average descriptor. PR #136
    • Bump EXtra-data version and remove duplicated code. PR #131
    • Tweak assembling code in C++ to make the result exactly the same as EXtra-geom. PR #129
    • Simplify ImageProc binding code. PR #125
    • Update dependencies. PR #118
    • Update documentation. PR #115, PR #130
    • Move tr-XAS analysis to special suite. PR #89
  • New Feature

    • Generalize file stream. PR #122
    • Add standard deviation, variance and speckle contrast into ROI FOM. PR #119
    • Implement tile edge mask for modular detectors. PR #110
    • Add support for fast ADC as a digitizer source. PR #101
    • Implement Camera view (special suite). PR #89
    • Implement Gotthard analysis (special suite) for MID. PR #89
    • Implement interface and examples for special analysis suite. PR #89

0.8.1 (16 March 2020)

  • Improvement

    • Automatically reset empty image mask with inconsistent shape. PR #104
  • New Feature

    • Implement AGIPD 1M geometry in C++. PR #102
    • Add ROI1_DIV_ROI2 as an option for ROI FOM. PR #103
    • Implement normalization for ROI FOM. PR #96
    • Implement ROI FOM master-slave scan. PR #93
    • Add branch-based CI and Singularity image deployment. PR #92
    • Add support for ePix100 detector. PR #90
    • Implement save and load metadata. PR #87

0.8.0.1 (3 March 2020)

  • Bug Fix

    • Fix display bug in ImageTool PR #85

0.8.0 (2 March 2020)

  • Improvement

    • Get rid of the artifact induced by masking pixel to zero when calculating statistics, e.g. mean, median, std.
    • Provide a mask to pyFAI to perform azimuthal integration. PR #61
    • New C++ implementation to mask pixel in Nan and/or return a boolean mask. PR #61
    • ROI pulse FOM and NORM will only be calculated after registration. PR #61
  • New Feature

    • Enable train-resolved FOM filter. PR #78
    • Display numbers of processed and dropped trains. PR #77
    • Support online single module data from a modular detector. PR #72
    • Allow type selection for 1D projection (sum or mean). PR #71
    • Implement mouse cursor value indicator for PlotWidgetF. PR #66
    • Preliminary implementation of nanmean and nansum in C++. PR #61
  • Bug Fix

    • Fix pulse-filter in digitizer. PR #80
    • Fix gain/offset slicer for train-resolved detectors. PR #76
    • Use nansum in Tr-XAS analysis. PR #75
    • Fix typo in unittest. PR #74
    • Fix changing device ID in data source on the fly. PR #69

0.7.3 (24 February 2020)

  • Breaking change

    • In the terminal, “–topic” becomes a positional argument. PR #41
  • Improvement

    • Reimplement Color classes. mkPen and mkBrush from pyqtgraph are not needed anymore. PR #53
    • Allow select pipeline policy (wait or drop) via commandline. The default is wait since the data arrival speed is slower than the processing speed during online analysis. PR #45
    • Replace Python’s build-in queue.Queue to speed up data transfer. PR #45
    • Improve the visualization of heatmap. PR #44
    • Allow starting instances with different detectors without warning message. PR #41
    • Allow to shutdown others’ Redis server to avoid zombie Redis server occupying the port. PR #41
    • Implement Fast assembling for LPD and DSSC in C++. PR #40
    • Resign the config code. Now each instrument will has its own config file, e.g. scs.config.yaml, fxe.config.yaml. All the instrument sources will be set up in the config file. PR #38
    • Implement streaming raw (AGIPD, LPD) data from files and also ‘confirmed’ streaming raw (AGIPD, LPD) data online. PR #38
  • New Feature

    • Allow specific bin range of histogram. PR #56
    • Provide ROI histogram for train-resolved detectors; Provide ROI histogram for the averaged image of pulse-resolved detectors. PR #56
    • Display mean, median and std for all histogram plots. PR #56
    • ROI histogram for pulse-resolved detectors. PR #55
    • Double-y plot for 1D binning. PR #53
    • Support normalizing by digitizer (TIM). PR #52
    • Support multiple ZMQ endpoints connections. PR #45
    • Automatically correlate data from the same/different endpoints with train ID. PR #45
    • Allow automatically choosing bin range. PR #44
    • Also add an option to stack the detectors (LPD and DSSC) without assembling. PR #40
    • Control required sources in the DataSourceTree. PR #38
    • Allow filtering by value for all non-detector data sources. PR #38
    • Implement AdqDigitizer processor. PR #38
  • Bug Fix

    • Fix default AGIPD geometry. PR #62
    • Disable pulse slicer for train-resolved detectors in DataSourceTree and gain/offset correction. PR #56
    • Fix logger level. PR #41
    • Fix extra-foam-kill. PR #41

0.7.2 (16 January 2020)

  • Improvement

    • Remove ‘AZIMUTHAL_INTEG_RANGE’ from configuration PR #32
    • Remove ‘process monitor’ from action and make it a tab in DataSourceWidget PR #32
    • Reduce the update frequency of plots which accumulates data, for example, correlation, histogram, heatmap, etc., to 1 Hz PR #31
    • Improve Redis server configuration PR #29
    • Allow ImageViewF.setImage(None) PR #28
    • Provide better interface for users to call C++ code PR #25
    • Log geometry change and remove ‘AZIMUTHAL_INTEG_POINTS”, “CENTER_X”, “CENTER_Y” from configuration PR #24
    • Rearrange C++ code and separate benchmark code from unittest PR #15
    • Re-implement PairData -> SimplePairSequence and AccumulatedData -> OneWayAccuPairSequence PR #14
    • Re-implement BinProcessor. Now, data history is stored and users can re-bin it at anytime PR #14
    • Reduce MAX_QUEUE_SIZE from 5 to 2 to reduce latency PR #14
    • Remove ‘update_hist’ in PumpProbeData and CorrelationData. Now GUI update is completely decoupled from processors PR #14
    • Merge CorrelationWindow into StatisticsWindow. Rename the old statistics widgets to histogram widgets; add a new tab in the MainGUI which is dedicated for ‘statistics’ control PR #14
    • Update dependencies PR #11
    • Simplify ThreadLogger code PR #10
  • New Feature

    • Implement q-map visualization PR #32
    • Implement pixel-wise gain-offset correction by loading numpy array from files PR #25
    • New ROI analysis interface (enable different FOMs of ROI; enable pulse-resolved ROI normalizer; enable pulse-resolved ROI1 +/- ROI2 FOM; enable visualization of ROI projection and pulse-resolved ROI FOM in ImageTool) PR #12
  • Bug Fix

    • Fix a bug in MovingAverageScalar and MovingAverageArray. Setting a new value of None will reset the moving average instead of being ignored PR #14

0.7.1 (4 December 2019)

This is the first release after migrating from EuXFEL gitlab to github!!!

  • Improvement

    • Rename omissive fai to foam and change config folder from karaboFAI to EXtra-foam PR #6
  • Test
    • Migrate CI from EuXFEL gitlab to public github PR #1

0.7.0 (25 November 2019)

  • Improvement

    • Change supporting email, (long) description and header content in each file #174
    • Regularize Qt imports #173
    • Re-arange the GUI interface and move image related control into ImageTool #171
    • Add hiredis-py as dependency and improve redis connection infrastructure #170
    • Remove (canvas, dockarea, flowchart, multiprocess) from pyqtgraph code base #155
  • New Feature

    • Support online FCCD raw data analysis #169
    • Publish available data sources in Redis and improve infrastructure in client proxy #166
  • Bug Fix

    • Clean-up thread logger gracefully #170

0.6.2 (15 November 2019)

  • Improvement

    • Code clean up and improve base classes in GUI #164
    • Improve image processing code in cpp (align with xfai) #159
    • Enhance ImageTool interface (integrate functions in DarkRunWindow and OverviewWindow) #158
  • New Feature

    • Introduce special analysis interface (implement tr-XAS) #165
    • Add an option to not normalize VFOM #162
  • Bug Fix

    • Pulse slicer will also slice the stored dark images #165

0.6.1 (28 October 2019)

  • Improvement

    • Remove XAS related code (GUI, processor, etc.) !154
    • Update import location of ZMQStreamer !151
    • Improve system information summary interface and enable detecting GPU resources !138
  • New Feature

    • Implement normalization by XGM pipeline data !157
    • New data source management interface !157
    • Implemented web monitor in Dash !152

0.6.0 (31 August 2019)

  • Bug Fix

    • Assembling image from files, when non-detector source available in data !140
    • Add mid specific data sources in ctrl widget !139
  • Improvement

    • Code clean-up ! 138
    • Remove moving average of images !128
    • Display number of filtered pulses/train in OverviewWindow !128
    • Raise StopPipelineError in ImageProcessorPulse instead of ProcessingError !128
  • New Feature

  • Test

0.5.5 (26 August 2019)

  • Bug Fix

    • Fix user defined control data in 1D binning analysis !134
    • Fix image mask in pulse-resolved ROI !133
  • Improvement

    • Allow instrument sources to stream apart from DET !135
    • Allow shutdown idling karaboFAI instance remotely !130
    • Rearrange plot widgets !121
    • Improve the API for C++ image processing code !116 !129
    • AGIPD also works with bridge data with ‘ONDA’ format !115
  • New Feature

    • Add statistics plot for pulse of interest !127
  • Test

0.5.4 (20 August 2019)

  • Bug Fix

    • Fix bug if shape changes when using out array for assembling !122
  • Improvement

  • New Feature

    • Support pulse-resolved and two-module JungFrau !83
  • Test

0.5.3 (16 August 2019)

  • Bug Fix

    • Fix series nan mean two images !106
  • Improvement

    • Introduce ‘TOPIC’ to separate instrument specific sources !114
    • Implement masking image in cpp !110
  • New Feature

    • Implement DarkRunWindow !109
    • Allow save image and load reference in ImageTool !107
  • Test

    • Integrate cpp unittest into setuptools and CI (both parallel and series) !110

0.5.2 (9 August 2019)

  • Bug Fix

  • Improvement

    • Prevent costly GUI updating from blocking data acquisition !101
    • Improve nanmean performance when simple slice is not applicable !97
    • Add output array in image assembly !85
  • New Feature

    • List critical information of a run in FileStreamer window !103
    • Implement AboutWindow !102
    • Pulse slicing and data reduction !99
    • New widget SmartSliceLineEdit !98
  • Test

0.5.1 (5 August 2019)

  • Bug Fix

    • Capture exception when trying to kill others’ instance !93
    • Add AGPID detector in FileServer !90
    • Fix when a new detector key cannot be found in an old config file !87
  • Improvement

    • Implement parallel version of xt_nanmean_images !91
    • Delete detector data in raw data after Assembling !88
    • Update geometry file and default quad positins for DSSC !86
    • Make compiling with TBB and XSIMD default !84
  • New Feature

    • Added MID_DET… source to list in AGIPD dict in config.py !94
  • Test

    • Unittest statistics #82
    • Unittest for command proxy #81