Change Log#

1.3.0: 2024/02/28#

  • core
    • add Task to create screenshots on the gallery

    • scan
      • rename hdf5tomoscan.HDF5TomoScan to nxtomoscan.NXtomoScan (PR 609)

  • gui
    • propose colormap histogram by default (PR 642)

    • improve handling of eisting Qt path (PR 704)

    • improve vignettes: users can now ask for a specific number of column (PRs 622, 636)

  • orangecanvas
    • rename ‘datas’ link to ‘serie’ (PR 654)

  • axis (aka axis of rotation finder)
    • allow user to enter a value from the bottom QLineEdit (PR 655)

    • notify from background color if a line waits to be validate (PR 655)

    • provide access to latest nabu algorithm (fourier-angles and octave accurate) (PR 689)

    • extend access to near parameter

    • add an alias ‘near’ to the ‘composite-coarse-to-fine’ algorithm

    • improve +180 angle. Look now on both side: -180 and +180 (PR 621)

  • cast-volume
    • move default output to uint16

  • data-list
    • allow the user to select between two display mode (short or full url) PR 648

  • data-viewer
    • use ‘histogram’ display mode to colormap dialog by default

  • future-supervisor
    • fix job conversion (PR 696)

  • nabu slice
    • allow reconstruction over different place (PR 683)

    • add Vo and mean-subtraction / division deringer

    • allow slice to be reconstructed over different plane (PR 683)

  • icat
    • add a first prototype to publish to processed data to icat. Not accessible from orangecanvas for now. (PR 647)

  • saaxis (aka multi-cor )
    • use nabu-multicor instead of nabu (PR 593)

    • remove ‘tomo-consistency’ score to speed up

    • rename ‘multi-cor’ in orange (PR 838)

    • add processing wheel when computation is on-going (PRs 531, 838)

    • rename default output folder to multi_cor_results (PR 703)

  • sadeltabeta (aka multi-delta-beta)
    • rename default output folder to multi_delta_beta_results (PR 703)

  • slurm
    • add a proposed configuration for stitching (PR 640)

    • allow user to provide the value of sbatch ‘–export’ parameter (PR 638)

    • allow user to load module instead of sourcing a virtual environment (PR 638)

    • allow user to ask for a specific gpu (PR 645)

  • stitching
    • first official prototype for stitching. Only accessible form the standalone application for now. (PRs 618, 630, 656, 690)

  • volume-viewer
    • load non-hdf5 volumes into dedicated thread - avoid gui-freeze - (PR 676)

    • add processing wheel when a volume is being loaded (PR 676)

  • misc
    • move to silx 2.0 (PR 531)

    • replace HDF5TomoScan by NXtomoScan

    • move to nxtomomill 1.0 and tomoscan 2.0

    • fix colored logs

    • rework doc and move to sphinx-pydata-theme (PRs 673, 682, 684, 686, 705)

    • provide generic output (RAW_DATA, PROCESSED_DATA…) to several widgets (PR 867)

    • add webhooks to trigger readthedoc documetation on tag vx.y.z

1.2.0: 2023/09/29#

  • app
    • deprecate dark-ref application in favor of reduce-dark-flat (PR 587)

    • reduce-dark-flat: move processing to a thread

    • deprecate dark-ref-patch application in favor of patch-raw-dark-flat (PR 587)

    • add tomwer z-stitching application (as an early prototype)

    • axis: remove radio1 and radio2 options, add optional ‘entry’ input (PR 530)

  • core
    • several class deprecation
      • tomwer.core.process.reconstruction.sadeltabeta.SAdeltaBetaProcess in favor of tomwer.core.process.reconstruction.sadeltabeta.SADeltaBetaTask

      • tomwer.core.process.reconstruction.saaxis.SAAxisProcess in favor of tomwer.core.process.reconstruction.saaxis.SAAxisTask

      • tomwer.core.process.reconstruction.NabuSlices in favor of tomwer.core.process.reconstruction.NabuSlicesTask

      • tomwer.core.process.reconstruction.NabuVolume in favor of tomwer.core.process.reconstruction.NabuVolumeTask

      • tomwer.core.process.reconstruction.darkref.darkrefs.DarkRefs in favor of tomwer.core.process.reconstruction.darkref.darkrefs.DarkRefsTask

      • tomwer.core.process.reconstruction.lamino.tofu.LaminoReconstruction in favor of tomwer.core.process.reconstruction.lamino.tofu.LaminoReconstructionTask

      • tomwer.core.process.reconstruction.axis.AxisProcess in favor of tomwer.core.process.reconstruction.axis.AxisTask

      • tomwer.core.process.control.volumesymlink.VolumeSymbolicLinkProcess in favor of tomwer.core.process.control.volumesymlink.VolumeSymbolicLinkTask

      • tomwer.core.process.control.scantransfer.ScanTransfer in favor of tomwer.core.process.control.scantransfer.ScanTransferTask

      • tomwer.core.process.conditions.filters.FileNameFilter in favor of tomwer.core.process.conditions.filters.FileNameFilterTask

      • tomwer.core.process.edit.darkflatpatch.DarkFlatPatch in favor of tomwer.core.process.edit.darkflatpatch.DarkFlatPatchTask

      • tomwer.core.process.edit.imagekeyeditor.ImageKeyUpgrader in favor of tomwer.core.process.edit.imagekeyeditor.ImageKeyUpgraderTask

      • tomwer.core.process.edit.imagekeyeditor.ImageKeyEditor in favor of tomwer.core.process.edit.imagekeyeditor.ImageKeyEditorTask

  • canvas
    • add a ‘helpdesk’ button to trigger esrf jira ticket web page (PR 580)

    • add more examples directly on the canvas (PR 564, 510)

  • control
    • add scan discovery widget: search for scans (NXtomo, EDF, raw-bliss scan) contained under a root directory (recursive - one-time- search) (PR 511)

    • add NXtomo concatenate widget (PR 548)

    • add ‘tomoobjshub’ widget (PR 590)

    • data listener: activate it by default when added to the canvas (PR 562)

    • add an email notification widget (PR 581)

    • ‘data’ lists: now handle copy and paste of a list of tomo object (instead of a single one previously) (PR !596)

  • edition
    • NXtomo editor
      • add an option to automate edition (PR 524)

      • add a warning if edit a link (external or soft) (PR 545)

  • slurm
    • add slurm job logs collection (PR 509)

    • add found partition to ‘slurm cluster configuration’ gui (PR 523)

    • provide a set of pre-defined slurm configuration (PR 582)

  • reconstruction
    • axis
      • rework deduction of projections (PR 537)

      • when ‘other’ angles is selected: try to automatically propose coherent angles (PR 572)

    • cast-volume: add input for compression-ratios (PR 544)

    • add ‘reduce-dark-flat-selector’ widget (PR 597)

  • visualization
    • metadata
      • benefit from tomoscan volumes to display slice (data viewer) and volume (volume viewer) metadata for all file format (and not only .hdf5)

      • extend metadata to non-hdf5 volumes (PR 543) - raw volume still not display any metadata

    • diffviewer: minor improvements (PR 525)

    • scan overview: append ‘scan range’ to the metadata (PR 526)

    • add action to display a frame in full screen (PR 529)

    • volume viewer: fix: avoid loading all the data in memory when possible (PR 541)

  • helical
    • preparing helical
      • add ‘nabu-helical-prepare-weights-double’ widget (PR 547)

  • doc
    • reference beamlines tutorials

    • add examples on user corner (PR 574, 594)

    • add more examples directly on the canvas (PR 564, 510)

  • stitching
    • add first prototype for stitching (PR 463, 551, 595)

    • add NXtomo concatenate widget (PR 548)

  • misc
    • add possibility to cancel some jobs (PR 486)

    • replace multiprocessing lock by flufl.lock for file locking (PR 555)

    • rework future supervisor column management (PR 579)

    • improve opening with ImageJ (PR 567)

1.1.0: 2023/03/24#

  • add NXtomo editor and viewer (PR 474)

  • add management of serie and definition of a serie (PR 375)

  • improve slurm job submission (using sluurp and updating GUI / future handling) - (PR 469)

  • nabu
    • integrate CTF (PR 410)

    • add management of centered_axis (PR 475)

  • axis
    • add an option to avoid cropping images (PR 478)

  • cast volume improvements
    • allow users to provide data_min and data_max (PR 464)

  • data viewer
    • add display of reduced darks and flats

  • darkref
    • use FrameReduced from tomoscan (PR 465)

  • semi automated widgets
    • improve connection with other widgets: can process nabu directly now (PR 479)

    • add an option to save a screenshot for all reconstructed slices (PR 479)

  • notifier: add a signal tone (PR 490)

  • misc:
    • add pylint to CI (PR 462)

    • use ewoks dockers images for CI

    • add a tutorial to use ewoks convert and ewoks execute

    • remove distutils for packaging (PR 480)

    • Improve management of output directory (PR 488)

    • Remove tomwer.web module (PR 501)

    • update default file to source for slurm-clsuter (now this is ‘/scisoft/tomotools/activate.sh stable’)

1.0.4 : 2023/02/08#

  • data transfer: avoid updating the created scan object (was freezing GUI with EDF and GPFS - 5a7a8548)

  • fix layout and qt parenting (e0b65c63 & 589c8d1f)

1.0.3 : 2023/01/12#

  • integrate .vol volume to allow existing post processing to works (ID16B)

1.0.2 : 2022/12/20#

  • add a ‘notification’ widget

  • data transfer:
    • move processing to threads

    • rebase nabu configuration file paths that are expected to be moved

  • fixes:
    • data watcher
      • add a try catch on TomoScanBase.update that could fails if encounter an empty file (faio new behavior)

      • copy .xml and .info files to scan directory if in /data instead of /lbsram/data

    • dark ref: fix notification when new ref (dark or flat) are set

1.0.0 : 2022/11/08#

  • integrate volumes from tomoscan (PR 394). Now user can handle a volume and process it.

  • visualization
    • remove old data validator and data viewer (deprecated since 0.5)

  • control
    • add edf2nx widget (PR 393)

    • add image_key_upgrader (PR 396)

    • add VolumeSelector related gui (and orange widget) (PR 396)

    • upgrade datawatcher to allow research of bliss scan and NXtomo (PR 406)

    • add ‘single tomo obj’ widget (PR 409)

    • data listener: add option to filter file name (PR 426)

  • reconstruction
    • dark and ref
      • update copy to fit new ‘reduced frames’ policy using tomoscan (PR 396)

      • add ‘channel’ for the user to provide reduced dark and flat (PR 409)

    • rework volume cast to call nabu volume casting and use the new VolumeBase class (PR 394)

    • output file format can now be redefined from NabuVolumeOW (PR 403)

    • nabu
      • slice: user can now provide ‘angles_file’

      • volume: user can now redefine output location and output file format from advanced settings

      • add shepp-logan, cosine, hamming, hann, tukey, lanczos, hilbert to filter kernels (PR 421)

      • add management of sino_rings_options (PR 420)

      • add management of tilt correction (PR 437)

    • axis:
      • fix loading cor value when saved in the .ows and bug with manual mode beeing locked in some cases (PR 450)

      • add a ‘+180’ button to find automatically the associated angle when radio angles defined manually (PR 455)

      • fix relative position cast to absolute (PR 457)

    • sadelta-beta
      • fix bug when slice computation fails (PR 447)

  • slurm
    • replace dask-jobqueue by the ‘tomwer.slurm’ module (PR 405)

  • other
    • update python widget to handle a volume

    • allow several input for some widgets (PR 446)

  • misc:
    • Remove pyhst binding

    • first version with some widgets ‘fully’ handled by ewoksorange

0.10.0: 2022/06/27#

  • core
    • use latest tomoscan dark and flat definition ([scan]_flats.hdf5:flats and [scan]_darks.hdf5:darks) (!674)

    • add normalization process to apply user defined normalization to frames and provide this one to nabu

  • gui
    • add normalization gui

    • nabu volume: active histogram request to nabu by default

    • axis:
      • rework possible algorithm. If an algorithm can be done with sinogram or radios propose two values (instead of one and a sinogram vs radios option previously)

      • move parameters to a QScrollArea (!688)

      • allow users to define the angle value manually (!702)

      • move input side by side with calculation to ease readibility (!705)

      • fix issue with scrolling (!706)

    • data list
      • fix remove item (!707)

  • orangecontrib
    • fix slice stack (!708)

0.9.0: 2022/01/17#

  • app
    • canvas:remove dependency on the orange3 project and replace it by dependency on orange-canvas-core and orange-widget-base.

    fork has been created to access the ‘processing wheel’ but this is an optionnal feature (payno/orange-widget-base, payno/orange-canvas-core) (!350)

  • core
    • adapt all ‘core process’ to ewoks Task. Insure low level compatibility with ewoks (!340).

    • reconstructions
      • add option to trigger reconstruction on slurm cluster (!349)

    • add a cast process to convert nabu volume to other file format

    • slurm cluster: rework to provide port dynamically

    • darkref: now save dark / flat also in darks.hdf5 and flats.hdf5 for hdf5 acquisition

  • gui
    • add future supervisor interface

    • add slurm cluster interface

    • nabu
      • add interface to set the rings removal method

      • connect “composite-to-fine” algorithm

      • add the “None” method to the pahse method in order to allow user to use other options

    • diffviewer
      • add widget to shift second image

  • orangecontrib
    • add cluster group with SlurmclusterOW and FutureSupervisorOW

    • add a “cast volume” widget to cast nabu volume

  • doc
    • provide description of canvas objects

    • add streamline videos

0.8.0: 2021/08/31#

  • app
    • add scan viewer: allow user to display contain of a scan and browse on it

  • gui
    • dataviewer
      • integrate an instance of ‘scanoverview’ widget to display information regarding the scan (number of darks / flat, energy…)

      • provide access to dark and flats

    • axis: several minor ug fix with the color map and reset zoom

    • improve diff frame

  • orangecontrib
    • widgets
      • add SADeltaBetaOW to compute a score from several delta / beta values

      • patch-nx add a configuration entry (!346)

  • Miscellaneous:
    • move doc to autosumary

    • move to setup.cfg

    • move to pytest

0.7.0: 2021/05/20#

  • orangecontrib
    • widgets
      • add AdvancementOW: display all processes advancement

      • add SAAxisOW: semi-automatic axis.

    • integrate processview

  • core
    • process
      • add manager module to observe SuperviseProcess and display processes advancement.

    • Axis
      • AxisProcess: integrate latest nabu algorithm based on sinogram

      • AxisRP: deprecate value_ref_tomwer and value_ref_nabu for absolute_value and relative_value

    • SAAxis
      • process to compute several center of rotation for the same slice and nabu reconstruciton parameters. Provide a score

      for each slice. For now scores are standard deviation and total variation.

    • integrate processview

    • Nabu
      • fix file retrieval when tif requested

    • scan
      • benefit from tomoscan hdf5 sinogram speed up

  • gui
    • DataList:
      • allow to copy text (can copy scan directory / master file)

    • Axis
      • speed up (remove the reset_scan)

      • add nabu algorithm using sinogram
        • update ‘Input’ tab. Now users can select from radio or sinogram, provide sinogram line and subsampling

      • when manual mode activate if ‘validate’ press ‘validate’ is forced and insure display value is the one set to the scan.

      • change QLabel used to display cor for QLineEdit with read only. Insure the cor value can be copy and paste to a text editor.

    • nabu
      • save processing log to the processview

    • volume viewer
      • integrate reconstruction parameters

  • synctools
    • FIFO: is now a SuperviseProcess

0.6.0: 2020/12/15#

  • app
    • canvas
      • add edit submodule
        • add ImageKeyEditorOW: allows to invalid some frame or change the ‘frame type’

        • add DarkFlatPatchOW: allows to add dark and / or flat to an NXtomo entry

      • add debug submodule (!289)
        • add random data generator

        • add tomwer object viewer

      • control:
        • add volume symbolic link widget

        • data listener: add file conversion on a thread to avoid gui freeze

    • darkref
      • add a –no-gui option and options to define calculation method for dark and ref from command line (!299)

    • add image-key-editor

    • add dark-ref-patch

  • control
    • nxtomomill
      • add an option to keep in memory last parameter provided by the user (energy, overwrite files…) This will be clear between two call to the converter. (!296)

      • try filtering none bliss file from user input (!296)

    • datalistener
      • insure that only one instance is active on the PC. otherwise display a dialog notifying the user.

    • utils
      • rework isOnLbsRam to handle a TomwerScanBase or a str

  • reconstruction
    • axis
      • add ‘global’ algorithm from nabu. Work for half-acquisition and standard acquisition (!295)

      • gui update
        • avoid reset zoom (!295)

        • avoid validation when pressing ‘enter’ after manual cor edition (!295)

        • speed up radio shift (!295)

        • display both absolute and relative cor (!295)

    • nabu (!303)
      • slices
        • add subsampling

        • remove margins

      • volume
        • add option to compute histogram

      • slices to be reconstruct is always set to ‘middle’ the value is no more loaded (seems to be confusing for users): (commit 947d475b31d2)

    • dark-ref: add first and last options to pick first or last frame from a serie of dark / ref (!299)

    • automate settings for half-field / standard tomography (!294)

  • visualization
    • viewer
      • add a ‘open with imageJ’ button (!298).

      • reduce memory print by limiting the number of image in cache (!289)

    • add diff viewer prototype (!286)

  • Miscellaneous:
    • adopt black coding style

    • tomwer.core.process
      • move timer, datalistener, datawatcher, scanvalidator, datalist and datatransfert to control submodule.

0.5.3: 2020/10/19#

  • core
    • axis
      • rename ‘accurate’ ‘centered’

      • add global algorithm

  • orangecanvas
    • fix (commit 8a368fd7)

  • Miscellaneous:
    • rework logs (!292)

0.5.2: 2020/09/02#

  • core
    • add volume reconstruction from nabu

    • nabu
      • rename nabu nabuslices

      • catch nabu logs (!273)

      • manage .tiff and .jp2 file format

  • gui
    • add a new data viewer [prototype]

    • add a volume viewer for nabu volume reconstruction (!275)

    • axis: fix display of shifted image (#424)

    • viewers: add time stamp (!279)

    • darkref fix issue when add widget to orange canvas, remove it and add it again (!265)

  • orangecontrib
    • deprecate old data viewer

    • add new DataViewerOW [prototype]

    • add VolumeViewerOW

    • add NabuVolumeOW

  • app
    • nabu
      • add interface to give cor (!280)

      • add display button to browse reconstructed slices and projections (!280)

    • add process application: run a .ows within pypushflow and a gui free environment [prototype] (!277)

    • add ows-to-script application: translate a .ows file to a python script [prototype] (!278)

  • web
    • fix graypy new API (!270)

  • Miscellaneous:
    • add dependency on pypushflow

    • manage ‘HDF5_USE_FILE_LOCKING’ when read or write file - using tomoscan.io.HDF5File

    • fix some utils using the BaseProcess._get_process_nodes

0.5.0: 2020/06/30#

  • core
    • complete compatibility with hdf5

    • add datalistener process: listen to a tango device to retrieve the status of the acquisition. Start also synchronization between lbsram and nice if on lbsram system.

    • add nabu process: call nabu to reconstruct slices and create .conf file to reconstruct the full volume.

    • settings
      • add BEAMLINE_NAME, TANGO_PORT, BLISS_SESSION_NAMES, DEFAULT_BLISS_SESSION_NAME and MAKE_OAR_PYST2_PATH

      • add management of ‘PyHST2_*’ environment variable

    • scan
      • add dependency on tomoscan

    • utils
      • add HDF5Mock

    • data transfer: deactivated for hdf5

  • gui
    • add interface for nabu

    • add interface for data listener

    • add interface for sinogram viewer

    • axis: update interface

    • viewer: add prototype of the next data viewer

  • orangecontrib
    • add sinogram widget: used to compute a sinogram from an edf or hdf5 (NXtomo) acquisition

    • add data listener widget: used to connect with a tango device and retrieve information from it.

    • add nabu widget: used to reconstruct using the nabu library

    • add nxtomomill widget: used to convert from a bliss.hdf5 acquisition to a (NXTomo) .nx acquisition

    • add prototype of the DataViewer

    • add prototype of the new DataValidator (Move previous one to OldDataValidatorOW)

  • app
    • add nabu application: GUI for calling nabu or create nabu configuration file

    • add sinogram viewer util: used to compute a sinogram from an edf or hdf5 (NXtomo) acquisition

    • add canvas application

  • examples
    • add nabu_flow.py example. Present what should be a default workflow with nabu

  • Miscellaneous:
    • drop python 3.4

    • alpha version was released on 2020/04/30

0.4.0: 2020/03/06#

  • core
    • start compatibility with HDF5

    • add scan folder
      • add TomoScan, EDFScan and HDF5Scan. Those object are all serializable (from_dict, to_dict functions)

    • reconstruction
      • process
        • all process are now returning a serializable object (TomoScan)

        • ftseries
          • remove dependency to fastomo, use pyhstcaller instead

        • add pyhstcaller: .par and .rec generator

        • lamino
          • rework and check call to tofu with Lukas

          • add pre-processing and stitching (for half-acquisition)

        • darkref: adaptation to TomoScan object

        • axis: new process to compute the center of rotation

      • reconsparam: replace the previous ReconsParamRegistry by a set of class (FTReconsParams, AxisReconsParams…)

    • utils
      • add scanrange file

  • gui
    • reconstruction
      • rework lamino widget

      • add AxisWidget (stack requested axis.)

    • update datawatcher
      • remove pop up windows to embed them all in the same widget

      • check acquisition type (hdf5 or edf)

  • orangecontrib
    • object used as links are now TomoScan object instead of a str

    • widgets
      • add axis widget

  • app
    • add Axis application: use to compute center of rotation from a scan directory or some files.

    • add rsync application: use to synchronize a folder containing a scan with an other folder. user can specify a ‘point of advancement’ in the scan lifetime. Then only file created at this stage will be synchronized.

  • examples
    • add orangeworkflow example. This is basically the most commonly used orange workflow with datawatcher, axis, darkref, ftseries, datavalidator and datatransfert widgets

    • add datawatcher example: a simple instantiation of the datawatcher with some automatic generation of acquisition.

  • luigi
    • remove prototype

0.3.0: 2019/01/08#

  • core
    • add simple python binding for launching Tofu (for now only called in python 2)

    • conditions: new package to include some conditions (folder names…) on a workflow.

    • ftseries
      • duplicate octave outputs to ‘octave.log’

      • possibility to run several Paganin reconstructions with different parameters

    • create different nodes for loading images stack

    • data transfer: add pre-transfer operations

    • create tomwer.core.scan package which should contains the different type of scan we can encounter (edfscan, hdf5scan…). Define also interface to sue and specific treatment for those.

  • gui
    • lamino: add a TofuWidget to call lamino reconstruction from Tofu.

    • compare images: use the one from silx if silx >= 0.9

    • data list:
      • add a remove all button

      • deal with mouse drop

    • add widgets radio stack and slice stack which are recording all radio or slice passing by those widget and allow browsing through them.

    • live slice: embed live slice into an Orange widget if installed.

    • add gui for new conditions process

    • separate tomwer’s orange add-on widgets into three part: control, reconstruction and visualization.

    • data validator: add three different option to load images (just in time, when required and load as soon as possible )

  • doc
    • add automatic screenshots for doc generation

  • luigi
    • add first proto step. No functional yet

0.2.0: 2018/07/16#

  • add dark & flat fields process to manage dark and flat field creation (create madian of mean). manage also copy of dark and flat field if not existing in one repository.

  • refactoring. tomwer core functions and qt base widgets are moved in the tomwer package. Now the orangecontrib subpackage only contains the orange add-on.

  • ftseries:
    • remove the octave version readed and loaded

  • data watcher
    • now making observations in parallel

    • if the acquisition folder contains a .abo file then ‘skip it’. Considering it as their was no data.

    • gui refactoring

  • scan validator: gui as stack. User can browse through the stack.

  • add group slice to display all reconstructed sliced received

  • add data selector: simple gui to select one scan in a list

  • sample moved: interface to display ‘key radios’ and see if the sample has moved during acquisition.

  • add applications:
    • darkref

    • ftserie

    • samplemoved

    • slicestack

0.1.0: 2017/09/28#

  • add core features

    • tomodir: aka data watcher. Detect acquisition finished. Sync data with destination directory as soon as possible if in lbsram system.

    • ftseries: interface for fastomo3 (octave)

  • add orange-add on

    • ftseries widget

    • scan validator: validate a scan or ask for a reconstruction changing parameters

    • data watcher

    • data viewer

    • data list

    • data transfer