tomwer 1.2.1__py3-none-any.whl → 1.3.12__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- orangecontrib/tomwer/tutorials/icat_publication.ows +58 -0
- orangecontrib/tomwer/widgets/__init__.py +11 -11
- orangecontrib/tomwer/widgets/control/DataDiscoveryOW.py +2 -2
- orangecontrib/tomwer/widgets/control/DataListOW.py +9 -7
- orangecontrib/tomwer/widgets/control/DataListenerOW.py +6 -6
- orangecontrib/tomwer/widgets/control/DataSelectorOW.py +21 -10
- orangecontrib/tomwer/widgets/control/DataValidatorOW.py +6 -6
- orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +24 -7
- orangecontrib/tomwer/widgets/control/EmailOW.py +4 -4
- orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +3 -3
- orangecontrib/tomwer/widgets/control/NXTomomillOW.py +64 -23
- orangecontrib/tomwer/widgets/control/NXtomoConcatenate.py +20 -8
- orangecontrib/tomwer/widgets/control/NotifierOW.py +1 -0
- orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +6 -6
- orangecontrib/tomwer/widgets/control/VolumeSelector.py +7 -4
- orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +182 -182
- orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +5 -5
- orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +4 -4
- orangecontrib/tomwer/widgets/edit/ImageKeyEditorOW.py +3 -3
- orangecontrib/tomwer/widgets/edit/ImageKeyUpgraderOW.py +8 -1
- orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +3 -3
- orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +3 -3
- orangecontrib/tomwer/widgets/icat/PublishProcessedDataOW.py +115 -0
- orangecontrib/tomwer/widgets/icat/RawDataScreenshotCreatorOW.py +98 -0
- orangecontrib/tomwer/widgets/icat/SaveToGalleryAndPublishOW.py +129 -0
- orangecontrib/tomwer/widgets/icat/__init__.py +13 -0
- orangecontrib/tomwer/widgets/icat/icons/add_gallery.png +0 -0
- orangecontrib/tomwer/widgets/icat/icons/add_gallery.svg +82 -0
- orangecontrib/tomwer/widgets/icat/icons/publish_processed_data.png +0 -0
- orangecontrib/tomwer/widgets/icat/icons/publish_processed_data.svg +95 -0
- orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.png +0 -0
- orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.svg +143 -0
- orangecontrib/tomwer/widgets/icons/tomwer_data_portal.png +0 -0
- orangecontrib/tomwer/widgets/icons/tomwer_data_portal.svg +76 -0
- orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +22 -20
- orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +19 -3
- orangecontrib/tomwer/widgets/reconstruction/NabuHelicalPrepareWeightsDoubleOW.py +184 -169
- orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +23 -0
- orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +39 -5
- orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +18 -22
- orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +18 -26
- orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +15 -19
- orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +9 -9
- orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +1 -1
- orangecontrib/tomwer/widgets/visualization/LivesliceOW.py +1 -1
- orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +3 -3
- orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +0 -1
- orangecontrib/tomwer/widgets/visualization/VolumeViewerOW.py +3 -29
- tomwer/__main__.py +7 -64
- tomwer/app/axis.py +3 -3
- tomwer/app/canvas.py +8 -0
- tomwer/app/canvas_launcher/config.py +16 -14
- tomwer/app/canvas_launcher/environ.py +1 -0
- tomwer/app/canvas_launcher/mainwindow.py +4 -1
- tomwer/app/darkref.py +1 -1
- tomwer/app/darkrefpatch.py +1 -1
- tomwer/app/diffframe.py +3 -3
- tomwer/app/imagekeyeditor.py +5 -5
- tomwer/app/imagekeyupgrader.py +5 -5
- tomwer/app/intensitynormalization.py +14 -13
- tomwer/app/{saaxis.py → multicor.py} +3 -3
- tomwer/app/{sadeltabeta.py → multipag.py} +3 -3
- tomwer/app/nabuapp.py +0 -11
- tomwer/app/radiostack.py +6 -4
- tomwer/app/samplemoved.py +3 -2
- tomwer/app/scanviewer.py +4 -2
- tomwer/app/sinogramviewer.py +3 -2
- tomwer/app/slicestack.py +3 -2
- tomwer/app/zstitching.py +88 -6
- tomwer/core/cluster/cluster.py +26 -0
- tomwer/core/log/logger.py +7 -5
- tomwer/core/process/conditions/filters.py +1 -1
- tomwer/core/process/control/datalistener/datalistener.py +19 -14
- tomwer/core/process/control/datawatcher/edfdwprocess.py +0 -9
- tomwer/core/process/control/nxtomoconcatenate.py +13 -13
- tomwer/core/process/control/nxtomomill.py +92 -34
- tomwer/core/process/control/scantransfer.py +20 -43
- tomwer/core/process/control/scanvalidator.py +3 -2
- tomwer/core/process/control/test/test_concatenate_nxtomos.py +9 -9
- tomwer/core/process/control/test/test_email.py +4 -4
- tomwer/core/process/control/test/test_h52nx_process.py +59 -7
- tomwer/core/process/control/test/test_volume_link.py +64 -64
- tomwer/core/process/control/timer.py +1 -1
- tomwer/core/process/control/volumesymlink.py +200 -200
- tomwer/core/process/edit/darkflatpatch.py +14 -15
- tomwer/core/process/edit/imagekeyeditor.py +41 -39
- tomwer/core/process/icat/__init__.py +0 -0
- tomwer/core/process/icat/createscreenshots.py +100 -0
- tomwer/core/process/icat/gallery.py +377 -0
- tomwer/core/process/icat/icatbase.py +36 -0
- tomwer/core/process/icat/publish.py +228 -0
- tomwer/core/process/icat/screenshots.py +27 -0
- tomwer/core/process/output.py +52 -0
- tomwer/core/process/reconstruction/axis/axis.py +280 -69
- tomwer/core/process/reconstruction/axis/mode.py +163 -48
- tomwer/core/process/reconstruction/axis/params.py +29 -21
- tomwer/core/process/reconstruction/darkref/darkrefs.py +41 -127
- tomwer/core/process/reconstruction/darkref/darkrefscopy.py +4 -3
- tomwer/core/process/reconstruction/darkref/params.py +1 -1
- tomwer/core/process/reconstruction/nabu/castvolume.py +4 -4
- tomwer/core/process/reconstruction/nabu/helical.py +9 -5
- tomwer/core/process/reconstruction/nabu/nabucommon.py +71 -78
- tomwer/core/process/reconstruction/nabu/nabuscores.py +425 -53
- tomwer/core/process/reconstruction/nabu/nabuslices.py +114 -93
- tomwer/core/process/reconstruction/nabu/nabuvolume.py +54 -27
- tomwer/core/process/reconstruction/nabu/plane.py +9 -0
- tomwer/core/process/reconstruction/nabu/settings.py +2 -2
- tomwer/core/process/reconstruction/nabu/utils.py +164 -26
- tomwer/core/process/reconstruction/output.py +108 -0
- tomwer/core/process/reconstruction/saaxis/saaxis.py +238 -264
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +151 -87
- tomwer/core/process/reconstruction/scores/params.py +7 -4
- tomwer/core/process/reconstruction/scores/scores.py +13 -0
- tomwer/core/process/reconstruction/test/test_axis_params.py +2 -2
- tomwer/core/process/reconstruction/test/test_darkref.py +3 -3
- tomwer/core/process/reconstruction/test/test_darkref_copy.py +7 -7
- tomwer/core/process/reconstruction/test/test_saaxis.py +3 -4
- tomwer/core/process/reconstruction/test/test_sadeltabeta.py +2 -2
- tomwer/core/process/stitching/nabustitcher.py +13 -12
- tomwer/core/process/task.py +34 -26
- tomwer/core/process/test/test_axis.py +13 -12
- tomwer/core/process/test/test_dark_and_flat.py +10 -7
- tomwer/core/process/test/test_data_transfer.py +10 -8
- tomwer/core/process/test/test_nabu.py +14 -6
- tomwer/core/process/test/test_normalization.py +4 -4
- tomwer/core/scan/blissscan.py +3 -3
- tomwer/core/scan/edfscan.py +13 -10
- tomwer/core/scan/hdf5scan.py +19 -530
- tomwer/core/scan/nxtomoscan.py +534 -0
- tomwer/core/scan/scanbase.py +72 -44
- tomwer/core/scan/scanfactory.py +13 -13
- tomwer/core/scan/test/test_edf.py +2 -2
- tomwer/core/scan/test/test_future_scan.py +3 -3
- tomwer/core/scan/test/test_h5.py +18 -16
- tomwer/core/scan/test/test_process_registration.py +4 -40
- tomwer/core/scan/test/test_scan.py +5 -78
- tomwer/core/settings.py +22 -2
- tomwer/core/test/test_scanutils.py +8 -7
- tomwer/core/test/test_utils.py +35 -28
- tomwer/core/tomwer_object.py +1 -1
- tomwer/core/utils/__init__.py +0 -466
- tomwer/core/utils/deprecation.py +1 -1
- tomwer/core/utils/dictutils.py +14 -0
- tomwer/core/utils/lbsram.py +35 -0
- tomwer/core/utils/nxtomoutils.py +1 -1
- tomwer/core/utils/scanutils.py +6 -6
- tomwer/core/utils/spec.py +263 -0
- tomwer/core/volume/edfvolume.py +6 -6
- tomwer/core/volume/hdf5volume.py +6 -6
- tomwer/core/volume/jp2kvolume.py +6 -6
- tomwer/core/volume/rawvolume.py +6 -6
- tomwer/core/volume/tiffvolume.py +12 -12
- tomwer/core/volume/volumefactory.py +2 -2
- tomwer/gui/cluster/slurm.py +274 -65
- tomwer/gui/cluster/supervisor.py +12 -0
- tomwer/gui/cluster/test/test_cluster.py +14 -2
- tomwer/gui/cluster/test/test_supervisor.py +3 -3
- tomwer/gui/configuration/__init__.py +0 -0
- tomwer/gui/{reconstruction/nabu → configuration}/action.py +1 -32
- tomwer/gui/configuration/level.py +22 -0
- tomwer/gui/control/actions.py +54 -0
- tomwer/gui/control/datalist.py +83 -16
- tomwer/gui/control/datalistener.py +4 -16
- tomwer/gui/control/datawatcher/controlwidget.py +2 -4
- tomwer/gui/control/datawatcher/datawatcher.py +1 -24
- tomwer/gui/control/{email.py → emailnotifier.py} +9 -18
- tomwer/gui/control/history.py +2 -2
- tomwer/gui/control/observations.py +2 -2
- tomwer/gui/control/reducedarkflatselector.py +9 -9
- tomwer/gui/control/selectorwidgetbase.py +36 -9
- tomwer/gui/control/serie/seriecreator.py +5 -22
- tomwer/gui/control/test/test_email.py +1 -1
- tomwer/gui/control/test/test_scanvalidator.py +6 -5
- tomwer/gui/control/test/test_single_tomo_obj.py +3 -3
- tomwer/gui/control/tomoobjdisplaymode.py +8 -0
- tomwer/gui/debugtools/datasetgenerator.py +3 -3
- tomwer/gui/edit/dkrfpatch.py +20 -26
- tomwer/gui/edit/imagekeyeditor.py +11 -12
- tomwer/gui/edit/nxtomoeditor.py +111 -44
- tomwer/gui/edit/nxtomowarmer.py +7 -6
- tomwer/gui/edit/test/test_dkrf_patch.py +13 -13
- tomwer/gui/edit/test/test_image_key_editor.py +3 -3
- tomwer/gui/edit/test/test_nx_editor.py +40 -16
- tomwer/gui/icat/__init__.py +0 -0
- tomwer/gui/icat/createscreenshots.py +80 -0
- tomwer/gui/icat/gallery.py +214 -0
- tomwer/gui/icat/publish.py +187 -0
- tomwer/gui/imagefromfile.py +2 -2
- tomwer/gui/qfolderdialog.py +24 -1
- tomwer/gui/reconstruction/axis/CompareImages.py +88 -168
- tomwer/gui/reconstruction/axis/axis.py +171 -57
- tomwer/gui/reconstruction/axis/radioaxis.py +122 -257
- tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +3 -2
- tomwer/gui/reconstruction/darkref/darkrefwidget.py +2 -1
- tomwer/gui/reconstruction/nabu/castvolume.py +14 -3
- tomwer/gui/reconstruction/nabu/check.py +9 -9
- tomwer/gui/reconstruction/nabu/helical.py +29 -12
- tomwer/gui/reconstruction/nabu/nabuconfig/base.py +2 -4
- tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +2 -1
- tomwer/gui/reconstruction/nabu/nabuconfig/output.py +126 -35
- tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +39 -32
- tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +222 -31
- tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +57 -27
- tomwer/gui/reconstruction/nabu/nabuflow.py +12 -20
- tomwer/gui/reconstruction/nabu/slices.py +10 -11
- tomwer/gui/reconstruction/nabu/volume.py +22 -10
- tomwer/gui/reconstruction/normalization/intensity.py +18 -48
- tomwer/gui/reconstruction/saaxis/corrangeselector.py +8 -24
- tomwer/gui/reconstruction/saaxis/dimensionwidget.py +1 -1
- tomwer/gui/reconstruction/saaxis/saaxis.py +9 -21
- tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +45 -12
- tomwer/gui/reconstruction/scores/control.py +2 -9
- tomwer/gui/reconstruction/scores/scoreplot.py +13 -11
- tomwer/gui/reconstruction/test/test_axis.py +41 -16
- tomwer/gui/reconstruction/test/test_nabu.py +31 -9
- tomwer/gui/reconstruction/test/test_saaxis.py +3 -3
- tomwer/gui/reconstruction/test/test_sadeltabeta.py +12 -2
- tomwer/gui/settings.py +5 -28
- tomwer/gui/stackplot.py +2 -5
- tomwer/gui/stitching/action.py +49 -0
- tomwer/gui/stitching/config/axisparams.py +7 -24
- tomwer/gui/stitching/config/output.py +10 -8
- tomwer/gui/stitching/config/positionoveraxis.py +22 -23
- tomwer/gui/stitching/normalization.py +117 -0
- tomwer/gui/stitching/stitchandbackground.py +4 -6
- tomwer/gui/stitching/stitching.py +267 -45
- tomwer/gui/stitching/stitching_preview.py +62 -55
- tomwer/gui/stitching/stitching_raw.py +13 -12
- tomwer/gui/stitching/z_stitching/fineestimation.py +0 -60
- tomwer/gui/utils/buttons.py +112 -29
- tomwer/gui/utils/inputwidget.py +43 -25
- tomwer/gui/utils/lineselector/lineselector.py +1 -1
- tomwer/gui/utils/scandescription.py +4 -0
- tomwer/gui/utils/step.py +144 -0
- tomwer/gui/utils/unitsystem.py +2 -5
- tomwer/gui/utils/vignettes.py +176 -15
- tomwer/gui/visualization/dataviewer.py +48 -35
- tomwer/gui/visualization/diffviewer/diffviewer.py +7 -16
- tomwer/gui/visualization/diffviewer/shiftwidget.py +2 -5
- tomwer/gui/visualization/scanoverview.py +1 -1
- tomwer/gui/visualization/sinogramviewer.py +20 -36
- tomwer/gui/visualization/test/test_diffviewer.py +3 -3
- tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +4 -4
- tomwer/gui/visualization/test/test_sinogramviewer.py +2 -2
- tomwer/gui/visualization/test/test_stacks.py +3 -3
- tomwer/gui/visualization/test/test_volumeviewer.py +65 -67
- tomwer/gui/visualization/volumeviewer.py +114 -113
- tomwer/io/utils/h5pyutils.py +3 -3
- tomwer/io/utils/raw_and_processed_data.py +84 -0
- tomwer/io/utils/tomoobj.py +4 -6
- tomwer/io/utils/utils.py +7 -7
- tomwer/resources/gui/icons/parameters.svg +1 -1
- tomwer/resources/gui/icons/ruler.png +0 -0
- tomwer/resources/gui/icons/ruler.svg +273 -0
- tomwer/resources/gui/icons/short_description.png +0 -0
- tomwer/resources/gui/icons/short_description.svg +58 -0
- tomwer/resources/gui/icons/url.png +0 -0
- tomwer/resources/gui/icons/url.svg +58 -0
- tomwer/resources/gui/illustrations/no_rot.svg +1 -1
- tomwer/synctools/stacks/edit/darkflatpatch.py +19 -14
- tomwer/synctools/stacks/edit/imagekeyeditor.py +2 -2
- tomwer/synctools/stacks/reconstruction/axis.py +4 -4
- tomwer/synctools/stacks/reconstruction/castvolume.py +22 -7
- tomwer/synctools/stacks/reconstruction/dkrefcopy.py +25 -20
- tomwer/synctools/stacks/reconstruction/nabu.py +2 -2
- tomwer/synctools/stacks/reconstruction/normalization.py +2 -2
- tomwer/synctools/stacks/reconstruction/saaxis.py +2 -2
- tomwer/synctools/stacks/reconstruction/sadeltabeta.py +2 -2
- tomwer/synctools/test/test_darkRefs.py +7 -58
- tomwer/synctools/test/test_foldertransfer.py +6 -6
- tomwer/synctools/utils/scanstages.py +6 -6
- tomwer/tests/conftest.py +34 -0
- tomwer/tests/datasets.py +13 -0
- tomwer/tests/test_scripts.py +91 -41
- tomwer/tests/utils.py +5 -0
- tomwer/third_part/WaitingOverlay.py +110 -0
- tomwer/third_part/__init__.py +0 -0
- tomwer/version.py +2 -2
- tomwer-1.3.12-py3.11-nspkg.pth +1 -0
- {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/METADATA +73 -58
- {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/RECORD +287 -286
- {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/WHEEL +1 -1
- orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +0 -197
- orangecontrib/tomwer/widgets/reconstruction/icons/XY_lamino.svg +0 -168
- orangecontrib/tomwer/widgets/reconstruction/icons/XZ_lamino.svg +0 -275
- orangecontrib/tomwer/widgets/reconstruction/icons/YZ_lamino.svg +0 -182
- tomwer/app/lamino.py +0 -143
- tomwer/core/process/reconstruction/lamino/__init__.py +0 -1
- tomwer/core/process/reconstruction/lamino/tofu.py +0 -1000
- tomwer/core/process/test/test_lamino.py +0 -76
- tomwer/core/test/test_lamino.py +0 -92
- tomwer/gui/reconstruction/lamino/__init__.py +0 -31
- tomwer/gui/reconstruction/lamino/tofu/TofuOptionLoader.py +0 -107
- tomwer/gui/reconstruction/lamino/tofu/__init__.py +0 -1
- tomwer/gui/reconstruction/lamino/tofu/misc.py +0 -148
- tomwer/gui/reconstruction/lamino/tofu/projections.py +0 -896
- tomwer/gui/reconstruction/lamino/tofu/settings.py +0 -75
- tomwer/gui/reconstruction/lamino/tofu/tofu.py +0 -432
- tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +0 -567
- tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +0 -760
- tomwer/gui/reconstruction/test/test_lamino.py +0 -189
- tomwer/resources/gui/icons/esrf_1.svg +0 -307
- tomwer/resources/gui/icons/lamino_parameters.svg +0 -70
- tomwer/resources/gui/icons/triangle.svg +0 -80
- tomwer/resources/gui/illustrations/lamino_angle.png +0 -0
- tomwer/resources/gui/illustrations/lamino_angle.svg +0 -509
- tomwer/resources/gui/illustrations/lamino_beta_angle.png +0 -0
- tomwer/resources/gui/illustrations/lamino_beta_angle.svg +0 -97
- tomwer/resources/gui/illustrations/lamino_theta_angle.png +0 -0
- tomwer/resources/gui/illustrations/lamino_theta_angle.svg +0 -368
- tomwer/resources/gui/illustrations/manual_slice.png +0 -0
- tomwer/resources/gui/illustrations/manual_slice.svg +0 -221
- tomwer/resources/gui/illustrations/psi_angle.png +0 -0
- tomwer/resources/gui/illustrations/psi_angle.svg +0 -479
- tomwer/resources/gui/illustrations/rotation_center.png +0 -0
- tomwer/resources/gui/illustrations/rotation_center.svg +0 -276
- tomwer/resources/gui/illustrations/slice_stack.png +0 -0
- tomwer/resources/gui/illustrations/slice_stack.svg +0 -266
- tomwer/resources/gui/illustrations/xy_slice.png +0 -0
- tomwer/resources/gui/illustrations/xy_slice.svg +0 -269
- tomwer/resources/gui/illustrations/xz_slice.png +0 -0
- tomwer/resources/gui/illustrations/xz_slice.svg +0 -270
- tomwer/resources/gui/illustrations/yz_slice.png +0 -0
- tomwer/resources/gui/illustrations/yz_slice.svg +0 -270
- tomwer/synctools/stacks/reconstruction/lamino.py +0 -233
- tomwer/synctools/test/test_scanstages.py +0 -162
- tomwer/tests/utils/__init__.py +0 -247
- tomwer/tests/utils/utilstest.py +0 -220
- tomwer-1.2.1-py3.11-nspkg.pth +0 -1
- /tomwer/core/process/control/{email.py → emailnotifier.py} +0 -0
- {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/LICENSE +0 -0
- {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/entry_points.txt +0 -0
- {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/top_level.txt +0 -0
@@ -41,9 +41,9 @@ from silx.gui import qt
|
|
41
41
|
import tomwer.core.process.reconstruction.sadeltabeta.sadeltabeta
|
42
42
|
from orangecontrib.tomwer.orange.managedprocess import SuperviseOW
|
43
43
|
from orangecontrib.tomwer.orange.settings import CallbackSettingsHandler
|
44
|
-
from tomwer.core import settings
|
44
|
+
from tomwer.core import settings
|
45
|
+
from tomwer.core.utils.lbsram import is_low_on_memory
|
45
46
|
from tomwer.core.cluster import SlurmClusterConfiguration
|
46
|
-
from tomwer.core.futureobject import FutureTomwerObject
|
47
47
|
from tomwer.core.process.reconstruction.sadeltabeta import SADeltaBetaTask
|
48
48
|
from tomwer.core.scan.scanbase import TomwerScanBase, _TomwerBaseDock
|
49
49
|
from tomwer.gui.reconstruction.sadeltabeta import (
|
@@ -198,16 +198,14 @@ class SADeltaBetaOW(SuperviseOW, WidgetLongProcessing):
|
|
198
198
|
Details about :ref:`sadeltabeta score calculation`
|
199
199
|
"""
|
200
200
|
|
201
|
-
name = "
|
201
|
+
name = "multi-pag (sa-delta/beta calculation)"
|
202
202
|
id = "orange.widgets.tomwer.sa_delta_beta"
|
203
|
-
description =
|
204
|
-
"compute several delta / beta value to get the optimal "
|
205
|
-
"delta / beta value (before reconstructing a volume for "
|
206
|
-
"example."
|
207
|
-
)
|
203
|
+
description = "Reconstruct a slice with several delta / beta values."
|
208
204
|
icon = "icons/delta_beta_range.png"
|
209
205
|
priority = 22
|
210
206
|
keywords = [
|
207
|
+
"multi",
|
208
|
+
"multi-pag",
|
211
209
|
"tomography",
|
212
210
|
"semi automatic",
|
213
211
|
"half automatic",
|
@@ -257,12 +255,6 @@ class SADeltaBetaOW(SuperviseOW, WidgetLongProcessing):
|
|
257
255
|
class Outputs:
|
258
256
|
data = Output(name="data", type=TomwerScanBase)
|
259
257
|
|
260
|
-
future_out = Output(
|
261
|
-
name="future_tomo_obj",
|
262
|
-
type=FutureTomwerObject,
|
263
|
-
doc="data with some remote processing",
|
264
|
-
)
|
265
|
-
|
266
258
|
def __init__(self, parent=None):
|
267
259
|
"""
|
268
260
|
|
@@ -285,7 +277,6 @@ class SADeltaBetaOW(SuperviseOW, WidgetLongProcessing):
|
|
285
277
|
|
286
278
|
# connect signal / slot
|
287
279
|
self._widget.sigConfigurationChanged.connect(self._updateSettings)
|
288
|
-
self.destroyed.connect(self._widget.stop)
|
289
280
|
self._widget._processing_stack.sigComputationStarted.connect(
|
290
281
|
self._startProcessing
|
291
282
|
)
|
@@ -336,9 +327,7 @@ class SADeltaBetaOW(SuperviseOW, WidgetLongProcessing):
|
|
336
327
|
scan.sa_delta_beta_params = QSADeltaBetaParams()
|
337
328
|
self._skipCurrentScan(new_scan=scan)
|
338
329
|
|
339
|
-
if settings.isOnLbsram(scan) and
|
340
|
-
settings.get_lbsram_path()
|
341
|
-
):
|
330
|
+
if settings.isOnLbsram(scan) and is_low_on_memory(settings.get_lbsram_path()):
|
342
331
|
self.notify_skip(
|
343
332
|
scan=scan,
|
344
333
|
details=f"sa-delta-beta has been skiped for {scan} because of low space in lbsram",
|
@@ -393,14 +382,6 @@ class SADeltaBetaOW(SuperviseOW, WidgetLongProcessing):
|
|
393
382
|
"autofocus_lock": self._widget.isAutoFocusLock(),
|
394
383
|
}
|
395
384
|
|
396
|
-
def close(self):
|
397
|
-
self.stop()
|
398
|
-
self._widget = None
|
399
|
-
super().close()
|
400
|
-
|
401
|
-
def stop(self):
|
402
|
-
self._widget.stop()
|
403
|
-
|
404
385
|
def getConfiguration(self):
|
405
386
|
return self._widget.getConfiguration()
|
406
387
|
|
@@ -418,3 +399,14 @@ class SADeltaBetaOW(SuperviseOW, WidgetLongProcessing):
|
|
418
399
|
# if possible process next
|
419
400
|
if self._widget._processing_stack.can_process_next():
|
420
401
|
self._widget._processing_stack._process_next()
|
402
|
+
|
403
|
+
def getWaitingOverlay(self):
|
404
|
+
return self._widget._tabWidget._resultsViewer._plot.getWaiterOverlay()
|
405
|
+
|
406
|
+
def _startProcessing(self, *args, **kwargs):
|
407
|
+
self.getWaitingOverlay().show()
|
408
|
+
super()._startProcessing()
|
409
|
+
|
410
|
+
def _endProcessing(self, *args, **kwargs):
|
411
|
+
self.getWaitingOverlay().hide()
|
412
|
+
super()._endProcessing()
|
@@ -42,7 +42,8 @@ from tomoscan.normalization import Method as NormMethod
|
|
42
42
|
|
43
43
|
from orangecontrib.tomwer.widgets.utils import WidgetLongProcessing
|
44
44
|
|
45
|
-
from tomwer.core import settings
|
45
|
+
from tomwer.core import settings
|
46
|
+
from tomwer.core.utils.lbsram import is_low_on_memory
|
46
47
|
from tomwer.core.process.reconstruction.normalization import SinoNormalizationTask
|
47
48
|
from tomwer.core.process.reconstruction.normalization.params import _ValueSource
|
48
49
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
@@ -163,7 +164,6 @@ class SinoNormOW(WidgetLongProcessing, SuperviseOW):
|
|
163
164
|
|
164
165
|
# connect signal / slot
|
165
166
|
self._window.sigConfigurationChanged.connect(self._updateSettings)
|
166
|
-
self.destroyed.connect(self._window.stop)
|
167
167
|
self._window._processing_stack.sigComputationStarted.connect(
|
168
168
|
self._startProcessing
|
169
169
|
)
|
@@ -197,9 +197,7 @@ class SinoNormOW(WidgetLongProcessing, SuperviseOW):
|
|
197
197
|
return
|
198
198
|
|
199
199
|
self._skipCurrentScan(new_scan=scan)
|
200
|
-
if settings.isOnLbsram(scan) and
|
201
|
-
settings.get_lbsram_path()
|
202
|
-
):
|
200
|
+
if settings.isOnLbsram(scan) and is_low_on_memory(settings.get_lbsram_path()):
|
203
201
|
details = f"skip {scan} because low memory on lbsram"
|
204
202
|
self.notify_skip(scan=scan, details=details)
|
205
203
|
self.Outputs.data_out.send(scan)
|
@@ -219,17 +217,18 @@ class SinoNormOW(WidgetLongProcessing, SuperviseOW):
|
|
219
217
|
tomwer_processing_res_code = extra_infos.pop(
|
220
218
|
"tomwer_processing_res_code", "unprocessed"
|
221
219
|
)
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
220
|
+
with scan.acquire_process_file_lock():
|
221
|
+
SinoNormalizationTask._register_process(
|
222
|
+
process_file=scan.process_file,
|
223
|
+
process=SinoNormalizationTask,
|
224
|
+
entry=scan.entry,
|
225
|
+
configuration=self.getConfiguration(),
|
226
|
+
results={
|
227
|
+
"method": scan.intensity_normalization.method.value,
|
228
|
+
"extra_infos": extra_infos,
|
229
|
+
},
|
230
|
+
process_index=scan.pop_process_index(),
|
231
|
+
)
|
233
232
|
if tomwer_processing_res_code is True:
|
234
233
|
# if defined by manual scalar we need to set the value
|
235
234
|
if extra_infos.get("source", None) == _ValueSource.MANUAL_SCALAR.value:
|
@@ -293,9 +292,6 @@ class SinoNormOW(WidgetLongProcessing, SuperviseOW):
|
|
293
292
|
def getConfiguration(self):
|
294
293
|
return self._window.getConfiguration()
|
295
294
|
|
296
|
-
def stop(self):
|
297
|
-
self._window.stop()
|
298
|
-
|
299
295
|
def _updateSettings(self):
|
300
296
|
self._ewoks_default_inputs = self._window.getConfiguration()
|
301
297
|
self._ewoks_default_inputs["__lock__"] = self.isLocked()
|
@@ -120,15 +120,15 @@ class DataViewerOW(widget.OWBaseWidget, openclass=True):
|
|
120
120
|
return qt.QSize(400, 500)
|
121
121
|
|
122
122
|
def _updateSettings(self):
|
123
|
-
self._viewer_config[ # pylint: disable=E1137
|
124
|
-
|
125
|
-
|
126
|
-
self._viewer_config[ # pylint: disable=E1137
|
127
|
-
|
128
|
-
|
129
|
-
self._viewer_config[ # pylint: disable=E1137
|
130
|
-
|
131
|
-
|
123
|
+
self._viewer_config["mode"] = ( # pylint: disable=E1137
|
124
|
+
self.viewer.getDisplayMode().value
|
125
|
+
)
|
126
|
+
self._viewer_config["slice_opt"] = ( # pylint: disable=E1137
|
127
|
+
self.viewer.getSliceOption().value
|
128
|
+
)
|
129
|
+
self._viewer_config["radio_opt"] = ( # pylint: disable=E1137
|
130
|
+
self.viewer.getRadioOption().value
|
131
|
+
)
|
132
132
|
|
133
133
|
def _setSettings(self, settings):
|
134
134
|
old_state = self.viewer.blockSignals(True)
|
@@ -47,7 +47,7 @@ class DiffViewerOW(widget.OWBaseWidget, openclass=True):
|
|
47
47
|
Allows to compare two random frame.
|
48
48
|
"""
|
49
49
|
|
50
|
-
name = "diff viewer"
|
50
|
+
name = "diff frame viewer"
|
51
51
|
id = "orangecontrib.tomwer.widgets.visualization.diffviewerow"
|
52
52
|
description = "Allows comparison between two random frame from a scan"
|
53
53
|
icon = "icons/diff.png"
|
@@ -32,7 +32,7 @@ from orangewidget.widget import Input
|
|
32
32
|
|
33
33
|
import tomwer.core.process.visualization.liveslice
|
34
34
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
35
|
-
from tomwer.core.utils import getFirstProjFile
|
35
|
+
from tomwer.core.utils.spec import getFirstProjFile
|
36
36
|
|
37
37
|
try:
|
38
38
|
from liveslice.gui.liveslice_gui import ReconstructionApp
|
@@ -2,7 +2,7 @@ from orangewidget import gui, widget
|
|
2
2
|
from orangewidget.widget import Input, Output
|
3
3
|
from silx.gui import qt
|
4
4
|
|
5
|
-
from tomwer.core.scan.
|
5
|
+
from tomwer.core.scan.nxtomoscan import NXtomoScan
|
6
6
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
7
7
|
from tomwer.gui.visualization.nxtomometadata import NXtomoMetadataViewer
|
8
8
|
|
@@ -56,9 +56,9 @@ class NXtomoMetadataViewerOW(widget.OWBaseWidget, openclass=True):
|
|
56
56
|
def setScan(self, scan):
|
57
57
|
if scan is None:
|
58
58
|
pass
|
59
|
-
elif not isinstance(scan,
|
59
|
+
elif not isinstance(scan, NXtomoScan):
|
60
60
|
raise TypeError(
|
61
|
-
f"expect to have an instance of {
|
61
|
+
f"expect to have an instance of {NXtomoScan}. {type(scan)} provided."
|
62
62
|
)
|
63
63
|
else:
|
64
64
|
self.widget.setScan(scan)
|
@@ -79,7 +79,6 @@ class SinogramViewerOW(WidgetLongProcessing, widget.OWBaseWidget, openclass=True
|
|
79
79
|
# connect signal / slot
|
80
80
|
self._viewer.sigSinoLoadStarted.connect(self._startProcessing)
|
81
81
|
self._viewer.sigSinoLoadEnded.connect(self._endProcessing)
|
82
|
-
self.destroyed.connect(self._viewer._stopAnimationThread)
|
83
82
|
|
84
83
|
@Inputs.data
|
85
84
|
def addLeafScan(self, scanID):
|
@@ -1,32 +1,3 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# /*##########################################################################
|
3
|
-
#
|
4
|
-
# Copyright (c) 2016-2017 European Synchrotron Radiation Facility
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
# of this software and associated documentation files (the "Software"), to deal
|
8
|
-
# in the Software without restriction, including without limitation the rights
|
9
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
# copies of the Software, and to permit persons to whom the Software is
|
11
|
-
# furnished to do so, subject to the following conditions:
|
12
|
-
#
|
13
|
-
# The above copyright notice and this permission notice shall be included in
|
14
|
-
# all copies or substantial portions of the Software.
|
15
|
-
#
|
16
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
-
# THE SOFTWARE.
|
23
|
-
#
|
24
|
-
# ###########################################################################*/
|
25
|
-
|
26
|
-
__authors__ = ["H. Payno"]
|
27
|
-
__license__ = "MIT"
|
28
|
-
__date__ = "21/07/2020"
|
29
|
-
|
30
1
|
import pytest
|
31
2
|
from orangewidget import gui, widget
|
32
3
|
from orangewidget.widget import Input
|
@@ -79,6 +50,9 @@ class VolumeViewerOW(widget.OWBaseWidget, openclass=True):
|
|
79
50
|
self.viewer.setScan(scan)
|
80
51
|
|
81
52
|
@Inputs.volume
|
53
|
+
def _volumeReceived(self, volume, *args, **kwargs):
|
54
|
+
self.addVolume(volume)
|
55
|
+
|
82
56
|
def addVolume(self, volume):
|
83
57
|
if volume is None:
|
84
58
|
return
|
tomwer/__main__.py
CHANGED
@@ -36,21 +36,16 @@ __date__ = "10/11/2020"
|
|
36
36
|
|
37
37
|
|
38
38
|
import sys
|
39
|
-
import logging
|
40
|
-
import traceback
|
41
39
|
from collections import namedtuple
|
42
40
|
import tomwer.version
|
43
41
|
from tomwer.utils import Launcher as _Launcher
|
44
|
-
|
42
|
+
from tomwer.core.utils.deprecation import deprecated_warning
|
45
43
|
|
46
44
|
DeprecationWarning = namedtuple(
|
47
45
|
"DeprecationWarning", ["since", "reason", "replacement"]
|
48
46
|
)
|
49
47
|
|
50
48
|
|
51
|
-
depreclog = logging.getLogger("nxtomomill.DEPRECATION")
|
52
|
-
|
53
|
-
|
54
49
|
class Launcher(_Launcher):
|
55
50
|
"""
|
56
51
|
Manage launch of module.
|
@@ -115,48 +110,6 @@ class Launcher(_Launcher):
|
|
115
110
|
super().execute(argv=argv)
|
116
111
|
|
117
112
|
|
118
|
-
def deprecated_warning(
|
119
|
-
type_,
|
120
|
-
name,
|
121
|
-
reason=None,
|
122
|
-
replacement=None,
|
123
|
-
since_version=None,
|
124
|
-
skip_backtrace_count=0,
|
125
|
-
):
|
126
|
-
"""
|
127
|
-
Function to log a deprecation warning
|
128
|
-
|
129
|
-
:param str type_: Nature of the object to be deprecated:
|
130
|
-
"Module", "Function", "Class" ...
|
131
|
-
:param name: Object name.
|
132
|
-
:param str reason: Reason for deprecating this function
|
133
|
-
(e.g. "feature no longer provided",
|
134
|
-
:param str replacement: Name of replacement function (if the reason for
|
135
|
-
deprecating was to rename the function)
|
136
|
-
:param str since_version: First *silx* version for which the function was
|
137
|
-
deprecated (e.g. "0.5.0").
|
138
|
-
:param int skip_backtrace_count: Amount of last backtrace to ignore when
|
139
|
-
logging the backtrace
|
140
|
-
"""
|
141
|
-
if not depreclog.isEnabledFor(logging.WARNING):
|
142
|
-
# Avoid computation when it is not logged
|
143
|
-
return
|
144
|
-
|
145
|
-
msg = "%s %s is deprecated"
|
146
|
-
if since_version is not None:
|
147
|
-
msg += " since silx version %s" % since_version
|
148
|
-
msg += "."
|
149
|
-
if reason is not None:
|
150
|
-
msg += " Reason: %s." % reason
|
151
|
-
if replacement is not None:
|
152
|
-
msg += " Use '%s' instead." % replacement
|
153
|
-
msg += "\n%s"
|
154
|
-
limit = 2 + skip_backtrace_count
|
155
|
-
backtrace = "".join(traceback.format_stack(limit=limit)[0])
|
156
|
-
backtrace = backtrace.rstrip()
|
157
|
-
depreclog.warning(msg, type_, name, backtrace)
|
158
|
-
|
159
|
-
|
160
113
|
def main():
|
161
114
|
"""Main function of the launcher
|
162
115
|
|
@@ -216,14 +169,14 @@ def main():
|
|
216
169
|
description="Tool to compute intensity normalization.",
|
217
170
|
)
|
218
171
|
launcher.add_command(
|
219
|
-
"
|
220
|
-
module_name="tomwer.app.
|
221
|
-
description="
|
172
|
+
"multi-cor",
|
173
|
+
module_name="tomwer.app.multicor",
|
174
|
+
description="Compute a slice with different values of cor",
|
222
175
|
)
|
223
176
|
launcher.add_command(
|
224
|
-
"
|
225
|
-
module_name="tomwer.app.
|
226
|
-
description="
|
177
|
+
"multi-pag",
|
178
|
+
module_name="tomwer.app.multipag",
|
179
|
+
description="compute a slice with different values of delta / beta values",
|
227
180
|
)
|
228
181
|
launcher.add_command(
|
229
182
|
"nabu",
|
@@ -273,16 +226,6 @@ def main():
|
|
273
226
|
module_name="tomwer.app.sinogramviewer",
|
274
227
|
description="Allows to compute on the fly sinogram " "and display them",
|
275
228
|
)
|
276
|
-
launcher.add_command(
|
277
|
-
"sa-axis",
|
278
|
-
module_name="tomwer.app.saaxis",
|
279
|
-
description="Semi-automatic center of rotation research",
|
280
|
-
)
|
281
|
-
launcher.add_command(
|
282
|
-
"sa-delta-beta",
|
283
|
-
module_name="tomwer.app.sadeltabeta",
|
284
|
-
description="Semi-automatic delta/beta Paganin parameter research",
|
285
|
-
)
|
286
229
|
launcher.add_command(
|
287
230
|
"scan-viewer",
|
288
231
|
module_name="tomwer.app.scanviewer",
|
tomwer/app/axis.py
CHANGED
@@ -6,7 +6,7 @@ import functools
|
|
6
6
|
import logging
|
7
7
|
import signal
|
8
8
|
import sys
|
9
|
-
|
9
|
+
import silx
|
10
10
|
from silx.gui import qt
|
11
11
|
|
12
12
|
from tomwer.core.process.reconstruction.axis.axis import (
|
@@ -124,9 +124,9 @@ def main(argv):
|
|
124
124
|
logging.root.setLevel(logging.DEBUG)
|
125
125
|
|
126
126
|
if options.use_opengl_plot:
|
127
|
-
import silx
|
128
|
-
|
129
127
|
silx.config.DEFAULT_PLOT_BACKEND = "gl"
|
128
|
+
else:
|
129
|
+
silx.config.DEFAULT_PLOT_BACKEND = "matplotlib"
|
130
130
|
|
131
131
|
increase_max_number_file()
|
132
132
|
|
tomwer/app/canvas.py
CHANGED
@@ -23,11 +23,19 @@ except ImportError:
|
|
23
23
|
has_nabu = False
|
24
24
|
else:
|
25
25
|
has_nabu = True
|
26
|
+
try:
|
27
|
+
import nxtomo.version
|
28
|
+
except ImportError:
|
29
|
+
has_nxtomo = False
|
30
|
+
else:
|
31
|
+
has_nxtomo = True
|
26
32
|
|
27
33
|
|
28
34
|
def print_versions():
|
29
35
|
print(f"tomwer version is {tomwer.version.version}")
|
30
36
|
print(f"tomoscan version is {tomoscan.version.version}")
|
37
|
+
if has_nxtomo:
|
38
|
+
print(f"nxtomo version is {nxtomo.version.version}")
|
31
39
|
if has_nxtomomill:
|
32
40
|
print(f"nxtomomill version is {nxtomomill.version.version}")
|
33
41
|
if has_nabu:
|
@@ -112,9 +112,9 @@ class TomwerConfig(config.Config):
|
|
112
112
|
|
113
113
|
all_eps = sorted(
|
114
114
|
all_eps,
|
115
|
-
key=lambda ep:
|
116
|
-
|
117
|
-
|
115
|
+
key=lambda ep: (
|
116
|
+
0 if ep.dist.project_name.lower() in ("orange3", "tomwer") else 1
|
117
|
+
),
|
118
118
|
)
|
119
119
|
return iter(all_eps)
|
120
120
|
|
@@ -185,17 +185,19 @@ class TerminalTextDocument(_TerminalTextDocument):
|
|
185
185
|
def writeWithFormat(self, string: str, charformat) -> None:
|
186
186
|
assert qt.QThread.currentThread() is self.thread()
|
187
187
|
# remove linux reset sequence
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
188
|
+
from tomwer.core.log import logger as tomwer_logger
|
189
|
+
|
190
|
+
for sequence in (
|
191
|
+
tomwer_logger._RESET_SEQ,
|
192
|
+
tomwer_logger._BOLD_SEQ,
|
193
|
+
tomwer_logger._BLACK,
|
194
|
+
tomwer_logger._RED,
|
195
|
+
tomwer_logger._GREEN,
|
196
|
+
tomwer_logger._YELLOW,
|
197
|
+
tomwer_logger._BLUE,
|
198
|
+
tomwer_logger._MAGENTA,
|
199
|
+
):
|
200
|
+
string = string.replace(sequence, "")
|
199
201
|
|
200
202
|
color = self.get_log_level(string) or qt.Qt.red
|
201
203
|
charformat.setForeground(color)
|
@@ -4,6 +4,7 @@ import os
|
|
4
4
|
import shutil
|
5
5
|
import signal
|
6
6
|
import sys
|
7
|
+
import silx
|
7
8
|
from typing import List
|
8
9
|
from contextlib import closing
|
9
10
|
from logging.handlers import RotatingFileHandler
|
@@ -299,13 +300,15 @@ class _OMain(ocMain):
|
|
299
300
|
# define an environment variable.
|
300
301
|
# this way we should also be able to let the user define it
|
301
302
|
# on it's own later...
|
303
|
+
|
302
304
|
if self.options.use_opengl_plot:
|
303
|
-
import silx
|
304
305
|
|
305
306
|
# other standalones are not passing by the silx.config
|
306
307
|
# but for the canvas this is way simpler to use it.
|
307
308
|
# then all plot which have backend==None will pick the default plot backend
|
308
309
|
silx.config.DEFAULT_PLOT_BACKEND = "gl"
|
310
|
+
else:
|
311
|
+
silx.config.DEFAULT_PLOT_BACKEND = "matplotlib"
|
309
312
|
|
310
313
|
def setup_logging(self):
|
311
314
|
super().setup_logging()
|
tomwer/app/darkref.py
CHANGED
tomwer/app/darkrefpatch.py
CHANGED
tomwer/app/diffframe.py
CHANGED
@@ -5,7 +5,7 @@ import argparse
|
|
5
5
|
import logging
|
6
6
|
import signal
|
7
7
|
import sys
|
8
|
-
|
8
|
+
import silx
|
9
9
|
from silx.gui import qt
|
10
10
|
|
11
11
|
from tomwer.core.scan.scanfactory import ScanFactory
|
@@ -82,9 +82,9 @@ def main(argv):
|
|
82
82
|
scan_2 = None
|
83
83
|
|
84
84
|
if options.use_opengl_plot:
|
85
|
-
import silx
|
86
|
-
|
87
85
|
silx.config.DEFAULT_PLOT_BACKEND = "gl"
|
86
|
+
else:
|
87
|
+
silx.config.DEFAULT_PLOT_BACKEND = "matplotlib"
|
88
88
|
|
89
89
|
# handle gui
|
90
90
|
widget = DiffFrameViewer(parent=None)
|
tomwer/app/imagekeyeditor.py
CHANGED
@@ -8,7 +8,7 @@ import sys
|
|
8
8
|
|
9
9
|
from silx.gui import qt
|
10
10
|
|
11
|
-
from tomwer.core.scan.
|
11
|
+
from tomwer.core.scan.nxtomoscan import NXtomoScan
|
12
12
|
from tomwer.core.utils.resource import increase_max_number_file
|
13
13
|
from tomwer.core.process.edit.imagekeyeditor import ImageKeyEditorTask
|
14
14
|
from tomwer.gui import icons
|
@@ -25,8 +25,8 @@ class ImageKeyDialog(_ImageKeyDialog):
|
|
25
25
|
self._scan = None
|
26
26
|
|
27
27
|
def setScan(self, scan):
|
28
|
-
if not isinstance(scan,
|
29
|
-
raise TypeError("This only manage
|
28
|
+
if not isinstance(scan, NXtomoScan):
|
29
|
+
raise TypeError("This only manage NXtomoScan")
|
30
30
|
self._scan = scan
|
31
31
|
_ImageKeyDialog.setScan(self, scan)
|
32
32
|
|
@@ -65,8 +65,8 @@ def main(argv):
|
|
65
65
|
parser.add_argument("entry", default=None, help="Entry to treat")
|
66
66
|
options = parser.parse_args(argv[1:])
|
67
67
|
|
68
|
-
# image key can only handle
|
69
|
-
scan =
|
68
|
+
# image key can only handle NXtomoScan for now
|
69
|
+
scan = NXtomoScan(scan=options.scan_path, entry=options.entry)
|
70
70
|
increase_max_number_file()
|
71
71
|
|
72
72
|
app = qt.QApplication.instance() or qt.QApplication(["tomwer"])
|
tomwer/app/imagekeyupgrader.py
CHANGED
@@ -9,7 +9,7 @@ import sys
|
|
9
9
|
from silx.gui import qt
|
10
10
|
|
11
11
|
from tomwer.core.process.edit.imagekeyeditor import ImageKeyUpgraderTask
|
12
|
-
from tomwer.core.scan.
|
12
|
+
from tomwer.core.scan.nxtomoscan import NXtomoScan
|
13
13
|
from tomwer.core.utils.resource import increase_max_number_file
|
14
14
|
from tomwer.gui import icons
|
15
15
|
from tomwer.gui.edit.imagekeyeditor import (
|
@@ -40,8 +40,8 @@ class ImageKeyUpgraderDialog(qt.QDialog):
|
|
40
40
|
self._buttons.button(qt.QDialogButtonBox.Cancel).released.connect(self.close)
|
41
41
|
|
42
42
|
def setScan(self, scan):
|
43
|
-
if not isinstance(scan,
|
44
|
-
raise TypeError("This only manage
|
43
|
+
if not isinstance(scan, NXtomoScan):
|
44
|
+
raise TypeError("This only manage NXtomoScan")
|
45
45
|
self._scan = scan
|
46
46
|
|
47
47
|
def validate(self):
|
@@ -74,8 +74,8 @@ def main(argv):
|
|
74
74
|
parser.add_argument("entry", default=None, help="Entry to treat")
|
75
75
|
options = parser.parse_args(argv[1:])
|
76
76
|
|
77
|
-
# image key can only handle
|
78
|
-
scan =
|
77
|
+
# image key can only handle NXtomoScan for now
|
78
|
+
scan = NXtomoScan(scan=options.scan_path, entry=options.entry)
|
79
79
|
increase_max_number_file()
|
80
80
|
|
81
81
|
app = qt.QApplication.instance() or qt.QApplication(["tomwer"])
|
@@ -10,7 +10,7 @@ import sys
|
|
10
10
|
from silx.gui import qt
|
11
11
|
|
12
12
|
from tomwer.core.process.reconstruction.normalization import SinoNormalizationTask
|
13
|
-
from tomwer.core.scan.
|
13
|
+
from tomwer.core.scan.nxtomoscan import NXtomoScan
|
14
14
|
from tomwer.core.scan.scanbase import TomwerScanBase
|
15
15
|
from tomwer.core.scan.scanfactory import ScanFactory
|
16
16
|
from tomwer.gui import icons
|
@@ -72,17 +72,18 @@ class NormIntensityWindow(_SinoNormWindow):
|
|
72
72
|
def _validated(self):
|
73
73
|
scan = self.getScan()
|
74
74
|
if scan is not None:
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
75
|
+
with scan.acquire_process_file_lock():
|
76
|
+
SinoNormalizationTask._register_process(
|
77
|
+
process_file=scan.process_file,
|
78
|
+
process=SinoNormalizationTask,
|
79
|
+
entry=scan.entry,
|
80
|
+
configuration=self.getConfiguration(),
|
81
|
+
results={
|
82
|
+
"method": scan.intensity_normalization.method.value,
|
83
|
+
"extra_infos": scan.intensity_normalization.get_extra_infos(),
|
84
|
+
},
|
85
|
+
process_index=scan.pop_process_index(),
|
86
|
+
)
|
86
87
|
self.close()
|
87
88
|
|
88
89
|
def _launchProcessing(self):
|
@@ -175,7 +176,7 @@ def main(argv):
|
|
175
176
|
)
|
176
177
|
if options.entry is None:
|
177
178
|
raise ValueError("entry in the master file should be specify")
|
178
|
-
scan =
|
179
|
+
scan = NXtomoScan(scan=options.scan_path, entry=options.entry)
|
179
180
|
else:
|
180
181
|
scan = ScanFactory.mock_scan()
|
181
182
|
# define the process_index is any tomwer_processes_existing
|