tomwer 1.1.0rc6__py3-none-any.whl → 1.1.1__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/widgets/cluster/__init__.py +1 -1
- orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +0 -1
- orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +5 -4
- orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +3 -1
- orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +1 -1
- tomwer/app/canvas_launcher/mainwindow.py +62 -0
- tomwer/core/process/reconstruction/nabu/nabucommon.py +10 -5
- tomwer/core/process/reconstruction/nabu/nabuscores.py +13 -7
- tomwer/core/process/reconstruction/nabu/nabuslices.py +15 -3
- tomwer/core/process/reconstruction/nabu/nabuvolume.py +4 -1
- tomwer/core/process/reconstruction/nabu/utils.py +1 -0
- tomwer/core/process/reconstruction/saaxis/saaxis.py +14 -6
- tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +6 -1
- tomwer/core/scan/edfscan.py +4 -0
- tomwer/core/scan/test/test_scan.py +31 -29
- tomwer/core/utils/char.py +2 -0
- tomwer/gui/edit/imagekeyeditor.py +10 -7
- tomwer/gui/edit/nxtomoeditor.py +4 -2
- tomwer/gui/reconstruction/nabu/castvolume.py +29 -25
- tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +1 -1
- tomwer/gui/utils/unitsystem.py +4 -1
- tomwer/gui/visualization/dataviewer.py +3 -1
- tomwer/gui/visualization/diffviewer/diffviewer.py +2 -11
- tomwer/resources/gui/illustrations/ctf_z1.png +0 -0
- tomwer/resources/gui/illustrations/ctf_z1.svg +36 -63
- tomwer/version.py +3 -3
- {tomwer-1.1.0rc6.dist-info → tomwer-1.1.1.dist-info}/METADATA +1 -1
- {tomwer-1.1.0rc6.dist-info → tomwer-1.1.1.dist-info}/RECORD +34 -34
- /tomwer-1.1.0rc6-py3.8-nspkg.pth → /tomwer-1.1.1-py3.8-nspkg.pth +0 -0
- {tomwer-1.1.0rc6.dist-info → tomwer-1.1.1.dist-info}/LICENSE +0 -0
- {tomwer-1.1.0rc6.dist-info → tomwer-1.1.1.dist-info}/WHEEL +0 -0
- {tomwer-1.1.0rc6.dist-info → tomwer-1.1.1.dist-info}/entry_points.txt +0 -0
- {tomwer-1.1.0rc6.dist-info → tomwer-1.1.1.dist-info}/namespace_packages.txt +0 -0
- {tomwer-1.1.0rc6.dist-info → tomwer-1.1.1.dist-info}/top_level.txt +0 -0
@@ -190,7 +190,8 @@ class SAAxisWindow(_SAAxisWindow):
|
|
190
190
|
if scan is None:
|
191
191
|
return
|
192
192
|
assert isinstance(scan, TomwerScanBase)
|
193
|
-
selected_cor_value = self.getCurrentCorValue()
|
193
|
+
selected_cor_value = self.getCurrentCorValue() or scan.saaxis_params.autofocus
|
194
|
+
# if validate is done manually then pick current cor value; else we are in 'auto mode' and get it from the autofocus.
|
194
195
|
details = ProcessManager().get_dataset_details(
|
195
196
|
dataset_id=scan.get_identifier(), process=self._processing_stack
|
196
197
|
)
|
@@ -453,9 +454,9 @@ class SAAxisOW(SuperviseOW, WidgetLongProcessing):
|
|
453
454
|
"data": None,
|
454
455
|
"sa_axis_params": self._widget.getConfiguration(),
|
455
456
|
}
|
456
|
-
self._ewoks_default_inputs["sa_axis_params"][
|
457
|
-
"autofocus_lock"
|
458
|
-
|
457
|
+
self._ewoks_default_inputs["sa_axis_params"]["workflow"] = {
|
458
|
+
"autofocus_lock": self._widget.isAutoFocusLock(),
|
459
|
+
}
|
459
460
|
|
460
461
|
def _raiseResults(self):
|
461
462
|
if not self.isAutoFocusLock():
|
@@ -125,7 +125,9 @@ class SADeltaBetaWindow(_SADeltaBetaWindow):
|
|
125
125
|
if scan is None:
|
126
126
|
return
|
127
127
|
assert isinstance(scan, TomwerScanBase)
|
128
|
-
selected_db_value =
|
128
|
+
selected_db_value = (
|
129
|
+
self.getCurrentDeltaBetaValue() or scan.sa_delta_beta_params.autofocus
|
130
|
+
)
|
129
131
|
if selected_db_value is None:
|
130
132
|
infos = "no selected delta / beta value. {} skip SADeltaBetaParams".format(
|
131
133
|
scan
|
@@ -16,6 +16,7 @@ from orangecanvas.application.outputview import (
|
|
16
16
|
ExceptHook,
|
17
17
|
TerminalTextDocument,
|
18
18
|
)
|
19
|
+
from xml.sax.saxutils import escape
|
19
20
|
import logging
|
20
21
|
import os
|
21
22
|
import shutil
|
@@ -26,6 +27,19 @@ from .config import TomwerConfig, TomwerSplashScreen
|
|
26
27
|
import tomwer.version
|
27
28
|
from urllib.request import urlopen
|
28
29
|
|
30
|
+
try:
|
31
|
+
import nabu
|
32
|
+
except ImportError:
|
33
|
+
has_nabu = False
|
34
|
+
else:
|
35
|
+
has_nabu = True
|
36
|
+
try:
|
37
|
+
import nxtomomill.version
|
38
|
+
except ImportError:
|
39
|
+
has_nxtomomill = False
|
40
|
+
else:
|
41
|
+
has_nxtomomill = True
|
42
|
+
|
29
43
|
_logger = logging.getLogger(__file__)
|
30
44
|
|
31
45
|
MAX_LOG_FILE = 10
|
@@ -68,6 +82,13 @@ class MainWindow(_MainWindow):
|
|
68
82
|
super().setup_menu()
|
69
83
|
self.view_menu.addAction(self.show_processes_manager_action)
|
70
84
|
|
85
|
+
def open_about(self):
|
86
|
+
# type: () -> None
|
87
|
+
"""Open the about dialog."""
|
88
|
+
dlg = AboutDialog(self)
|
89
|
+
dlg.setAttribute(qt.Qt.WA_DeleteOnClose)
|
90
|
+
dlg.exec()
|
91
|
+
|
71
92
|
|
72
93
|
log = logging.getLogger(__name__)
|
73
94
|
|
@@ -175,6 +196,47 @@ def widget_settings_dir():
|
|
175
196
|
return os.path.join(data_dir(), "widgets")
|
176
197
|
|
177
198
|
|
199
|
+
ABOUT_TEMPLATE = """\
|
200
|
+
<center>
|
201
|
+
<h4>{name}</h4>
|
202
|
+
<p>tomwer version: {tomwer_version}</p>
|
203
|
+
<p>nabu version: {nabu_version}</p>
|
204
|
+
<p>nxtomomill version: {nxtomomill_version}</p>
|
205
|
+
</center>
|
206
|
+
"""
|
207
|
+
|
208
|
+
|
209
|
+
class AboutDialog(qt.QDialog):
|
210
|
+
def __init__(self, parent=None, **kwargs) -> None:
|
211
|
+
super().__init__(parent, **kwargs)
|
212
|
+
layout = qt.QVBoxLayout()
|
213
|
+
label = qt.QLabel(self)
|
214
|
+
|
215
|
+
pixmap, _ = TomwerConfig.splash_screen()
|
216
|
+
pixmap = pixmap.scaled(150, 150)
|
217
|
+
|
218
|
+
label.setPixmap(pixmap)
|
219
|
+
|
220
|
+
layout.addWidget(label, qt.Qt.AlignCenter)
|
221
|
+
|
222
|
+
text = ABOUT_TEMPLATE.format(
|
223
|
+
name=escape("tomwer"),
|
224
|
+
tomwer_version=escape(tomwer.version.version),
|
225
|
+
nabu_version=escape(nabu.version if has_nabu else "not installed"),
|
226
|
+
nxtomomill_version=escape(
|
227
|
+
nxtomomill.version.version if has_nxtomomill else "not installed"
|
228
|
+
),
|
229
|
+
)
|
230
|
+
text_label = qt.QLabel(text)
|
231
|
+
layout.addWidget(text_label, qt.Qt.AlignCenter)
|
232
|
+
|
233
|
+
buttons = qt.QDialogButtonBox(qt.QDialogButtonBox.Close, qt.Qt.Horizontal, self)
|
234
|
+
layout.addWidget(buttons)
|
235
|
+
buttons.rejected.connect(self.accept)
|
236
|
+
layout.setSizeConstraint(qt.QVBoxLayout.SetFixedSize)
|
237
|
+
self.setLayout(layout)
|
238
|
+
|
239
|
+
|
178
240
|
class OMain(_OMain):
|
179
241
|
config: TomwerConfig
|
180
242
|
DefaultConfig = "tomwer.app.canvas_launcher.config.TomwerConfig"
|
@@ -453,13 +453,18 @@ class _NabuBaseReconstructor:
|
|
453
453
|
"""
|
454
454
|
# handle phase
|
455
455
|
pag = False
|
456
|
+
ctf = False
|
456
457
|
db = None
|
457
458
|
if "phase" in config:
|
458
|
-
|
459
|
+
pag = (
|
459
460
|
"method" in config["phase"]
|
460
461
|
and config["phase"]["method"] == _NabuPhaseMethod.PAGANIN.value
|
461
|
-
)
|
462
|
-
|
462
|
+
)
|
463
|
+
ctf = (
|
464
|
+
"method" in config["phase"]
|
465
|
+
and config["phase"]["method"] == _NabuPhaseMethod.CTF.value
|
466
|
+
)
|
467
|
+
if pag or ctf:
|
463
468
|
if "delta_beta" in config["phase"]:
|
464
469
|
if not numpy.isscalar(config["phase"]["delta_beta"]):
|
465
470
|
if len(config["phase"]["delta_beta"]) > 1:
|
@@ -473,7 +478,7 @@ class _NabuBaseReconstructor:
|
|
473
478
|
db = round(float(config["phase"]["delta_beta"]))
|
474
479
|
# handle output
|
475
480
|
if "output" in config:
|
476
|
-
_file_name = self._get_file_basename_reconstruction(pag=pag, db=db)
|
481
|
+
_file_name = self._get_file_basename_reconstruction(pag=pag, db=db, ctf=ctf)
|
477
482
|
config["output"]["file_prefix"] = _file_name
|
478
483
|
location = config["output"].get("location", None)
|
479
484
|
if location not in ("", None):
|
@@ -565,7 +570,7 @@ class _NabuBaseReconstructor:
|
|
565
570
|
|
566
571
|
return config
|
567
572
|
|
568
|
-
def _get_file_basename_reconstruction(self, pag, db):
|
573
|
+
def _get_file_basename_reconstruction(self, pag, db, ctf):
|
569
574
|
"""return created file base name"""
|
570
575
|
raise NotImplementedError("Base class")
|
571
576
|
|
@@ -235,18 +235,24 @@ class _Reconstructor(_NabuBaseReconstructor):
|
|
235
235
|
- create the output directory if does not exist
|
236
236
|
"""
|
237
237
|
pag = False
|
238
|
+
ctf = False
|
238
239
|
db = None
|
239
240
|
if "phase" in _config:
|
240
|
-
|
241
|
-
|
242
|
-
utils._NabuPhaseMethod.NONE.value,
|
243
|
-
):
|
241
|
+
phase_method = _config["phase"].get("method", "").lower()
|
242
|
+
if phase_method in ("pag", "paganin"):
|
244
243
|
pag = True
|
245
|
-
|
246
|
-
|
244
|
+
elif phase_method in ("ctf",):
|
245
|
+
ctf = True
|
246
|
+
|
247
|
+
if "delta_beta" in _config["phase"]:
|
248
|
+
db = round(float(_config["phase"]["delta_beta"]))
|
247
249
|
if "output" in _config:
|
248
250
|
_file_name = SingleSliceRunner.get_file_basename_reconstruction(
|
249
|
-
scan=self.scan,
|
251
|
+
scan=self.scan,
|
252
|
+
slice_index=self.slice_index,
|
253
|
+
pag=pag,
|
254
|
+
db=db,
|
255
|
+
ctf=ctf,
|
250
256
|
)
|
251
257
|
_config["output"]["file_prefix"] = "cor_{}_{}".format(_file_name, cor)
|
252
258
|
if _config["output"]["location"] not in ("", None):
|
@@ -643,7 +643,9 @@ class SingleSliceRunner(_NabuBaseReconstructor):
|
|
643
643
|
return super()._get_futures_slurm_callback(config_to_dump)
|
644
644
|
|
645
645
|
@staticmethod
|
646
|
-
def get_file_basename_reconstruction(
|
646
|
+
def get_file_basename_reconstruction(
|
647
|
+
scan, pag, ctf, db, slice_index: Union[str, int]
|
648
|
+
):
|
647
649
|
if pag:
|
648
650
|
assert db is not None, "if paganin defined, db should not be None"
|
649
651
|
if slice_index == "middle":
|
@@ -657,6 +659,8 @@ class SingleSliceRunner(_NabuBaseReconstructor):
|
|
657
659
|
if slice_index is None:
|
658
660
|
if pag:
|
659
661
|
return "_".join((basename + "pag", "db" + str(db).zfill(4)))
|
662
|
+
elif ctf:
|
663
|
+
return "_".join((basename + "ctf", "db" + str(db).zfill(4)))
|
660
664
|
else:
|
661
665
|
return basename
|
662
666
|
else:
|
@@ -668,11 +672,19 @@ class SingleSliceRunner(_NabuBaseReconstructor):
|
|
668
672
|
"db" + str(db).zfill(4),
|
669
673
|
)
|
670
674
|
)
|
675
|
+
elif ctf:
|
676
|
+
return "_".join(
|
677
|
+
(
|
678
|
+
basename + "slice_ctf",
|
679
|
+
str(slice_index).zfill(4),
|
680
|
+
"db" + str(db).zfill(4),
|
681
|
+
)
|
682
|
+
)
|
671
683
|
else:
|
672
684
|
return "_".join((basename + "slice", str(slice_index).zfill(4)))
|
673
685
|
|
674
686
|
@docstring(_NabuBaseReconstructor)
|
675
|
-
def _get_file_basename_reconstruction(self, pag, db):
|
687
|
+
def _get_file_basename_reconstruction(self, pag, db, ctf):
|
676
688
|
"""
|
677
689
|
|
678
690
|
:param TomwerScanBase scan: scan reconstructed
|
@@ -684,7 +696,7 @@ class SingleSliceRunner(_NabuBaseReconstructor):
|
|
684
696
|
:return: basename of the file reconstructed (without any extension)
|
685
697
|
"""
|
686
698
|
return self.get_file_basename_reconstruction(
|
687
|
-
scan=self.scan, db=db, pag=pag, slice_index=self.slice_index
|
699
|
+
scan=self.scan, db=db, pag=pag, slice_index=self.slice_index, ctf=ctf
|
688
700
|
)
|
689
701
|
|
690
702
|
|
@@ -340,7 +340,7 @@ class VolumeRunner(_NabuBaseReconstructor):
|
|
340
340
|
return config_s, extra_opts
|
341
341
|
|
342
342
|
@docstring(_NabuBaseReconstructor)
|
343
|
-
def _get_file_basename_reconstruction(self, pag, db):
|
343
|
+
def _get_file_basename_reconstruction(self, pag, db, ctf):
|
344
344
|
"""
|
345
345
|
|
346
346
|
:param TomwerScanBase scan: scan reconstructed
|
@@ -352,6 +352,7 @@ class VolumeRunner(_NabuBaseReconstructor):
|
|
352
352
|
:return: basename of the file reconstructed (without any extension)
|
353
353
|
"""
|
354
354
|
assert type(db) in (int, type(None))
|
355
|
+
assert not pag == ctf == True, "cannot ask for both pag and ctf active"
|
355
356
|
if isinstance(self.scan, HDF5TomoScan):
|
356
357
|
basename, _ = os.path.splitext(self.scan.master_file)
|
357
358
|
basename = os.path.basename(basename)
|
@@ -359,6 +360,8 @@ class VolumeRunner(_NabuBaseReconstructor):
|
|
359
360
|
basename = os.path.basename(self.scan.path)
|
360
361
|
if pag:
|
361
362
|
return "_".join((basename + "pag", "db" + str(db).zfill(4), "vol"))
|
363
|
+
elif ctf:
|
364
|
+
return "_".join((basename + "ctf", "db" + str(db).zfill(4), "vol"))
|
362
365
|
else:
|
363
366
|
return "_".join((basename, "vol"))
|
364
367
|
|
@@ -149,12 +149,16 @@ def one_slice_several_cor(
|
|
149
149
|
output_dir = os.path.join(scan.path, DEFAULT_RECONS_FOLDER)
|
150
150
|
|
151
151
|
db = None
|
152
|
-
pag =
|
152
|
+
pag = False
|
153
|
+
ctf = False
|
153
154
|
if "phase" in nabu_config:
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
155
|
+
phase_method = nabu_config["phase"].get("method", "").lower()
|
156
|
+
if phase_method in ("pag", "paganin"):
|
157
|
+
pag = True
|
158
|
+
elif phase_method in ("ctf",):
|
159
|
+
ctf = True
|
160
|
+
if "delta_beta" in nabu_config["phase"]:
|
161
|
+
db = round(float(nabu_config["phase"]["delta_beta"]))
|
158
162
|
|
159
163
|
for cor, future_tomo_obj in future_tomo_objs.items():
|
160
164
|
future_tomo_obj.results()
|
@@ -163,7 +167,11 @@ def one_slice_several_cor(
|
|
163
167
|
continue
|
164
168
|
else:
|
165
169
|
_file_name = SingleSliceRunner.get_file_basename_reconstruction(
|
166
|
-
scan=scan,
|
170
|
+
scan=scan,
|
171
|
+
slice_index=slice_index,
|
172
|
+
pag=pag,
|
173
|
+
db=db,
|
174
|
+
ctf=ctf,
|
167
175
|
)
|
168
176
|
file_prefix = "cor_{}_{}".format(_file_name, cor)
|
169
177
|
|
@@ -192,9 +192,13 @@ def one_slice_several_db(
|
|
192
192
|
advancement.increaseAdvancement(1)
|
193
193
|
|
194
194
|
pag = False
|
195
|
+
ctf = False
|
195
196
|
if "phase" in config:
|
196
|
-
|
197
|
+
phase_method = config["phase"].get("method", "").lower()
|
198
|
+
if phase_method in ("pag", "paganin"):
|
197
199
|
pag = True
|
200
|
+
elif phase_method in ("ctf",):
|
201
|
+
ctf = True
|
198
202
|
|
199
203
|
# treat future.
|
200
204
|
for db, future_tomo_obj_list in future_tomo_objs.items():
|
@@ -210,6 +214,7 @@ def one_slice_several_db(
|
|
210
214
|
slice_index=slice_index,
|
211
215
|
pag=pag,
|
212
216
|
db=int(db) if db is not None else None,
|
217
|
+
ctf=ctf,
|
213
218
|
)
|
214
219
|
# retrieve url
|
215
220
|
volume_identifier = nabu_utils.get_recons_volume_identifier(
|
tomwer/core/scan/edfscan.py
CHANGED
@@ -256,6 +256,10 @@ class EDFTomoScan(_tsEDFTomoScan, TomwerScanBase):
|
|
256
256
|
indexStr = local_str.split("slice_pag_")[-1].split("_")[
|
257
257
|
0
|
258
258
|
]
|
259
|
+
elif "slice_ctf_" in local_str:
|
260
|
+
indexStr = local_str.split("slice_ctf_")[-1].split("_")[
|
261
|
+
0
|
262
|
+
]
|
259
263
|
else:
|
260
264
|
indexStr = local_str.split("slice_")[-1].split("_")[0]
|
261
265
|
if containsDigits(indexStr):
|
@@ -90,38 +90,40 @@ class TestScanValidatorFindNabuFiles(unittest.TestCase):
|
|
90
90
|
|
91
91
|
def test(self) -> None:
|
92
92
|
for slice_index in (None, 1, 15):
|
93
|
-
for
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
for file_extension in ("npy", "npz", "hdf5"):
|
103
|
-
with self.subTest(
|
104
|
-
slice_index=slice_index,
|
105
|
-
pag_db=pag_db,
|
106
|
-
file_extension=file_extension,
|
107
|
-
):
|
108
|
-
file_path = os.path.join(
|
109
|
-
self.scan.path, file_name + "." + file_extension
|
93
|
+
for delta_beta in (None, 100, 500):
|
94
|
+
for pag in (True, False):
|
95
|
+
for ctf in (True, False):
|
96
|
+
file_name = nabuslices.SingleSliceRunner.get_file_basename_reconstruction(
|
97
|
+
slice_index=slice_index,
|
98
|
+
scan=self.scan,
|
99
|
+
pag=pag if delta_beta is not None else False,
|
100
|
+
ctf=ctf if delta_beta is not None else False,
|
101
|
+
db=delta_beta,
|
110
102
|
)
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
self.assertEqual(
|
119
|
-
len(
|
120
|
-
self.scan.get_reconstructions_paths(self.scan.path)
|
121
|
-
),
|
122
|
-
n_to_discover,
|
103
|
+
print("file_name is", file_name)
|
104
|
+
with self.subTest(
|
105
|
+
slice_index=slice_index,
|
106
|
+
pag_db=delta_beta,
|
107
|
+
):
|
108
|
+
file_path = os.path.join(
|
109
|
+
self.scan.path, file_name + ".hdf5"
|
123
110
|
)
|
124
111
|
|
112
|
+
# simple context Manager which create the file
|
113
|
+
# and remove it when leave
|
114
|
+
with TestScanValidatorFindNabuFiles.FileCreator(file_path):
|
115
|
+
n_to_discover = 1
|
116
|
+
if slice_index is None:
|
117
|
+
n_to_discover = 0
|
118
|
+
self.assertEqual(
|
119
|
+
len(
|
120
|
+
self.scan.get_reconstructions_paths(
|
121
|
+
self.scan.path
|
122
|
+
)
|
123
|
+
),
|
124
|
+
n_to_discover,
|
125
|
+
)
|
126
|
+
|
125
127
|
|
126
128
|
class TestScanValidatorFindPyHSTFiles(unittest.TestCase):
|
127
129
|
"""Function testing the getReconstructionsPaths function is correctly
|
tomwer/core/utils/char.py
CHANGED
@@ -171,7 +171,7 @@ class _ImageKeyEditor(qt.QDialog):
|
|
171
171
|
# mode selection
|
172
172
|
self.layout().addWidget(qt.QLabel("selection mode"), 1, 0, 1, 1)
|
173
173
|
self._selectionModeCB = qt.QComboBox(self)
|
174
|
-
for mode in ("
|
174
|
+
for mode in ("range", "list"):
|
175
175
|
self._selectionModeCB.addItem(mode)
|
176
176
|
self._selectionModeCB.setCurrentIndex(self._selectionModeCB.findText("list"))
|
177
177
|
self.layout().addWidget(self._selectionModeCB, 1, 1, 1, 1)
|
@@ -224,7 +224,7 @@ class _ImageKeyEditor(qt.QDialog):
|
|
224
224
|
def getSelectionMode(self) -> str:
|
225
225
|
"""
|
226
226
|
|
227
|
-
:return: frame indexes selection mode. Can be '
|
227
|
+
:return: frame indexes selection mode. Can be 'range' or 'list'
|
228
228
|
"""
|
229
229
|
return self._selectionModeCB.currentText()
|
230
230
|
|
@@ -234,7 +234,7 @@ class _ImageKeyEditor(qt.QDialog):
|
|
234
234
|
:return: list of indexes to be modified
|
235
235
|
:rtype: list
|
236
236
|
"""
|
237
|
-
if self.getSelectionMode() == "
|
237
|
+
if self.getSelectionMode() == "range":
|
238
238
|
return self._selectionWidget.getSlice()
|
239
239
|
elif self.getSelectionMode() == "list":
|
240
240
|
return self._selectionWidget.getList()
|
@@ -321,7 +321,7 @@ class _ListSelection(qt.QWidget):
|
|
321
321
|
def _selectFrames(self):
|
322
322
|
if self._scan is None or self._scan() is None:
|
323
323
|
_logger.warning(
|
324
|
-
"No scan set or has been moved. Unable to select
|
324
|
+
"No scan set or has been moved. Unable to select slices from it."
|
325
325
|
)
|
326
326
|
return
|
327
327
|
scan = self._scan()
|
@@ -375,11 +375,14 @@ class _EditionSelection(qt.QWidget):
|
|
375
375
|
def setSelectionMode(self, mode: str) -> None:
|
376
376
|
"""
|
377
377
|
|
378
|
-
:param str mode: define indexes selection mode. Can be '
|
378
|
+
:param str mode: define indexes selection mode. Can be 'range' or
|
379
379
|
'list'
|
380
380
|
"""
|
381
|
-
|
382
|
-
|
381
|
+
if mode == "slice":
|
382
|
+
# for backward compatibility (user can have .ows with old name)
|
383
|
+
mode = "range"
|
384
|
+
assert mode in ("range", "list")
|
385
|
+
self._sliceSelection.setVisible(mode == "range")
|
383
386
|
self._listSelection.setVisible(mode == "list")
|
384
387
|
|
385
388
|
def getList(self) -> list:
|
tomwer/gui/edit/nxtomoeditor.py
CHANGED
@@ -225,8 +225,10 @@ class NXtomoEditor(qt.QWidget):
|
|
225
225
|
self._fieldOfViewCB.setCurrentIndex(idx)
|
226
226
|
|
227
227
|
def _updateFlipped(self, scan):
|
228
|
-
|
229
|
-
|
228
|
+
if scan.x_flipped is not None:
|
229
|
+
self._xFlippedCB.setChecked(scan.x_flipped)
|
230
|
+
if scan.y_flipped is not None:
|
231
|
+
self._yFlippedCB.setChecked(scan.y_flipped)
|
230
232
|
|
231
233
|
def _updateDistance(self, scan):
|
232
234
|
self._distanceMetricEntry.setValue(scan.distance)
|
@@ -66,30 +66,17 @@ class CastVolumeWidget(qt.QWidget):
|
|
66
66
|
self.layout().addWidget(self._outputFileformatLabel, 1, 0, 1, 1)
|
67
67
|
self._outputFileformatCB = QNabuFileFormatComboBox(self)
|
68
68
|
self.layout().addWidget(self._outputFileformatCB, 1, 1, 1, 3)
|
69
|
-
|
70
|
-
self._percentilesLabel = qt.QLabel("rescale percentiles")
|
71
|
-
self.layout().addWidget(self._percentilesLabel, 2, 0, 1, 1)
|
72
|
-
self._lowPercentileQSB = qt.QSpinBox(self)
|
73
|
-
self._lowPercentileQSB.setRange(0, 100)
|
74
|
-
self._lowPercentileQSB.setPrefix("min:")
|
75
|
-
self._lowPercentileQSB.setSuffix("%")
|
76
|
-
self._lowPercentileQSB.setValue(RESCALE_MIN_PERCENTILE)
|
77
|
-
self.layout().addWidget(self._lowPercentileQSB, 2, 1, 1, 1)
|
78
|
-
self._highPercentileQSB = qt.QSpinBox(self)
|
79
|
-
self._highPercentileQSB.setRange(0, 100)
|
80
|
-
self._highPercentileQSB.setPrefix("max:")
|
81
|
-
self._highPercentileQSB.setSuffix("%")
|
82
|
-
self._highPercentileQSB.setValue(RESCALE_MAX_PERCENTILE)
|
83
|
-
self.layout().addWidget(self._highPercentileQSB, 2, 2, 1, 1)
|
69
|
+
|
84
70
|
# let the user provide min and max manually
|
85
71
|
self._minMaxLabel = qt.QLabel("min max values")
|
86
|
-
self.layout().addWidget(self._minMaxLabel,
|
87
|
-
self._minMaxAuto = qt.QCheckBox("auto")
|
72
|
+
self.layout().addWidget(self._minMaxLabel, 2, 0, 1, 1)
|
73
|
+
self._minMaxAuto = qt.QCheckBox("auto with rescale from percentiles")
|
88
74
|
self._minMaxAuto.setChecked(True)
|
89
75
|
self._minMaxAuto.setToolTip(
|
90
76
|
"If set to auto will try to get min/max pixel values from nabu histogram else will compute it. Otherwise will values provided by the user"
|
91
77
|
)
|
92
|
-
self.layout().addWidget(self._minMaxAuto,
|
78
|
+
self.layout().addWidget(self._minMaxAuto, 2, 1, 1, 1)
|
79
|
+
|
93
80
|
self._minPixValue = qt.QLineEdit("", self)
|
94
81
|
self._minPixValue.setPlaceholderText("min")
|
95
82
|
self._maxPixValue = qt.QLineEdit("", self)
|
@@ -98,14 +85,28 @@ class CastVolumeWidget(qt.QWidget):
|
|
98
85
|
validator.setNotation(qt.QDoubleValidator.ScientificNotation)
|
99
86
|
self._minPixValue.setValidator(validator)
|
100
87
|
self._maxPixValue.setValidator(validator)
|
101
|
-
self.layout().addWidget(self._minPixValue,
|
102
|
-
self.layout().addWidget(self._maxPixValue,
|
88
|
+
self.layout().addWidget(self._minPixValue, 4, 2, 1, 1)
|
89
|
+
self.layout().addWidget(self._maxPixValue, 4, 3, 1, 1)
|
103
90
|
self._minPixValue.setVisible(False)
|
104
91
|
self._maxPixValue.setVisible(False)
|
105
|
-
|
92
|
+
# or from percentiles
|
93
|
+
self._percentilesLabel = qt.QLabel("rescale percentiles")
|
94
|
+
self.layout().addWidget(self._percentilesLabel, 3, 1, 1, 1)
|
95
|
+
self._lowPercentileQSB = qt.QSpinBox(self)
|
96
|
+
self._lowPercentileQSB.setRange(0, 100)
|
97
|
+
self._lowPercentileQSB.setPrefix("min:")
|
98
|
+
self._lowPercentileQSB.setSuffix("%")
|
99
|
+
self._lowPercentileQSB.setValue(RESCALE_MIN_PERCENTILE)
|
100
|
+
self.layout().addWidget(self._lowPercentileQSB, 3, 2, 1, 1)
|
101
|
+
self._highPercentileQSB = qt.QSpinBox(self)
|
102
|
+
self._highPercentileQSB.setRange(0, 100)
|
103
|
+
self._highPercentileQSB.setPrefix("max:")
|
104
|
+
self._highPercentileQSB.setSuffix("%")
|
105
|
+
self._highPercentileQSB.setValue(RESCALE_MAX_PERCENTILE)
|
106
|
+
self.layout().addWidget(self._highPercentileQSB, 3, 3, 1, 1)
|
106
107
|
# save dir
|
107
108
|
self._saveDirLabel = qt.QLabel("output directory", self)
|
108
|
-
self.layout().addWidget(self._saveDirLabel,
|
109
|
+
self.layout().addWidget(self._saveDirLabel, 5, 0, 1, 1)
|
109
110
|
self._useDefaultSaveDirQCB = qt.QCheckBox("default", self)
|
110
111
|
self._useDefaultSaveDirQCB.setToolTip(
|
111
112
|
f"Default directory is: {DEFAULT_OUTPUT_DIR}"
|
@@ -114,7 +115,7 @@ class CastVolumeWidget(qt.QWidget):
|
|
114
115
|
qt.QSizePolicy.Minimum, qt.QSizePolicy.Minimum
|
115
116
|
)
|
116
117
|
self._useDefaultSaveDirQCB.setChecked(True)
|
117
|
-
self.layout().addWidget(self._useDefaultSaveDirQCB,
|
118
|
+
self.layout().addWidget(self._useDefaultSaveDirQCB, 5, 1, 1, 1)
|
118
119
|
self._saveDirQLE = QLFileSystem(text=DEFAULT_OUTPUT_DIR, parent=self)
|
119
120
|
# force text because this is not a valid path
|
120
121
|
self._saveDirQLE.setText(DEFAULT_OUTPUT_DIR)
|
@@ -125,11 +126,11 @@ class CastVolumeWidget(qt.QWidget):
|
|
125
126
|
"""
|
126
127
|
)
|
127
128
|
self._saveDirQLE.setVisible(False)
|
128
|
-
self.layout().addWidget(self._saveDirQLE,
|
129
|
+
self.layout().addWidget(self._saveDirQLE, 5, 2, 1, 2)
|
129
130
|
# overwrite
|
130
131
|
self._overwriteCB = qt.QCheckBox("overwrite", self)
|
131
132
|
self._overwriteCB.setChecked(True)
|
132
|
-
self.layout().addWidget(self._overwriteCB,
|
133
|
+
self.layout().addWidget(self._overwriteCB, 6, 0, 1, 1)
|
133
134
|
# spacer
|
134
135
|
self._spacer = qt.QWidget(self)
|
135
136
|
self._spacer.setSizePolicy(
|
@@ -275,3 +276,6 @@ class CastVolumeWidget(qt.QWidget):
|
|
275
276
|
def _updatePixMinMaxVis(self, *args, **kwargs):
|
276
277
|
self._minPixValue.setVisible(not self._minMaxAuto.isChecked())
|
277
278
|
self._maxPixValue.setVisible(not self._minMaxAuto.isChecked())
|
279
|
+
self._percentilesLabel.setVisible(self._minMaxAuto.isChecked())
|
280
|
+
self._lowPercentileQSB.setVisible(self._minMaxAuto.isChecked())
|
281
|
+
self._highPercentileQSB.setVisible(self._minMaxAuto.isChecked())
|
@@ -147,7 +147,7 @@ class _NabuPhaseConfig(qt.QWidget, base._NabuStageConfigBase):
|
|
147
147
|
@docstring(base._NabuStageConfigBase)
|
148
148
|
def getConfiguration(self) -> dict:
|
149
149
|
configuration = {"method": self.getMethod().value}
|
150
|
-
if self.getMethod()
|
150
|
+
if self.getMethod() in (_NabuPhaseMethod.PAGANIN, _NabuPhaseMethod.CTF):
|
151
151
|
configuration.update(self._paganinOpts.getConfiguration())
|
152
152
|
configuration.update(self._unsharpOpts.getConfiguration())
|
153
153
|
configuration.update(self._ctfOpts.getConfiguration())
|
tomwer/gui/utils/unitsystem.py
CHANGED
@@ -34,6 +34,7 @@ __date__ = "21/09/2018"
|
|
34
34
|
|
35
35
|
from silx.gui import qt
|
36
36
|
from tomoscan.unitsystem import metricsystem
|
37
|
+
from tomwer.core.utils.char import MU_CHAR
|
37
38
|
import logging
|
38
39
|
|
39
40
|
_logger = logging.getLogger(__name__)
|
@@ -61,6 +62,7 @@ class MetricEntry(qt.QWidget):
|
|
61
62
|
|
62
63
|
_CONVERSION = {
|
63
64
|
"nm": metricsystem.nanometer.value,
|
65
|
+
f"{MU_CHAR}m": metricsystem.micrometer.value,
|
64
66
|
"mm": metricsystem.millimeter.value,
|
65
67
|
"cm": metricsystem.centimeter.value,
|
66
68
|
"m": metricsystem.meter.value,
|
@@ -69,7 +71,7 @@ class MetricEntry(qt.QWidget):
|
|
69
71
|
def __init__(self, name, default_unit="m", parent=None):
|
70
72
|
qt.QWidget.__init__(self, parent)
|
71
73
|
assert type(default_unit) is str
|
72
|
-
assert default_unit in ("nm", "mm", "cm", "m")
|
74
|
+
assert default_unit in ("nm", "mm", "cm", "m", f"{MU_CHAR}m")
|
73
75
|
self._base_unit = default_unit
|
74
76
|
|
75
77
|
self.setLayout(qt.QHBoxLayout())
|
@@ -81,6 +83,7 @@ class MetricEntry(qt.QWidget):
|
|
81
83
|
|
82
84
|
self._qcbUnit = qt.QComboBox(parent=self)
|
83
85
|
self._qcbUnit.addItem("nm")
|
86
|
+
self._qcbUnit.addItem(f"{MU_CHAR}m")
|
84
87
|
self._qcbUnit.addItem("mm")
|
85
88
|
self._qcbUnit.addItem("cm")
|
86
89
|
self._qcbUnit.addItem("m")
|
@@ -97,8 +97,10 @@ class DataViewer(qt.QMainWindow):
|
|
97
97
|
self._controls = DisplayControl(parent=self)
|
98
98
|
self._controlsDW = qt.QDockWidget(self)
|
99
99
|
self._controlsDW.setWidget(self._controls)
|
100
|
-
self._controlsDW.
|
100
|
+
self._controlsDW.setWindowTitle("infos")
|
101
101
|
self.addDockWidget(qt.Qt.TopDockWidgetArea, self._controlsDW)
|
102
|
+
self._controlsDW.setTitleBarWidget(qt.QWidget(self))
|
103
|
+
self._controlsDW.setFloating(False)
|
102
104
|
|
103
105
|
# connect signal / slot
|
104
106
|
self._controls.sigDisplayModeChanged.connect(self._updateDisplay)
|
@@ -358,6 +358,7 @@ class DiffFrameViewer(qt.QMainWindow):
|
|
358
358
|
self._framesSelector.setContentsMargins(0, 0, 0, 0)
|
359
359
|
self._framesSelector.layout().setContentsMargins(0, 0, 0, 0)
|
360
360
|
self._framesSelectorDW = qt.QDockWidget(parent=self)
|
361
|
+
self._framesSelectorDW.setWindowTitle("inputs")
|
361
362
|
self._framesSelectorDW.setWidget(self._framesSelector)
|
362
363
|
self._framesSelectorDW.setFeatures(qt.QDockWidget.DockWidgetMovable)
|
363
364
|
self.addDockWidget(qt.Qt.TopDockWidgetArea, self._framesSelectorDW)
|
@@ -369,6 +370,7 @@ class DiffFrameViewer(qt.QMainWindow):
|
|
369
370
|
self._shiftDW = qt.QDockWidget(parent=self)
|
370
371
|
self._shiftDW.setWidget(self._shiftsWidget)
|
371
372
|
self._shiftDW.setFeatures(qt.QDockWidget.DockWidgetMovable)
|
373
|
+
self._shiftDW.setWindowTitle("shifts")
|
372
374
|
self.addDockWidget(qt.Qt.BottomDockWidgetArea, self._shiftDW)
|
373
375
|
|
374
376
|
# define central widget
|
@@ -387,13 +389,6 @@ class DiffFrameViewer(qt.QMainWindow):
|
|
387
389
|
toolbar.setFloatable(False)
|
388
390
|
self.addToolBar(qt.Qt.TopToolBarArea, toolbar)
|
389
391
|
|
390
|
-
# add filtering
|
391
|
-
style = qt.QApplication.instance().style()
|
392
|
-
icon = style.standardIcon(qt.QStyle.SP_DialogResetButton)
|
393
|
-
self._clearAction = qt.QAction(icon, "Clear", toolbar)
|
394
|
-
toolbar.addAction(self._clearAction)
|
395
|
-
self._clearAction.triggered.connect(self.clear)
|
396
|
-
|
397
392
|
# set up
|
398
393
|
self._mainWidget.setAutoResetZoom(False)
|
399
394
|
self._shiftsWidget.setFocus(qt.Qt.OtherFocusReason)
|
@@ -492,10 +487,6 @@ class DiffFrameViewer(qt.QMainWindow):
|
|
492
487
|
)
|
493
488
|
self._mainWidget.setImage2(shifted_image)
|
494
489
|
|
495
|
-
def clear(self):
|
496
|
-
self._framesSelector.clear()
|
497
|
-
self._mainWidget.getPlot().clear()
|
498
|
-
|
499
490
|
def _frameShiftsChanged(self):
|
500
491
|
self._resetLeftFrame()
|
501
492
|
self._resetRightFrame()
|
Binary file
|
@@ -1,6 +1,4 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
-
|
4
2
|
<svg
|
5
3
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
4
|
xmlns:cc="http://creativecommons.org/ns#"
|
@@ -14,9 +12,9 @@
|
|
14
12
|
viewBox="0 0 52.916667 23.8125"
|
15
13
|
version="1.1"
|
16
14
|
id="svg8"
|
17
|
-
inkscape:version="0.
|
15
|
+
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
|
18
16
|
sodipodi:docname="ctf_z1.svg"
|
19
|
-
inkscape:export-filename="/
|
17
|
+
inkscape:export-filename="/home/payno/dev/tomo/tomwer/tomwer/resources/gui/illustrations/ctf_z1.png"
|
20
18
|
inkscape:export-xdpi="134.50999"
|
21
19
|
inkscape:export-ydpi="134.50999">
|
22
20
|
<defs
|
@@ -172,18 +170,19 @@
|
|
172
170
|
inkscape:pageopacity="0.0"
|
173
171
|
inkscape:pageshadow="2"
|
174
172
|
inkscape:zoom="3.959798"
|
175
|
-
inkscape:cx="
|
176
|
-
inkscape:cy="
|
173
|
+
inkscape:cx="57.456907"
|
174
|
+
inkscape:cy="67.584462"
|
177
175
|
inkscape:document-units="mm"
|
178
|
-
inkscape:current-layer="
|
176
|
+
inkscape:current-layer="layer1"
|
179
177
|
showgrid="false"
|
180
178
|
units="px"
|
181
179
|
width="200px"
|
182
|
-
inkscape:window-width="
|
183
|
-
inkscape:window-height="
|
184
|
-
inkscape:window-x="
|
180
|
+
inkscape:window-width="1920"
|
181
|
+
inkscape:window-height="1016"
|
182
|
+
inkscape:window-x="0"
|
185
183
|
inkscape:window-y="27"
|
186
|
-
inkscape:window-maximized="1"
|
184
|
+
inkscape:window-maximized="1"
|
185
|
+
inkscape:document-rotation="0" />
|
187
186
|
<metadata
|
188
187
|
id="metadata5">
|
189
188
|
<rdf:RDF>
|
@@ -284,27 +283,27 @@
|
|
284
283
|
</g>
|
285
284
|
<g
|
286
285
|
aria-label="z1_h"
|
287
|
-
style="font-style:normal;font-weight:normal;font-size:10.
|
286
|
+
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c20000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
288
287
|
id="text845"
|
289
|
-
transform="translate(
|
288
|
+
transform="translate(-4.118294,14.1495)">
|
290
289
|
<path
|
291
290
|
d="m 11.789953,272.74838 h 1.204405 v 0.23151 l -0.953602,1.10932 h 0.953602 v 0.20257 h -1.238856 v -0.23151 l 0.953602,-1.10932 h -0.919151 z"
|
292
|
-
style="font-size:2.
|
291
|
+
style="font-size:2.82222px;fill:#c20000;fill-opacity:1;stroke-width:0.264583"
|
293
292
|
id="path6960"
|
294
293
|
inkscape:connector-curvature="0" />
|
295
294
|
<path
|
296
295
|
d="M 13.465647,274.05751 H 13.9204 v -1.56958 l -0.494716,0.0992 v -0.25356 l 0.49196,-0.0992 h 0.278363 v 1.82314 h 0.454753 v 0.23427 h -1.185113 z"
|
297
|
-
style="font-size:2.
|
296
|
+
style="font-size:2.82222px;fill:#c20000;fill-opacity:1;stroke-width:0.264583"
|
298
297
|
id="path6962"
|
299
298
|
inkscape:connector-curvature="0" />
|
300
299
|
<path
|
301
300
|
d="m 16.349881,274.76031 v 0.19706 h -1.466233 v -0.19706 z"
|
302
|
-
style="font-size:2.
|
301
|
+
style="font-size:2.82222px;fill:#c20000;fill-opacity:1;stroke-width:0.264583"
|
303
302
|
id="path6964"
|
304
303
|
inkscape:connector-curvature="0" />
|
305
304
|
<path
|
306
305
|
d="m 17.871235,273.36022 v 0.93156 h -0.253559 v -0.92329 q 0,-0.21911 -0.08544,-0.32797 -0.08544,-0.10887 -0.256315,-0.10887 -0.205328,0 -0.323839,0.13092 -0.118511,0.13091 -0.118511,0.35691 v 0.8723 h -0.254937 v -2.14423 h 0.254937 v 0.8406 q 0.09095,-0.13918 0.213596,-0.20808 0.124023,-0.0689 0.285253,-0.0689 0.265962,0 0.402388,0.16536 0.136425,0.16399 0.136425,0.48369 z"
|
307
|
-
style="font-size:2.
|
306
|
+
style="font-size:2.82222px;fill:#c20000;fill-opacity:1;stroke-width:0.264583"
|
308
307
|
id="path6966"
|
309
308
|
inkscape:connector-curvature="0" />
|
310
309
|
</g>
|
@@ -411,43 +410,24 @@
|
|
411
410
|
id="path7001"
|
412
411
|
inkscape:connector-curvature="0" />
|
413
412
|
</g>
|
414
|
-
<g
|
415
|
-
id="g7037"
|
416
|
-
transform="translate(0,14.287503)">
|
417
|
-
<path
|
418
|
-
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.265, 0.265;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
419
|
-
d="m 22.207031,271.45703 -0.265625,0.002 0.002,0.26563 0.265625,-0.002 z m -0.53125,0.004 -0.263672,0.004 0.002,0.26368 0.263672,-0.002 z m -0.529297,0.006 -0.265625,0.002 0.002,0.26367 0.265626,-0.002 z m -0.529296,0.004 -0.265626,0.002 0.002,0.26367 0.265625,-0.002 z m -0.53125,0.004 -0.263672,0.002 0.002,0.26367 0.263672,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26367 0.265625,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26367 0.265625,-0.002 z m -0.53125,0.004 -0.263672,0.002 0.002,0.26367 0.263672,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26367 0.265625,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26368 0.265625,-0.002 z m -0.53125,0.004 -0.263672,0.002 0.002,0.26367 0.263672,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26367 0.265625,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26367 0.265625,-0.002 z m -0.53125,0.004 -0.265625,0.002 0.002,0.26367 0.265625,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26563 0.265624,-0.002 z m -0.53125,0.004 -0.263671,0.002 0.002,0.26563 0.263671,-0.002 z m -0.529297,0.004 -0.265624,0.002 0.002,0.26562 0.265625,-0.002 z m -0.529296,0.004 -0.265625,0.002 0.002,0.26563 0.265625,-0.002 z m -0.53125,0.004 -0.263672,0.002 0.002,0.26563 0.263672,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26562 0.265625,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26563 0.265625,-0.002 z m -0.53125,0.004 -0.263672,0.002 0.002,0.26562 0.263672,-0.002 z m -0.529297,0.004 -0.265625,0.002 0.002,0.26562 0.265625,-0.002 z m -0.529297,0.004 -0.2656249,0.002 0.00195,0.26563 0.2656249,-0.002 z m -0.5312499,0.004 -0.2636719,0.002 0.00195,0.26562 0.2636718,-0.002 z m -0.5292969,0.004 -0.265625,0.002 0.00195,0.26563 0.265625,-0.002 z m -0.5292968,0.004 -0.265625,0.002 0.00195,0.26562 0.265625,-0.002 z m -0.53125,0.004 -0.2636719,0.002 0.00195,0.26562 0.2636719,-0.002 z m -0.5292969,0.004 -0.265625,0.002 0.00195,0.26563 0.265625,-0.002 z m -0.5292969,0.004 -0.265625,0.002 0.00195,0.26562 0.265625,-0.002 z m -0.53125,0.004 -0.265625,0.002 0.00195,0.26563 0.265625,-0.002 z m -0.5292968,0.004 -0.1972657,0.002 0.00195,0.26563 0.1972657,-0.002 z"
|
420
|
-
id="path1697"
|
421
|
-
inkscape:connector-curvature="0" />
|
422
|
-
<path
|
423
|
-
id="path7043"
|
424
|
-
d="m 21.889502,271.59281 -0.263015,0.26697 0.925496,-0.27191 -0.929452,-0.25807 z"
|
425
|
-
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.053pt;stroke-opacity:1"
|
426
|
-
inkscape:connector-curvature="0" />
|
427
|
-
<path
|
428
|
-
d="m 6.0945214,272.03141 -0.8709673,-0.31291 0.8661987,-0.32589 c -0.1373555,0.18961 -0.13463,0.44761 0.00477,0.6388 z"
|
429
|
-
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.0496875;stroke-linejoin:round;stroke-opacity:1"
|
430
|
-
id="path7045"
|
431
|
-
inkscape:connector-curvature="0" />
|
432
|
-
</g>
|
433
413
|
<g
|
434
414
|
aria-label="z2_h"
|
435
|
-
transform="rotate(0.14442311,-
|
436
|
-
style="font-style:normal;font-weight:normal;font-size:10.
|
415
|
+
transform="rotate(0.14442311,-7482.3839,-3692.9939)"
|
416
|
+
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c20000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
437
417
|
id="text845-1">
|
438
418
|
<path
|
439
419
|
d="m 25.261291,268.26325 h 0.903304 v 0.17364 l -0.715201,0.83199 h 0.715201 v 0.15193 h -0.929142 v -0.17364 l 0.715202,-0.83199 h -0.689364 z"
|
440
|
-
style="font-size:2.
|
420
|
+
style="font-size:2.11667px;fill:#c20000;fill-opacity:1;stroke-width:0.264583"
|
441
421
|
id="path7004"
|
442
422
|
inkscape:connector-curvature="0" />
|
443
423
|
<path
|
444
424
|
d="M 28.681237,269.77221 V 269.92 h -1.099674 v -0.14779 z"
|
445
|
-
style="font-size:2.
|
425
|
+
style="font-size:2.11667px;fill:#c20000;fill-opacity:1;stroke-width:0.264583"
|
446
426
|
id="path7008"
|
447
427
|
inkscape:connector-curvature="0" />
|
448
428
|
<text
|
449
429
|
xml:space="preserve"
|
450
|
-
style="font-style:normal;font-weight:normal;font-size:10.
|
430
|
+
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c20000;fill-opacity:1;stroke:none;stroke-width:0.0700043"
|
451
431
|
x="25.452368"
|
452
432
|
y="269.54578"
|
453
433
|
id="text896"
|
@@ -456,10 +436,10 @@
|
|
456
436
|
id="tspan894"
|
457
437
|
x="25.452368"
|
458
438
|
y="269.54578"
|
459
|
-
style="font-size:2.
|
439
|
+
style="font-size:2.46944px;fill:#c20000;fill-opacity:1;stroke-width:0.0700043">1</tspan></text>
|
460
440
|
<text
|
461
441
|
xml:space="preserve"
|
462
|
-
style="font-style:normal;font-weight:normal;font-size:10.
|
442
|
+
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c20000;fill-opacity:1;stroke:none;stroke-width:0.0700043"
|
463
443
|
x="27.967733"
|
464
444
|
y="269.59308"
|
465
445
|
id="text900"
|
@@ -468,31 +448,24 @@
|
|
468
448
|
id="tspan898"
|
469
449
|
x="27.967733"
|
470
450
|
y="269.59308"
|
471
|
-
style="font-size:2.
|
472
|
-
</g>
|
473
|
-
<g
|
474
|
-
id="g7027"
|
475
|
-
transform="translate(0,14.287503)">
|
476
|
-
<path
|
477
|
-
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.22576801;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.22576802, 0.22576802;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
478
|
-
d="m 23.59375,266.20898 -0.002,0.22657 h 0.226562 v -0.22461 z m -0.0039,0.45118 v 0.22656 l 0.224609,0.002 0.002,-0.22656 z m -0.002,0.45117 -0.002,0.22656 0.226562,0.002 v -0.22656 z m -0.0039,0.45312 v 0.22461 l 0.22461,0.002 0.002,-0.22657 z m -0.002,0.45117 -0.002,0.22461 0.226563,0.002 v -0.22461 z m -0.0039,0.45118 v 0.22656 h 0.224609 l 0.002,-0.22461 z m -0.002,0.45117 -0.002,0.22656 0.226562,0.002 v -0.22656 z m -0.0039,0.45117 v 0.22656 l 0.224609,0.002 0.002,-0.22657 z m -0.002,0.45313 -0.002,0.22461 0.226563,0.002 v -0.22656 z m -0.0039,0.45117 v 0.22461 l 0.22461,0.002 0.002,-0.22461 z"
|
479
|
-
id="path1697-9-9"
|
480
|
-
inkscape:connector-curvature="0" />
|
481
|
-
<path
|
482
|
-
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.0451536pt;stroke-opacity:1"
|
483
|
-
d="m 23.704372,266.48087 0.224311,0.22721 -0.220678,-0.79162 -0.230849,0.78872 z"
|
484
|
-
id="path7033"
|
485
|
-
inkscape:connector-curvature="0" />
|
486
|
-
<path
|
487
|
-
d="m 23.953985,270.14784 -0.276879,0.73825 -0.267354,-0.74175 c 0.159897,0.11926 0.379708,0.11999 0.544233,0.003 z"
|
488
|
-
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.0423315;stroke-linejoin:round;stroke-opacity:1"
|
489
|
-
id="path7035"
|
490
|
-
inkscape:connector-curvature="0" />
|
451
|
+
style="font-size:2.46944px;fill:#c20000;fill-opacity:1;stroke-width:0.0700043">v</tspan></text>
|
491
452
|
</g>
|
492
453
|
<path
|
493
454
|
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.722;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#d3e01c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
494
455
|
d="m 46.638672,285.19579 -41.5371095,0.0996 0.00195,0.20117 41.5351565,-0.10156 z"
|
495
456
|
id="path5601"
|
496
457
|
inkscape:connector-curvature="0" />
|
458
|
+
<text
|
459
|
+
xml:space="preserve"
|
460
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.15364px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.128841"
|
461
|
+
x="12.465504"
|
462
|
+
y="316.67355"
|
463
|
+
id="text962"
|
464
|
+
transform="scale(1.095049,0.91320115)"><tspan
|
465
|
+
sodipodi:role="line"
|
466
|
+
id="tspan960"
|
467
|
+
x="12.465504"
|
468
|
+
y="316.67355"
|
469
|
+
style="stroke-width:0.128841">/</tspan></text>
|
497
470
|
</g>
|
498
471
|
</svg>
|
tomwer/version.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
tomwer-1.1.
|
1
|
+
tomwer-1.1.1-py3.8-nspkg.pth,sha256=xeeGR3TjdoVxdFeF6T-zSwZWh6Et--EYuPWu67LxL_c,574
|
2
2
|
orangecontrib/tomwer/__init__.py,sha256=B3VLqV-jCha0MgRp-9_W6EbAjEFnFz6FvgtqHGA6EoQ,147
|
3
3
|
orangecontrib/tomwer/state_summary.py,sha256=3wnJdLg9jiXSM8iTP8SxL1a92bnntxO9RhBZ71z5dY4,1710
|
4
4
|
orangecontrib/tomwer/orange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -15,7 +15,7 @@ orangecontrib/tomwer/widgets/__init__.py,sha256=IwY85ur-TZUdRH1igCEfMiUKFvu9cmbd
|
|
15
15
|
orangecontrib/tomwer/widgets/utils.py,sha256=zGfY5XfrLdD2awrtItLYJjFRE-FCCwhPs_QJaEA73X0,2339
|
16
16
|
orangecontrib/tomwer/widgets/cluster/FutureSupervisorOW.py,sha256=IyP11MMwbwC3BO3gWTEqwizqIqKBnOni96rxlxuUPYQ,8957
|
17
17
|
orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py,sha256=T9koZYPIEvx6HOOSP-tn-bHN6vMDmIWHYesIUcvwPTE,4010
|
18
|
-
orangecontrib/tomwer/widgets/cluster/__init__.py,sha256=
|
18
|
+
orangecontrib/tomwer/widgets/cluster/__init__.py,sha256=HyTijuJFHFyl5n94nCWREgTxbE3olYsYLAFshjTMNN4,1614
|
19
19
|
orangecontrib/tomwer/widgets/cluster/icons/slurm.png,sha256=C-YBLwXCnh0oo4nvEt80WxX_jKYGUAFpWMUSlzt6ke0,1995
|
20
20
|
orangecontrib/tomwer/widgets/cluster/icons/slurm.svg,sha256=9LqiU88NH3ACxtZ8A7gTm-C_0ACR8iq0k_N2W1IFf9Q,9790
|
21
21
|
orangecontrib/tomwer/widgets/cluster/icons/slurmobserver.png,sha256=sxH1V20s0JZPTCq82Fizz8Q9RHXwviapdStgZT8GBIM,3212
|
@@ -27,7 +27,7 @@ orangecontrib/tomwer/widgets/control/DataSelectorOW.py,sha256=22_DCUPiFCWoA27Mg6
|
|
27
27
|
orangecontrib/tomwer/widgets/control/DataTransfertOW.py,sha256=K2LVVDACO2hDXFmX43DxUOBqxiHdFYVKvxEC1PxKgoo,7302
|
28
28
|
orangecontrib/tomwer/widgets/control/DataValidatorOW.py,sha256=-bgP7ArsSN77LECJjjuEIdplmmwaC5Fx16pVx-fQLEI,7197
|
29
29
|
orangecontrib/tomwer/widgets/control/DataWatcherOW.py,sha256=IoDoXy1unewG6UmvMwa2U24pQjy6VSVep7bYtLDEEjo,7326
|
30
|
-
orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py,sha256=
|
30
|
+
orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py,sha256=Tb0ux5BqNvgIcPzeVo8Owx5hno5p4KggO5bUXJQg4EM,9099
|
31
31
|
orangecontrib/tomwer/widgets/control/FilterOW.py,sha256=vSDr8u3_oR8xl6s5jQGt-DmyJwFOxtq72rBvBqlJA7U,4577
|
32
32
|
orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py,sha256=kJPFQBHiqbi05U62UzDFgu6b5vPJZbO79XeAu_PyoIM,3323
|
33
33
|
orangecontrib/tomwer/widgets/control/NXTomomillOW.py,sha256=CalszjDcaSjYv0GMAl6YrMAQUtGJXf8nGBmeAo44FB4,12259
|
@@ -118,8 +118,8 @@ orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py,sha256=02qpJUdjr
|
|
118
118
|
orangecontrib/tomwer/widgets/reconstruction/DarkRefAndCopyOW.py,sha256=IvE4-yDaktCUOnq8NnQB6jHsjddynHlOHSkh_1504Gk,10518
|
119
119
|
orangecontrib/tomwer/widgets/reconstruction/NabuOW.py,sha256=OHVqsEr48vIbpNLNaQZrgL3pEn_FvEQJ5uryajzQon0,10884
|
120
120
|
orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py,sha256=ZtKVU804Aj9RdZLYsNzOylCo02bQNJ1mFt8lEu1QsB8,17622
|
121
|
-
orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py,sha256=
|
122
|
-
orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py,sha256=
|
121
|
+
orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py,sha256=GPMR0dbv3t0FdlCXM_gLNxZDto-QULjlOEiDgqu3KYE,17852
|
122
|
+
orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py,sha256=tmLBFWa9oBT1335t-Ta2otM5ndhxoLo3AtSO2nW1zqo,14636
|
123
123
|
orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py,sha256=Tx6rXjjrYN8JawMNZFr-AGr1upa0GX_-aIuoU6s5XMM,10845
|
124
124
|
orangecontrib/tomwer/widgets/reconstruction/TofuOW.py,sha256=X889aNXwB-h5mTa9XuXSX35j15LZvr7DCnP8nfjuCsk,7820
|
125
125
|
orangecontrib/tomwer/widgets/reconstruction/__init__.py,sha256=lgfP-eyIPCwy2R5FVl7uBcO17ESpLbkB1YSvieFRqq4,1601
|
@@ -151,7 +151,7 @@ orangecontrib/tomwer/widgets/reconstruction/icons/sadeltabeta.svg,sha256=gQQFb5U
|
|
151
151
|
orangecontrib/tomwer/widgets/reconstruction/icons/tomogui.png,sha256=qg7SZMRY3QjK-tteyoN0ToU5gNs1ZflkwzUK5kVVVQI,6846
|
152
152
|
orangecontrib/tomwer/widgets/reconstruction/icons/tomwer.png,sha256=M9IWm_TDKlSA6PZ-FPblo2k6PH-kkT2d0ASRvZ-pM_8,8992
|
153
153
|
orangecontrib/tomwer/widgets/visualization/DataViewerOW.py,sha256=T8rse9FIWbM6LPOZvkcKDuwlD1aSZYGrKIwg3S-3Xuw,5199
|
154
|
-
orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py,sha256=
|
154
|
+
orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py,sha256=6XQ7i8XmrbKeB1iodyHzQlhahHHfOUngPevrh608ohU,2874
|
155
155
|
orangecontrib/tomwer/widgets/visualization/LivesliceOW.py,sha256=g2QQNI2hfcN0w2YCTOd4VjNwqMiOG3UcIUGtJkrJnXo,3171
|
156
156
|
orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py,sha256=KelMKYUL-rIq_Vi_1sylUu8P3EWsnY0HLilJcZdiwLE,1949
|
157
157
|
orangecontrib/tomwer/widgets/visualization/RadioStackOW.py,sha256=_FYjyXCLnfBnEPSEvYzyktpC3XT_thIte9Y6dF3dhn8,3392
|
@@ -182,7 +182,7 @@ orangecontrib/tomwer/widgets/visualization/icons/volumeviewer.svg,sha256=2uT9_px
|
|
182
182
|
tomwer/__init__.py,sha256=UkYK_aDTsg7Qfv3IbRaQZ8lm9hRD93U7fLzbvXoLwn4,1745
|
183
183
|
tomwer/__main__.py,sha256=r6aj9eSuARnS6tFeDalCx5EM6L5RsD4iW2qfleUQi-k,5962
|
184
184
|
tomwer/utils.py,sha256=UVEewsSmUpPXkUSP0zwg-sHZ5HfU9AZNPxKdwYjL7h0,8544
|
185
|
-
tomwer/version.py,sha256=
|
185
|
+
tomwer/version.py,sha256=hOyRtOJbmMFuNlxcmKfH4yrrayUl0Bc87Qj59p5r6gM,4386
|
186
186
|
tomwer/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
187
187
|
tomwer/app/axis.py,sha256=m8-fOYcX8dRWHa-EjOO9cKiW9nBl7Z5nhOi5d4YovSQ,6473
|
188
188
|
tomwer/app/canvas.py,sha256=TVh-E_LnCzfDVYL_r0Hy5KC47nJ4Bk_L6XVurXaab4s,1377
|
@@ -207,7 +207,7 @@ tomwer/app/stopdatalistener.py,sha256=zuVIEkfXVrBnKf8cmpUBUg0xrsdnQ2fjuJwUk_FnyK
|
|
207
207
|
tomwer/app/canvas_launcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
208
208
|
tomwer/app/canvas_launcher/config.py,sha256=aF9VlavqSKgImpFOKSdazfaWzzhY6LfjYn_HWgmEygU,7251
|
209
209
|
tomwer/app/canvas_launcher/environ.py,sha256=pOJzQ612T0AA4mtGmCoB_YGo9fnxpDOBRuMEFiaMQl8,2501
|
210
|
-
tomwer/app/canvas_launcher/mainwindow.py,sha256=
|
210
|
+
tomwer/app/canvas_launcher/mainwindow.py,sha256=Tw6k1epW48D-WD8VEsHzIhjRSKMQPpS8rNpEqxP0O6c,12322
|
211
211
|
tomwer/app/canvas_launcher/splash.py,sha256=a2s9UwfEu4qenTUn9z-2g-tcAQNFOAgidmeUPFM70Gs,559
|
212
212
|
tomwer/app/canvas_launcher/widgetsscheme.py,sha256=ynznd04N5RteRLWPC9kNVJifM_-WV1yTelIT0LqzmjI,2816
|
213
213
|
tomwer/core/__init__.py,sha256=lLfviCLw9VdT6SQ_9eYhqFe8QtUA-Dv-JDGpgxQ8Yzs,1373
|
@@ -271,23 +271,23 @@ tomwer/core/process/reconstruction/lamino/__init__.py,sha256=EH-YNlONEw1v6UU5ByD
|
|
271
271
|
tomwer/core/process/reconstruction/lamino/tofu.py,sha256=0x3v2QB7nzPAVjBqFrPpYh4MiZQlkiUv3BD6E-Gs_BM,34544
|
272
272
|
tomwer/core/process/reconstruction/nabu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
273
273
|
tomwer/core/process/reconstruction/nabu/castvolume.py,sha256=LuJ-wlXi0LXgC9aFYfnGl1P-CWGHxEH7j2qHyNJYQww,10072
|
274
|
-
tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=
|
275
|
-
tomwer/core/process/reconstruction/nabu/nabuscores.py,sha256=
|
276
|
-
tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=
|
277
|
-
tomwer/core/process/reconstruction/nabu/nabuvolume.py,sha256=
|
274
|
+
tomwer/core/process/reconstruction/nabu/nabucommon.py,sha256=t9FnjhHLbYKizpG2mgFxHsvp0qTQyFgXAmRqjyRUh9g,21681
|
275
|
+
tomwer/core/process/reconstruction/nabu/nabuscores.py,sha256=1cNBEElw_XDoYQueh882la62QWEdn7WLjAQxN-Ualy8,11294
|
276
|
+
tomwer/core/process/reconstruction/nabu/nabuslices.py,sha256=x1EyvTKQYuCSMLSex-yI1GVLPE5-_fXMm3_OrzEjZUU,29421
|
277
|
+
tomwer/core/process/reconstruction/nabu/nabuvolume.py,sha256=p9yKpCMA2uF7IULnU0zvSwDUauc7qqfD8p1GxMWEr4U,16307
|
278
278
|
tomwer/core/process/reconstruction/nabu/settings.py,sha256=bH5bW88tikwGQXIBNVznefXNldlClhKk-LhhU3qOcO0,2264
|
279
279
|
tomwer/core/process/reconstruction/nabu/slurm.py,sha256=MXcQY9z1PZXr0x7Aj8brp1f6wFPV6jzECEQLEjEDBQU,921
|
280
280
|
tomwer/core/process/reconstruction/nabu/target.py,sha256=_Z4gViprjR3Vm4KASqsASStLA9GM1wTyoi3Pg0PUSeg,1481
|
281
|
-
tomwer/core/process/reconstruction/nabu/utils.py,sha256=
|
281
|
+
tomwer/core/process/reconstruction/nabu/utils.py,sha256=qcsxxc63uBoq7pO2uNChgtI6LB2_9PoJxDOGmdOVRV8,13945
|
282
282
|
tomwer/core/process/reconstruction/normalization/__init__.py,sha256=iyTlaMg14Q1eXFr8ICZovTjNd8gt6oe4e3T-6Ldo25k,128
|
283
283
|
tomwer/core/process/reconstruction/normalization/normalization.py,sha256=uS8ueUfwbyIW8k6boHlJ7UOWiJhLTubac0cXci1N7SQ,13088
|
284
284
|
tomwer/core/process/reconstruction/normalization/params.py,sha256=EwYypv75SkqnqPRIZqnm7k8VdwpBmaJszYI5qaCpG5Y,4790
|
285
285
|
tomwer/core/process/reconstruction/saaxis/__init__.py,sha256=qCVB1LY-XBlWNEJDB5Lxy2zCV3mrhX6frr2QCcWHLw0,93
|
286
286
|
tomwer/core/process/reconstruction/saaxis/params.py,sha256=vGSIc41Ve-cHdCQBsV0vsOyuO9ZoXrZq_keSu-tOEOI,5624
|
287
|
-
tomwer/core/process/reconstruction/saaxis/saaxis.py,sha256=
|
287
|
+
tomwer/core/process/reconstruction/saaxis/saaxis.py,sha256=W58ubkdI0U1LhyW_WoJFGzDqkWLAPwbn1dGm0f9YxIw,28589
|
288
288
|
tomwer/core/process/reconstruction/sadeltabeta/__init__.py,sha256=WY0sluyFXKiq8QeD3KvnGSpl0is7GL4F2JuBaBZNMYY,108
|
289
289
|
tomwer/core/process/reconstruction/sadeltabeta/params.py,sha256=DEE4ObLtCJ76QrhD4pisXecAdqELI0OtN_B-zm2RMHs,4106
|
290
|
-
tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py,sha256=
|
290
|
+
tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py,sha256=Npx7_Sv2oZWK7FKT3zzmitxzdMI72LyX9p8lbDygVAc,23099
|
291
291
|
tomwer/core/process/reconstruction/scores/__init__.py,sha256=T7RRLNV0Zk6xK1WRlTP8XtyLkGkS16H_PJi82T5QePw,282
|
292
292
|
tomwer/core/process/reconstruction/scores/params.py,sha256=2ZCoe-0ME3t40tOGqStuqcwLZIgd09eoVax0d5Ib3bk,6963
|
293
293
|
tomwer/core/process/reconstruction/scores/scores.py,sha256=o3HyUpS_iwwbCwWOANITgx9WaF2LYK-8Gv37Oj80qHg,6994
|
@@ -326,7 +326,7 @@ tomwer/core/process/visualization/slicestack.py,sha256=wKxjS7oFLbC0PRXtQuBHRjs4H
|
|
326
326
|
tomwer/core/process/visualization/volumeviewer.py,sha256=9Y3z--FDPm_LBPgbFywGOxqve3vz9UHoV-gXZ6b9-rg,1520
|
327
327
|
tomwer/core/scan/__init__.py,sha256=V1TPi41mS3b6jskdiNqgnKYvRHZg1x1KmEClQ3hUmu8,1392
|
328
328
|
tomwer/core/scan/blissscan.py,sha256=hQi91vaQCg-uZBhYQ6mSooLkB2e9k0refqR-Xiyd51Q,8271
|
329
|
-
tomwer/core/scan/edfscan.py,sha256=
|
329
|
+
tomwer/core/scan/edfscan.py,sha256=5bkNzPQhJLbEJf4tdikeRs7KEou2sEsWGAST3uZbqhA,22293
|
330
330
|
tomwer/core/scan/futurescan.py,sha256=uTcEa3BR2Tb3pMct9Ve7TeeUL9AEOjdKNejL4-uR1Tk,212
|
331
331
|
tomwer/core/scan/hdf5scan.py,sha256=RMRphkCW90wUdvBt7gByww8VtocstjWT5hmqTc5BaJw,18707
|
332
332
|
tomwer/core/scan/scanbase.py,sha256=ynplFca9w70SEvBF8jcpWkLpyC8jkwihJS0Roqe4WXo,31415
|
@@ -336,14 +336,14 @@ tomwer/core/scan/test/test_edf.py,sha256=VbgL6fMKccU9Ca2RuE0jc8iP8rIgHL_N0nCV8ay
|
|
336
336
|
tomwer/core/scan/test/test_future_scan.py,sha256=vXzjfsRY0m3_zZmdl7X-GfHjCbn-JF1vsTZe__tCpjw,2165
|
337
337
|
tomwer/core/scan/test/test_h5.py,sha256=AriX-b_vSOBkGWhWDEzLRjxyvNRN1Re7ILNzF_1OynQ,4388
|
338
338
|
tomwer/core/scan/test/test_process_registration.py,sha256=_-tCc8Y3v6eC-Pmw45ihMk0yTEkTafmDv35QadaP5sc,5194
|
339
|
-
tomwer/core/scan/test/test_scan.py,sha256=
|
339
|
+
tomwer/core/scan/test/test_scan.py,sha256=y_YY2QvKqKnYslHqti6NRvP-ZQH6Zft0Raqw7QNkfM4,14957
|
340
340
|
tomwer/core/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
341
341
|
tomwer/core/test/test_lamino.py,sha256=2-uCBIBiKldMHY5gkDnVSECKhDbwb6yiVgLOo0ooMCQ,3489
|
342
342
|
tomwer/core/test/test_scanutils.py,sha256=Dg9dIGxjqpo42zV7or-gnaUVcTf2x8BvtrKNME4uekA,2151
|
343
343
|
tomwer/core/test/test_utils.py,sha256=q_IPM_1NCyVoFDI96Tzpy6YMIxHqGYMT0XBrogZD3lA,10673
|
344
344
|
tomwer/core/utils/Singleton.py,sha256=57g7-B2eqyrneT8DQ2Tzqha0bg-mcdSdaPtOjhsGWVc,1559
|
345
345
|
tomwer/core/utils/__init__.py,sha256=0xymzqHO1oEdOnLkzeRCyeILhKI6hcIrM0rMh-fbxmc,13486
|
346
|
-
tomwer/core/utils/char.py,sha256=
|
346
|
+
tomwer/core/utils/char.py,sha256=VxNJ6Les9hZzVQz-gkPexWjn2h_J-XY3FiikwdgdGd0,1673
|
347
347
|
tomwer/core/utils/deprecation.py,sha256=2eIFwhOR08afzhF8dolSoM5M8ScPAj_JB9CT-QXN954,4714
|
348
348
|
tomwer/core/utils/ftseriesutils.py,sha256=urIZfVN0j0PAD3RHVAzBMaMNAN-sFudxFKNZ8cCKWXs,2382
|
349
349
|
tomwer/core/utils/gpu.py,sha256=7s1LpN7e5ZTf1lqx0OLo-R45oE1L0JWmnLe2Hmhph6M,1812
|
@@ -421,8 +421,8 @@ tomwer/gui/debugtools/datasetgenerator.py,sha256=2ZOFTz0nBh6ar7QZYHpytDJq8IqFrdq
|
|
421
421
|
tomwer/gui/debugtools/objectinspector.py,sha256=-RO_DSCnIYJ1BTSXEhgrbztmiag6TM6jFG2Z8RSnJMY,2978
|
422
422
|
tomwer/gui/edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
423
423
|
tomwer/gui/edit/dkrfpatch.py,sha256=_TAmUGEshF-Z_EzwDHtgs5whLPoc321IURwJxahmSog,17728
|
424
|
-
tomwer/gui/edit/imagekeyeditor.py,sha256=
|
425
|
-
tomwer/gui/edit/nxtomoeditor.py,sha256=
|
424
|
+
tomwer/gui/edit/imagekeyeditor.py,sha256=TEanI9q-f_F724KlK0mDZV1u0RWdp4MvgnnEC9nky2E,29692
|
425
|
+
tomwer/gui/edit/nxtomoeditor.py,sha256=Gb2_dfVbQwgT2lm1OWjp28TxrTNn72NwMjwGc2OLd60,17497
|
426
426
|
tomwer/gui/edit/test/__init__.py,sha256=OLK9ip_LryBfM_L40MReqjvJS3wdbWP_CpnBeD1NQTA,1368
|
427
427
|
tomwer/gui/edit/test/test_dkrf_patch.py,sha256=1U7FnhAsRJ4raM0pinA1BxdtqSdpdUTHiUY5ddTcKH8,8025
|
428
428
|
tomwer/gui/edit/test/test_image_key_editor.py,sha256=0621Zuft7KD2d5VLjQOm4JWMRER0FXP-m2RfHURoh0s,5960
|
@@ -446,7 +446,7 @@ tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py,sha256=0TNajtIKAdRj7Y_oK5d8r
|
|
446
446
|
tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py,sha256=0DFuSMFU983LNwEnWXqEEvjjwIsih6n67-KqrEvRjr8,29446
|
447
447
|
tomwer/gui/reconstruction/nabu/__init__.py,sha256=v2WxaBpu2zpGu7DEV96zaKAtHgRlcpORuAG2S0iF9O0,44
|
448
448
|
tomwer/gui/reconstruction/nabu/action.py,sha256=t_L_sOkNYApqLGCNmbucq9IVd1XijycKhZdh262vO88,3889
|
449
|
-
tomwer/gui/reconstruction/nabu/castvolume.py,sha256=
|
449
|
+
tomwer/gui/reconstruction/nabu/castvolume.py,sha256=DWoubbxvHYf6FeOswWLix84BbUMjeHpIQvn0L4Q2O2I,12543
|
450
450
|
tomwer/gui/reconstruction/nabu/check.py,sha256=4m1zbiak462UxKlKz_rKa1xarK-_VVC4p6ZE8JKYh9Y,4731
|
451
451
|
tomwer/gui/reconstruction/nabu/nabuflow.py,sha256=EqiBtxfXqOE7umcWw7kShbfs0Be12XbBzdTSQEyWX-0,17194
|
452
452
|
tomwer/gui/reconstruction/nabu/slices.py,sha256=Ndqn_f9vf83tdPh2x1ucaR7Xl5HIwpxpZNNvSnFE2BM,23443
|
@@ -457,7 +457,7 @@ tomwer/gui/reconstruction/nabu/nabuconfig/base.py,sha256=X8aF0_DVPfyVf19kgjpyjcC
|
|
457
457
|
tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py,sha256=yCJ-R3QHvplaqyTE10trEQHCDK_VgWIjZ6fZ2U__LtE,13082
|
458
458
|
tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py,sha256=euetzzztzrcTSG6jsPyQgdY6O5tWWRVqasVka8bgBjU,11490
|
459
459
|
tomwer/gui/reconstruction/nabu/nabuconfig/output.py,sha256=x3z3yj1OySj8aoeG4VqwaxVi2hWvfMVs44Ms4AyVzOw,9865
|
460
|
-
tomwer/gui/reconstruction/nabu/nabuconfig/phase.py,sha256=
|
460
|
+
tomwer/gui/reconstruction/nabu/nabuconfig/phase.py,sha256=z-qM-dbofF0xl_Cl7CMIpOPCNnL67UiH2U75PwWoDjM,15253
|
461
461
|
tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py,sha256=hPk49mkuI8En4BIc70O8R9vDE9JuExsWQ1BtWdt_TqA,22714
|
462
462
|
tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py,sha256=w_SosHK8Bp1iIiwOJ5KRAQMmYKYxUsQKoPewX9q8mkk,37357
|
463
463
|
tomwer/gui/reconstruction/normalization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -495,14 +495,14 @@ tomwer/gui/utils/scandescription.py,sha256=KZfRm57UIqFgP3xJgpHFifJETQKN_0TuWv8Wi
|
|
495
495
|
tomwer/gui/utils/scrollarea.py,sha256=TDWSb_xsqX1vWaeWYl-yNB_-ok5QkYs9bjIOm2vL1qk,2954
|
496
496
|
tomwer/gui/utils/slider.py,sha256=TJK_IMnBst5evDky26YeSDI0ns4mXBNoXHiQW-K_9Yc,3467
|
497
497
|
tomwer/gui/utils/splashscreen.py,sha256=7g33O-V1QqpU4cu-ki4ZJxdchTpWC15bKSGepfmteBQ,1857
|
498
|
-
tomwer/gui/utils/unitsystem.py,sha256=
|
498
|
+
tomwer/gui/utils/unitsystem.py,sha256=wRZ_T1tFTAXqaGuffcFksAWey5qk2Ggi2WD-oJcsjc4,6319
|
499
499
|
tomwer/gui/utils/vignettes.py,sha256=Y8aqnanN5U5syXs0MPoyYt_tCfflybCyC2hSxDEePSw,12980
|
500
500
|
tomwer/gui/utils/waiterthread.py,sha256=-3rgoIV461MnsXH0xCFLaYOWhPWOkFm-oD2ybfBde1Q,1843
|
501
501
|
tomwer/gui/utils/lineselector/__init__.py,sha256=GZ847ef5X2wk_sAHxg6h24TarPYmb4NZjQI3jjkc7jE,75
|
502
502
|
tomwer/gui/utils/lineselector/lineselection.py,sha256=q9yrpH6cpDEKqgOhJL5Mvq46ifFlgNil5kyikgC936E,2614
|
503
503
|
tomwer/gui/utils/lineselector/lineselector.py,sha256=VueUHAiLB87uVCYkDyybDGWJs3ajLQdfj4KeznD8Z1Q,8228
|
504
504
|
tomwer/gui/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
505
|
-
tomwer/gui/visualization/dataviewer.py,sha256=
|
505
|
+
tomwer/gui/visualization/dataviewer.py,sha256=tpEHUDMPqW3fNBa7Suhos_hbIBDPBlZo7lXDBXcmhxk,24611
|
506
506
|
tomwer/gui/visualization/nxtomometadata.py,sha256=XSmTvYm3PBbWnP4ux89p1jclqoFYmylATXGZfljHsQE,682
|
507
507
|
tomwer/gui/visualization/reconstructionparameters.py,sha256=AQt-uogaxsxXd9ooOWGolOUDsmVOVxsfKBd0MAPuMco,15392
|
508
508
|
tomwer/gui/visualization/scanoverview.py,sha256=zV9JGadh1NWjSbOMI-cMSkFj9MCJWjXkOt9JWR46Fbc,8421
|
@@ -511,7 +511,7 @@ tomwer/gui/visualization/tomoobjoverview.py,sha256=X98Dg0Sml8ifTG7oYgWGuCDBBH4Hl
|
|
511
511
|
tomwer/gui/visualization/volumeoverview.py,sha256=KyCPM0b4StOTCqvyHfCwf8_eC__xFtekdyY6w_pPZkc,2489
|
512
512
|
tomwer/gui/visualization/volumeviewer.py,sha256=fi-rElfWlqyBYvi02iURZEJLb_xflnY_pr3VgzZtEhM,16074
|
513
513
|
tomwer/gui/visualization/diffviewer/__init__.py,sha256=rZ7qOTfAChU3FouCdkZllXT9ZZqTdo1XhLZMfmOqUAE,39
|
514
|
-
tomwer/gui/visualization/diffviewer/diffviewer.py,sha256=
|
514
|
+
tomwer/gui/visualization/diffviewer/diffviewer.py,sha256=5tZ9sTy9MwVlCuUryN03wQOWEzWddpshiYkaiuDFPLY,21076
|
515
515
|
tomwer/gui/visualization/diffviewer/shiftwidget.py,sha256=--JvNXU3Si-fWtO1SfzhQKY8YVCymNez-yn47SrFsA4,20938
|
516
516
|
tomwer/gui/visualization/test/__init__.py,sha256=nRVmFmNtdzN5PElEurDCb9pDulWIha-fLu-VX8hNn5A,1368
|
517
517
|
tomwer/gui/visualization/test/test_dataviewer.py,sha256=NuYVFMX1yBncrcUI4jMCvj-VOcZO8_1uMz3uNW2SSXY,2444
|
@@ -622,8 +622,8 @@ tomwer/resources/gui/icons/vignettes.png,sha256=IrRLh0W4kr6qIfbAgMxE7B4UKvbG5zAg
|
|
622
622
|
tomwer/resources/gui/icons/vignettes.svg,sha256=qn_jgL_q4P0Hzo2jODmSxmZNzN8eQMoQ3yyagCWM904,3252
|
623
623
|
tomwer/resources/gui/icons/warning.png,sha256=6uxDzFf5QSf5BBVBrBL_VAOzaFzV-9Ext52lsue6HPs,2348
|
624
624
|
tomwer/resources/gui/icons/warning.svg,sha256=YjFMio-qMTmEJTnJzj3twnuGErvqK0LSj5x44YIdEBw,1462
|
625
|
-
tomwer/resources/gui/illustrations/ctf_z1.png,sha256=
|
626
|
-
tomwer/resources/gui/illustrations/ctf_z1.svg,sha256=
|
625
|
+
tomwer/resources/gui/illustrations/ctf_z1.png,sha256=UckofrAS4A_I8OI2zu7T_wNHO-Vj8Jp1nHJy8oqMROE,7752
|
626
|
+
tomwer/resources/gui/illustrations/ctf_z1.svg,sha256=NgbH8MgXda4ywt5c6j162BDOMDvKUK6oGDJY_M9AWaU,36320
|
627
627
|
tomwer/resources/gui/illustrations/flow_down.png,sha256=lWv8HaEaiQ2JSjF0tS1IlcyoWOJD_J0TcTVhzENACno,551
|
628
628
|
tomwer/resources/gui/illustrations/flow_down.svg,sha256=WNLyBbTnJqohneGt6bP5W1UafYxTGdtSR16KpwwMBDk,3987
|
629
629
|
tomwer/resources/gui/illustrations/flow_right.png,sha256=1tuAYv7EDKtZNAssdEGuHZMJC2kWDvVVGVT030q9hHc,531
|
@@ -698,10 +698,10 @@ tomwer/web/client.py,sha256=Ldu_rsW5O53QBH3iJ_gDlo9ip2d1-GQuVYo0KX_fzUU,1807
|
|
698
698
|
tomwer/web/config.py,sha256=K-mGjde07maay9arYdfx3DHIEdFfeRBZX6IuxUL5UlA,1623
|
699
699
|
tomwer/web/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
700
700
|
tomwer/web/test/test_graylog_connection.py,sha256=SUNOC2mKEINGQMZkHzFgCPFpx7feDUCvhaJ83xb2thc,2220
|
701
|
-
tomwer-1.1.
|
702
|
-
tomwer-1.1.
|
703
|
-
tomwer-1.1.
|
704
|
-
tomwer-1.1.
|
705
|
-
tomwer-1.1.
|
706
|
-
tomwer-1.1.
|
707
|
-
tomwer-1.1.
|
701
|
+
tomwer-1.1.1.dist-info/LICENSE,sha256=yR_hIZ1MfDh9x2_s23uFqBH7m5DgrBl9nJKkE37YChM,1877
|
702
|
+
tomwer-1.1.1.dist-info/METADATA,sha256=RtIELVb6JZ5GgBrzavoySzYTOzk9oNWxxbbkPj6dgMo,11641
|
703
|
+
tomwer-1.1.1.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQA6lS9xA,92
|
704
|
+
tomwer-1.1.1.dist-info/entry_points.txt,sha256=aDZTIsXRj1SgQ0tixWsmYGjM4y6gcYK7ykK6z7XlLjw,368
|
705
|
+
tomwer-1.1.1.dist-info/namespace_packages.txt,sha256=Iut-JTfT11SZHHm77_ZeszD7pZDWXcTweCbvrJpqDyQ,14
|
706
|
+
tomwer-1.1.1.dist-info/top_level.txt,sha256=Yz5zKh0FPiImtzHYcPuztG1AO8-6KEpUWgoChGbA0Ys,21
|
707
|
+
tomwer-1.1.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|