Release iMars3D v1.0.0
Summary
This is the official release of iMars3D
, v1.0.0.
The detailed changes can be found in section What's Changed
, and the development team would like to extend our thanks to all the contributors listed in section New Contributors
.
In this release, the core functionality for reconstructing neutron CT scans are implemented, along with a CLI engine that can perform reconstruction with given configuration file (see demo.json for example).
The next step would be maturing the GUI components (based on holoviz
, partially implemented) that provides interactive reconstruction within Jupyter and as a standalone web app.
What's Changed
- sniffing of CT/OB/DF data files by @yxqd in #45
- PR: S3 for test data by @yxqd in #50
- PR: Improve Intensity Fluctuation Correction by @yxqd in #56
- PR: travis CI test of recon workflow by @yxqd in #57
- Ian-fileselector-ui: Fileselector.py by @ilumsden in #63
- switch to use ipywe widgets by @yxqd in #71
- Tomorecon by @ilumsden in #74
- Add TomoRecon-Wizard by @ilumsden in #77
- notebook UI ver 1: make it work at local computers by @yxqd in #80
- Skip CT filenames that are not recognized by @yxqd in #82
- gamma filter bug by @yxqd in #86
- allow user to customize preprocessors in CT by @yxqd in #89
- allow DF to be optional by @yxqd in #90
- travis cron test setup by @yxqd in #94
- options of cleaning intermediate results by @yxqd in #95
- reconstructed filenames: use 4 digits by @yxqd in #96
- travis cache by @yxqd in #97
- CT: mirror by @yxqd in #98
- CT recon notebook UI: buttons to switch to select OB and DF files from arbitrary folders by @yxqd in #101
- CT recon notebook UI: support skipping DF by @yxqd in #102
- notebook UI version 2 by @yxqd in #103
- automatic reconstruction by @yxqd in #106
- improve autocrop by @yxqd in #108
- improving auto reconstruction by @yxqd in #110
- Put archiving in background by @yxqd in #113
- Upgrade to python 3.6 by @wdzhou in #119
- python36: fix mpi test by fixing popen by @jrmcgaha-dev in #122
- Update tomoreconui.py by @jmborr in #125
- Make encoding only for python version < 3 by @jmborr in #126
- patch current version by @jmborr in #127
- Remove deprecated tomopy option by @ckendrick in #128
- Update tomopy version in readme by @ckendrick in #129
- migrate to python 3.8 and tomopy 1.10 by @yxqd in #130
- Removed flag. this refs #131 by @JeanBilheux in #132
- added documentation. this refs #133 by @JeanBilheux in #134
- [IMG123] Add developer documentations by @KedoKudo in #136
- Create LICENSE by @KedoKudo in #137
- [IMG124] update packaging by @KedoKudo in #138
- [IMG131] restructure the test folder by @KedoKudo in #139
- added Jiao's presentations by @jmborr in #140
- [IMG152] rewrite gamma filter for new imars3d by @KedoKudo in #141
- [IMG153] add normalization filter for imars3dv2 by @KedoKudo in #142
- [IMG154] add crop and auto bounds detection for imars3dv2 by @KedoKudo in #143
- [IMG155] denoiser for iMars3D_v2 by @KedoKudo in #144
- [IMG156] add intensity fluctuation correction filter for imar3d_v2 by @KedoKudo in #145
- [IMG178] update pre-commit to include more hooks by @KedoKudo in #147
- [IMG176] add rotation axis tilt correction by @KedoKudo in #146
- [IMG158] add rotation center finder imars3d v2 by @KedoKudo in #148
- [IMG113] enable unit test with code coverage by @KedoKudo in #149
- [IMG159] Modernize Ketcham ring removal method by @KedoKudo in #150
- Wrapper for tomopy recon by @ckendrick in #151
- [IMG201] Enable shared memory and progress bar for denoise filter by @KedoKudo in #153
- [IMG221] developer documentation on multiprocessing and progress bar by @KedoKudo in #154
- Add progress bar and shared memory for tilt correction by @ckendrick in #156
- [IMG227] add progress bar and shared mem model for intensity fluctuation correction by @KedoKudo in #155
- [IMG243] reconstruction wizard prototype with holoviz stack by @KedoKudo in #157
- Gzi playwright prototype by @gecage952 in #158
- Create Wheel for imars as part of github workflow by @walshmm in #159
- only report fail if the coverage drops below 60 by @KedoKudo in #160
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #152
- Readme rewrite by @walshmm in #161
- [IMG265] Restructure project structure with new design guide by @KedoKudo in #163
- [IMG303] Add gui development guid to dev_docs by @KedoKudo in #165
- [IMG237] update docs for iMars3D_v2.0 by @KedoKudo in #166
- Create CODE_OF_CONDUCT.md by @KedoKudo in #167
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #164
- Re-enable building the wheel by @peterfpeterson in #168
- add yamllint to pre-commit by @KedoKudo in #169
- Update README.md by @KedoKudo in #170
- [IMG233] update conda recipe to enable package building by @KedoKudo in #171
- Update deploy triggers by @peterfpeterson in #172
- Sequence diagram for Loading input data by @jmborr in #174
- [IMG282] add data_load function via param.ParametrizedFunction by @KedoKudo in #175
- update badge to match the github action yml change by @KedoKudo in #173
- [IMG282] UI for load data by @KedoKudo in #176
- [IMG282] new MetaData class to help identify files from same scan by @KedoKudo in #178
- [IMG306] add developer documentation for parameterized function from param by @KedoKudo in #181
- [IMG282] Auto find openbeam and darkcurrent based on metadata from ct by @KedoKudo in #180
- IMG 306 Covert Normalization.py to be ParameterizedFunction with validation and Logger by @walshmm in #182
- Validate json schema files by @peterfpeterson in #177
- Convert crop to paramterized function and adjust its calls by @gecage952 in #184
- Workflow engine by @jmborr in #179
- [IMG311] Refactor gamma filter to use parameterized function by @KedoKudo in #185
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #183
- [IMG312] Refactor denoise filter to use parameterizedFunction by @KedoKudo in #186
- [IMG314] Refactor tilt correction to use param.ParameterizedFunction by @KedoKudo in #187
- Gzi fluctuation filter by @gecage952 in #188
- [IMG343] Add docstring check via pydocstyle by @KedoKudo in #189
- Add documentation for the schema by @peterfpeterson in #191
- Add codecov configuration by @peterfpeterson in #193
- convert rotation.py to parameterizedfunction, add logging, updated tests by @walshmm in #190
- Convert reconstruction to parameterized function and adjust test by @gecage952 in #194
- migrate ring_removal.py to parameterizedfunction, updated unit tests by @walshmm in #195
- Add high-level design doc by @hetrickjm in #192
- refactor ring removal (ketcham) to be parameterizedfunction by @walshmm in #197
- Doc formatting by @peterfpeterson in #198
- [IMG292] Fix issue related to unsorted list from generator by @KedoKudo in #199
- Refactor the workflow engine for autoreduction by @jmborr in #200
- [IMG377] Base layout for iMars3D UI by @KedoKudo in #201
- Bump codecov action to v3 by @peterfpeterson in #203
- No longer allow the config schema to be customizable by @peterfpeterson in #202
- Move conda to only build on protected branches by @peterfpeterson in #204
- Logging config by @peterfpeterson in #206
- deprecated prefix "globals." by @jmborr in #207
- [IMG377] Implement visualization window for iMars3D ui by @KedoKudo in #205
- Test cades runner for integration tests by @rosswhitfield in #208
- Annotate build with integration test status by @peterfpeterson in #209
- implement assisted_window.py by @gecage952 in #210
- [IMG290] Add new crop widget for interactive cropping by @KedoKudo in #211
- Add test for invalid function name in workflow config by @gecage952 in #212
- Improve verification that functions in the config exist by @peterfpeterson in #215
- Function outputs need not be global parameters by @jmborr in #216
- Supress warnings from dxchange when importing by @peterfpeterson in #217
- Cli entrypoint by @peterfpeterson in #213
- Add codecov and CII badges by @rosswhitfield in #218
- Remove files for old CI technology by @peterfpeterson in #220
- Turn on flake8 in backend and fix issues by @peterfpeterson in #219
- Enable and fix flake8 in front end by @peterfpeterson in #222
- Remove ability for user to change schema by @peterfpeterson in #223
- add default=None for parameters with no default by @jmborr in #226
- Add CLI integration tests by @ckendrick in #224
- Slim down to a single environment file by @peterfpeterson in #225
- Add CodeQL by @rosswhitfield in #228
- Img376 add integration tests by @walshmm in #214
- Test data repository markers by @peterfpeterson in #229
- Create skeleton autoreduction script and test by @peterfpeterson in #227
- [IMGx] add PR stale bot config by @KedoKudo in #231
- Progress bar widget by @peterfpeterson in #230
- Integration tests with invalid parameters by @jmborr in #232
- Fix backend system tests by @peterfpeterson in #235
- Enable pydocstring by @peterfpeterson in #233
- Reuse JSON_DIR fixture from conftest.py by @peterfpeterson in #236
- added save/load bookend, refactored, incomplete workflow test by @walshmm in #234
- Extract json from system test by @peterfpeterson in #237
- [IMG391] add top level function calls for auto reduce by @KedoKudo in #238
- Integration test: tiff file doesn't exist by @jmborr in #240
- Add nbstripout pre-commit configuration by @peterfpeterson in #239
- Implement load_template_config for autoredux by @gecage952 in #241
- Add schema.json to the packaging by @peterfpeterson in #245
- Img391 extract data from path by @walshmm in #243
- document pre-commit by @jmborr in #242
- move file cleanup to conftest fixture by @walshmm in #244
- moved io to dataio by @jmborr in #246
- Add user documentation for entrypoints by @peterfpeterson in #249
- Stop ignoring F401 and F403 flake8 warnings by @rosswhitfield in #250
- Integration tests for missing configuration by @jmborr in #248
- integration test for auto_reduction_ready by @jmborr in #247
- json configuration input is corrupt by @jmborr in #251
- Switch to new cades runners by @rosswhitfield in #254
- Refactor code to use central save functions by @peterfpeterson in #253
- Engine error codes by @peterfpeterson in #255
- Change to np.testing for better difference messages by @peterfpeterson in #258
- Add docs for autoredux and clean up other places by @peterfpeterson in #256
- fix integration backend test_run by @jmborr in #257
- Log Autoreduction Messages to File by @jmborr in #259
- remove tomopy and replace with pure numpy solution by @walshmm in #260
- skip tests so we can push a build, to be fixed in branch happy_path by @walshmm in #261
- Change to use boa for building conda package by @peterfpeterson in #262
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #263
- integration test for a valid dataset by @jmborr in #252
- Move where boa is installed by @peterfpeterson in #264
- minus_log parameterized function by @jmborr in #265
- Set default number of pairs in rotation center by @peterfpeterson in #267
- [IMG448] Add thin wrapper around new ring removal method based on BM3D by @KedoKudo in #266
- Expose tompy normalize_roi method by @gecage952 in #268
- Fail the test if there is insufficient memory by @peterfpeterson in #269
- Update Expected Results for Integration Tests by @jmborr in #270
- [IMG444] atol can be inferred during 180 deg pair finding for sorted array by @KedoKudo in #271
- crop returns a copy for 3D arrays by @jmborr in #272
- allow for list of open beam and dark field directories by @jmborr in #274
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #273
- include olefile in the conda recipe by @jmborr in #275
- extend load_data's ob_dir and df_dir to handle a list of folders by @jmborr in #276
- Improve documentation on the num_pairs parameter by @peterfpeterson in #277
- Remove old facade in favor of standard class by @peterfpeterson in #278
- update docs on setup integration test data by @KedoKudo in #280
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #279
- Trouble shoot CI failure related to Github mamba solution by @KedoKudo in #281
- remove conflicting opts by @KedoKudo in #282
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #283
New Contributors
- @ilumsden made their first contribution in #63
- @wdzhou made their first contribution in #119
- @jrmcgaha-dev made their first contribution in #122
- @jmborr made their first contribution in #125
- @ckendrick made their first contribution in #128
- @JeanBilheux made their first contribution in #132
- @KedoKudo made their first contribution in #136
- @gecage952 made their first contribution in #158
- @walshmm made their first contribution in #159
- @peterfpeterson made their first contribution in #168
- @hetrickjm made their first contribution in #192
- @rosswhitfield made their first contribution in #208
Full Changelog: https://github.com/ornlneutronimaging/iMars3D/commits/v1.0.0