CHANGELOG.md 9.11 KB
Newer Older
Pierre Paleo's avatar
Pierre Paleo committed
1
2
# Change Log

Pierre Paleo's avatar
Pierre Paleo committed
3
4
5
6
7
8
9
10
11
12
13
14
15
## 2021.2.1

Minor version with two changes.

### Application

  - Loading darks/flats from a dataset is now done with files `darks.h5` and `flats.h5` if available.

### Library

  - Removed 3D backprojection. This means that from now on, only 2D sinogram can be backprojected.


Pierre Paleo's avatar
Pierre Paleo committed
16
17
## 2021.2.0

Pierre Paleo's avatar
Pierre Paleo committed
18
This version brings major changes in the API to make it more consistent. Most of the pre-2021.2.0 API should work, although possibly with a deprecation warning. This version also brings a lot of fixes in the full-field pipeline.
Pierre Paleo's avatar
Pierre Paleo committed
19
20
21
22

### Application

  - Half tomography does not require an even number of angles anymore
Pierre Paleo's avatar
Pierre Paleo committed
23
24
25
  - Half tomography reconstruction: change the way to weight the two half sinograms in the overlapping region. This only impacts the center of the reconstructed slice. The new method is compatible with other existing tomography softwares.
  - Fix chebyshev normalization on sinograms for half tomography
  - EDF datasets: fix long loading time (assume 1 frame per file by default)
Pierre Paleo's avatar
Pierre Paleo committed
26
27
28
  - Added composite sinogram/radio Center of Rotation estimator
  - The new pipeline (handling full radios) has now a Cuda backend, except for distortion correction.
  - Fix `enable_halftomo = auto` not working when FOV == "full"
Pierre Paleo's avatar
Pierre Paleo committed
29
30
31
32
33
  - Renamed configuration key 'flatfield_enabled' to 'flatfield'. The following modes are available:
     - False: disable flatfield normalization
     - True: attempt at loading "reduced" flats/darks, compute if no file available
     - "force-compute": discard any existing file with pre-computed flats/darks, do the computations anyway
     - "force-load": Force to use existing flats/darks from a file, regardless of the input dataset
Pierre Paleo's avatar
Pierre Paleo committed
34
35
36
  - Unknown configuration keys are now ignored by default (instead of making nabu exit with error)
  - Add support for big tiff output format (all slices written in one single tiff file)
  - Fix support for Cuda 11, notably context creation/disposal
Pierre Paleo's avatar
Pierre Paleo committed
37
38
39
  - FBP: add "centered_slice" so that the slice is centered on the rotation axis
  - FBP: add "clip_outer_circle" to set to zero values outside the reconstruction region

Pierre Paleo's avatar
Pierre Paleo committed
40
41
42
43

### Library

  - Create `nabu.pipeline` which will contain all pipeline implementations (full-field, XRD-CT, ...). Move modules (ex. from `nabu.resources`).
Pierre Paleo's avatar
Pierre Paleo committed
44
  - Rename pipelines with more consistent names: `Chunked` and `Grouped`.
Pierre Paleo's avatar
Pierre Paleo committed
45
46
47
  - `nabu.preproc`: `sinogram` and `rings` were moved to `nabu.reconstruction`
  - Add `nabu.preproc.phase_cuda.CudaCTFPhaseRetrieval`
  - Add `nabu.cuda.binning` which offers a generic Cuda padding utility
Pierre Paleo's avatar
Pierre Paleo committed
48
  - Use the `tifffile` python module instead of `silx.third_party.TiffIO` for supporting big-tiff format
Pierre Paleo's avatar
Pierre Paleo committed
49
50


Pierre Paleo's avatar
Pierre Paleo committed
51
52
53
54
55
56
## 2021.1.1

### Application

   - Added `unsharp_method` to select unsharp mask method (gaussian or log)
   - `enable_halftomo` can now be set to `auto` to let nabu determine if half aqcuisition was used
Pierre Paleo's avatar
Pierre Paleo committed
57
   - Add `nabu-validator` command-line tool
Pierre Paleo's avatar
Pierre Paleo committed
58
59
60
61
62
63

### Library

   - `scipy` is now a mandatory dependency


Pierre Paleo's avatar
Pierre Paleo committed
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
## 2021.1.0

### Application

  - Add sinogram-based center of rotation estimation methods.
  - Add projections rotation and detector tilt estimation.
  - Add support from dumping processing steps into a file, and to resume a pipeline from a saved step.
  - Add sinogram-based rings artefacts removal method
  - Add  CTF single-distance phase retrieval
  - Add support for flats distortion estimation and correction
  - Add EDF output data format

### Command-line interface tools

  - Add `nabu-rotate` for performing a rotation of each projection in a dataset.
  - Add `nabu-double-flatfield` to compute the double flatfield image from projections.

## Library

  - `PaganinPhaseRetrieval` length parameters are now expressed in meters.
  - Add `nabu.estimation` module
85
  - The `preproc.FlatField` class now takes arrays as input instead of `DataUrl`. The class `FlatFieldDataUrls` can be used as a replacement.
Pierre Paleo's avatar
Pierre Paleo committed
86

Pierre Paleo's avatar
Pierre Paleo committed
87
88
89
90
91
92
93
94
95
96
97
98
## 2020.5.0

Major version (November 2020).

### Application

  - Add cuda backend for histogram, also for the `nabu-histogram` command.
  - Enable histogram computation for other output formats than HDF5 (ex. tiff)
  - The files "nabu_processes.h5" and "nabu.log" are now named as a function of the dataset prefix. This prevents conflicts when several datasets are reconstruction simultaneously from the same folder.
  - Add nabu-generate-info CLI tool, which generates a ".info" for pluggin ESRF legacy pipeline post-processing tools.
  - Add a utility to exclude projections from being processed: `exclude_projections` in `[dataset]`
  - Add new methods for finding the center of rotation
Pierre Paleo's avatar
Pierre Paleo committed
99
100
  - Mitigate issue of nabu hanging forever to allocate memory on big data chunks
  - Fix unsharp mask when used without phase retrieval
Pierre Paleo's avatar
Pierre Paleo committed
101
  - When using HDF5 datasets, a custom entry in the file can now be specified using the `hdf5_entry` key in the `[dataset]` section in nabu configuration.
Pierre Paleo's avatar
Pierre Paleo committed
102
103
104
105
106
107
108


### Library

  - Fix half-tomography sinograms when center of rotation is on the left
  - Add misc.histogram_cuda: Cuda backend for partial volume histograms
  - Add `preproc.alignment.CenterOfRotationAdaptiveSearch`, `preproc.alignment.CenterOfRotationSlidingWindow` and `preproc.alignment.CenterOfRotationGrowingWindow` for automatic CoR estimation.
Pierre Paleo's avatar
Pierre Paleo committed
109
  - Add support for `h5py >= 3.0`, although it requires `silx >= 0.14`
Pierre Paleo's avatar
Pierre Paleo committed
110
111


Pierre Paleo's avatar
Pierre Paleo committed
112
113
114
115
116
117
118
## 2020.4.2
This version brings new features and fixes.

### Application

  - Center of Rotation is not incorrectly shifted anymore when set on the left in "normal acquisition mode"

Pierre Paleo's avatar
Pierre Paleo committed
119
120
121
122
123
124
125
126
127
128
129
130
131
## 2020.4.1

This is a minor version bringing some fixes in the application.

### Application

  - In the HDF5-NX dataset file, the pixel size taken by nabu is now `magnified_pixel_size` instead of `pixel_size`. This will have notable consequences for phase retrieval (`delta_beta` will be much smaller to obtain the same effect).
  - The `nabu-config` command line does not need the `--bootstrap` flag anymore, as it is not the default behavior.
   - Configuration file: angles in `angles_files` have to be provided in degrees (as for `angles_offset`)
   - Fixed some comments in configuration file
   - A more helpful error will be returned if either flat/dark is missing from NX file.


Pierre Paleo's avatar
Pierre Paleo committed
132
133
134
135
136
137
138
139
140
141
142
143
## 2020.4.0

This is a version adds a number of features.

### Application

  - Automatic center of rotation estimation, working for both half-acquisition and regular scans
  - Command line tool for splitting a NXTomo file by "z" series
  - Volume histogram. Command line tool for merging histogram of multiple volumes.
  - Enable to perform flat-field normalization with darks/flats from another dataset
  - Sinogram normalization (baseline subtraction)
  - Nabu does not need `tomwer_processes.h5` to get the "final" darks/refs anymore.
Pierre Paleo's avatar
Pierre Paleo committed
144
145
  - Fix `fbp_filter_type = none`: now it will actually disable any filtering
  - Fix auto-CoR not working when flatfield is disabled
Pierre Paleo's avatar
Pierre Paleo committed
146
147
148
149
150

### Library

  - Add `misc.histogram` for computing partial histograms and merging them
  - Add `preproc.sinogram.SinoNormalization`
Pierre Paleo's avatar
Pierre Paleo committed
151
  - Fix double flat-field when `dff_sigma > 0`  which was giving nonsense results.
Pierre Paleo's avatar
Pierre Paleo committed
152
  - Half-tomography: add support for center of rotation on the left side
Pierre Paleo's avatar
Pierre Paleo committed
153

Pierre Paleo's avatar
Pierre Paleo committed
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
## 2020.3.0

This is a release for ESRF User Service Mode restart.

The main new feature is the full volume reconstruction. The reconstruction is done in multiple stages by dividing the volume in  sub-volumes, which are processed and stitched together in the end. 

### Application

  - Multi-stage volume reconstruction with possibly overlapping chunks (`LocalReconstruction` in `nabu.app`).  Chunk sizes are computed automatically as a function of available memory. Phase margin is computed automatically as a function of phase retrieval parameters. HDF5 files corresponding to each chunk are merged as a HDF5 master file.
  - Basic support for tiff output format (float32, single frames).
  - Basic support for jpeg2000 output format (uint16, single frames). For now only lossless compression is supported. 
  - Integrate "CCD correction" (thresholded median filter) in pipeline
  - Command Line Interface improvements: `nabu nabu.conf --slice middle`,  add options `--cpu_mem_fraction` and `--gpu_mem_fraction`.

### Library

   - Add alignment utilities: `nabu.preproc.alignment`. There are many use cases, please see the corresponding documentation pages for more information.
   - Flat-field: support more than two flats
   - Unify API of `CCDCorrection` and `CudaCCDCorrection`


Pierre Paleo's avatar
Pierre Paleo committed
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
## 2020.2.0

This is a "preview release", preparing an important release foreseen for September 2020.

### Library features

  - Vertical translations
  - Double flat-field (radios-based rings artefacts removal)
  - Support for half tomography
  - `preproc.alignment` module
  - Support for flat-field normalization with more than 2 flats

### Application
  - Take configuration file `start_z` and `end_z` into account for `nabu` CLI
  - Phase retrieval: `method = none` is now default (no phase retrieval by default)
  - Add `overwrite_results` 
  - Add support for `rotation_axis_position = auto` (except for half-tomo)

### Internal
  - Re-wrote internal processing pipeline with a much simpler design
  - NXresults: config is now a H5 dataset. "image stack" default interpretation.


## 2020.1.0: 2020/04/29
Pierre Paleo's avatar
Pierre Paleo committed
199

Pierre Paleo's avatar
Pierre Paleo committed
200
This is the first official release of Nabu. Please see the [features overview](www.silx.org/pub/nabu/doc/features.html)