datalab-platform 0.0.1.dev0__tar.gz → 1.0.1__tar.gz

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.
Files changed (927) hide show
  1. datalab_platform-1.0.1/CHANGELOG.md +1366 -0
  2. datalab_platform-1.0.1/CONTRIBUTING.md +11 -0
  3. datalab_platform-1.0.1/DataLab.desktop +10 -0
  4. {datalab_platform-0.0.1.dev0 → datalab_platform-1.0.1}/MANIFEST.in +1 -0
  5. datalab_platform-1.0.1/PKG-INFO +121 -0
  6. datalab_platform-1.0.1/README.md +49 -0
  7. datalab_platform-1.0.1/datalab/__init__.py +35 -0
  8. datalab_platform-1.0.1/datalab/adapters_metadata/__init__.py +31 -0
  9. datalab_platform-1.0.1/datalab/adapters_metadata/base_adapter.py +316 -0
  10. datalab_platform-1.0.1/datalab/adapters_metadata/common.py +422 -0
  11. datalab_platform-1.0.1/datalab/adapters_metadata/geometry_adapter.py +98 -0
  12. datalab_platform-1.0.1/datalab/adapters_metadata/table_adapter.py +84 -0
  13. datalab_platform-1.0.1/datalab/adapters_plotpy/__init__.py +54 -0
  14. datalab_platform-1.0.1/datalab/adapters_plotpy/annotations.py +124 -0
  15. datalab_platform-1.0.1/datalab/adapters_plotpy/base.py +110 -0
  16. datalab_platform-1.0.1/datalab/adapters_plotpy/converters.py +86 -0
  17. datalab_platform-1.0.1/datalab/adapters_plotpy/factories.py +80 -0
  18. datalab_platform-1.0.1/datalab/adapters_plotpy/objects/__init__.py +0 -0
  19. datalab_platform-1.0.1/datalab/adapters_plotpy/objects/base.py +197 -0
  20. datalab_platform-1.0.1/datalab/adapters_plotpy/objects/image.py +157 -0
  21. datalab_platform-1.0.1/datalab/adapters_plotpy/objects/scalar.py +565 -0
  22. datalab_platform-1.0.1/datalab/adapters_plotpy/objects/signal.py +264 -0
  23. datalab_platform-1.0.1/datalab/adapters_plotpy/roi/__init__.py +0 -0
  24. datalab_platform-1.0.1/datalab/adapters_plotpy/roi/base.py +146 -0
  25. datalab_platform-1.0.1/datalab/adapters_plotpy/roi/factory.py +93 -0
  26. datalab_platform-1.0.1/datalab/adapters_plotpy/roi/image.py +207 -0
  27. datalab_platform-1.0.1/datalab/adapters_plotpy/roi/signal.py +72 -0
  28. datalab_platform-1.0.1/datalab/app.py +98 -0
  29. datalab_platform-1.0.1/datalab/config.py +817 -0
  30. datalab_platform-1.0.1/datalab/control/__init__.py +0 -0
  31. datalab_platform-1.0.1/datalab/control/baseproxy.py +776 -0
  32. datalab_platform-1.0.1/datalab/control/proxy.py +343 -0
  33. datalab_platform-1.0.1/datalab/control/remote.py +1005 -0
  34. datalab_platform-1.0.1/datalab/data/icons/analysis/delete_results.svg +109 -0
  35. datalab_platform-1.0.1/datalab/data/icons/analysis/fw1e2.svg +156 -0
  36. datalab_platform-1.0.1/datalab/data/icons/analysis/fwhm.svg +156 -0
  37. datalab_platform-1.0.1/datalab/data/icons/analysis/histogram.svg +49 -0
  38. datalab_platform-1.0.1/datalab/data/icons/analysis/peak_detect.svg +160 -0
  39. datalab_platform-1.0.1/datalab/data/icons/analysis/plot_results.svg +151 -0
  40. datalab_platform-1.0.1/datalab/data/icons/analysis/show_results.svg +83 -0
  41. datalab_platform-1.0.1/datalab/data/icons/analysis/stats.svg +49 -0
  42. datalab_platform-1.0.1/datalab/data/icons/analysis.svg +120 -0
  43. datalab_platform-1.0.1/datalab/data/icons/apply.svg +3 -0
  44. datalab_platform-1.0.1/datalab/data/icons/check_all.svg +15 -0
  45. datalab_platform-1.0.1/datalab/data/icons/collapse.svg +44 -0
  46. datalab_platform-1.0.1/datalab/data/icons/collapse_selection.svg +63 -0
  47. datalab_platform-1.0.1/datalab/data/icons/console.svg +101 -0
  48. datalab_platform-1.0.1/datalab/data/icons/create/1d-normal.svg +8 -0
  49. datalab_platform-1.0.1/datalab/data/icons/create/1d-poisson.svg +9 -0
  50. datalab_platform-1.0.1/datalab/data/icons/create/1d-uniform.svg +8 -0
  51. datalab_platform-1.0.1/datalab/data/icons/create/1d-zero.svg +57 -0
  52. datalab_platform-1.0.1/datalab/data/icons/create/2d-gaussian.svg +56 -0
  53. datalab_platform-1.0.1/datalab/data/icons/create/2d-normal.svg +38 -0
  54. datalab_platform-1.0.1/datalab/data/icons/create/2d-poisson.svg +38 -0
  55. datalab_platform-1.0.1/datalab/data/icons/create/2d-ramp.svg +90 -0
  56. datalab_platform-1.0.1/datalab/data/icons/create/2d-sinc.svg +62 -0
  57. datalab_platform-1.0.1/datalab/data/icons/create/2d-uniform.svg +38 -0
  58. datalab_platform-1.0.1/datalab/data/icons/create/2d-zero.svg +13 -0
  59. datalab_platform-1.0.1/datalab/data/icons/create/checkerboard.svg +39 -0
  60. datalab_platform-1.0.1/datalab/data/icons/create/cosine.svg +12 -0
  61. datalab_platform-1.0.1/datalab/data/icons/create/exponential.svg +55 -0
  62. datalab_platform-1.0.1/datalab/data/icons/create/gaussian.svg +12 -0
  63. datalab_platform-1.0.1/datalab/data/icons/create/grating.svg +29 -0
  64. datalab_platform-1.0.1/datalab/data/icons/create/linear_chirp.svg +7 -0
  65. datalab_platform-1.0.1/datalab/data/icons/create/logistic.svg +7 -0
  66. datalab_platform-1.0.1/datalab/data/icons/create/lorentzian.svg +12 -0
  67. datalab_platform-1.0.1/datalab/data/icons/create/planck.svg +12 -0
  68. datalab_platform-1.0.1/datalab/data/icons/create/polynomial.svg +7 -0
  69. datalab_platform-1.0.1/datalab/data/icons/create/pulse.svg +12 -0
  70. datalab_platform-1.0.1/datalab/data/icons/create/ring.svg +18 -0
  71. datalab_platform-1.0.1/datalab/data/icons/create/sawtooth.svg +7 -0
  72. datalab_platform-1.0.1/datalab/data/icons/create/siemens.svg +35 -0
  73. datalab_platform-1.0.1/datalab/data/icons/create/sinc.svg +12 -0
  74. datalab_platform-1.0.1/datalab/data/icons/create/sine.svg +7 -0
  75. datalab_platform-1.0.1/datalab/data/icons/create/square.svg +7 -0
  76. datalab_platform-1.0.1/datalab/data/icons/create/square_pulse.svg +7 -0
  77. datalab_platform-1.0.1/datalab/data/icons/create/step.svg +7 -0
  78. datalab_platform-1.0.1/datalab/data/icons/create/step_pulse.svg +12 -0
  79. datalab_platform-1.0.1/datalab/data/icons/create/triangle.svg +7 -0
  80. datalab_platform-1.0.1/datalab/data/icons/create/voigt.svg +12 -0
  81. datalab_platform-1.0.1/datalab/data/icons/edit/annotations.svg +72 -0
  82. datalab_platform-1.0.1/datalab/data/icons/edit/annotations_copy.svg +114 -0
  83. datalab_platform-1.0.1/datalab/data/icons/edit/annotations_delete.svg +83 -0
  84. datalab_platform-1.0.1/datalab/data/icons/edit/annotations_edit.svg +98 -0
  85. datalab_platform-1.0.1/datalab/data/icons/edit/annotations_export.svg +85 -0
  86. datalab_platform-1.0.1/datalab/data/icons/edit/annotations_import.svg +85 -0
  87. datalab_platform-1.0.1/datalab/data/icons/edit/annotations_paste.svg +100 -0
  88. datalab_platform-1.0.1/datalab/data/icons/edit/copy_titles.svg +109 -0
  89. datalab_platform-1.0.1/datalab/data/icons/edit/delete.svg +84 -0
  90. datalab_platform-1.0.1/datalab/data/icons/edit/delete_all.svg +214 -0
  91. datalab_platform-1.0.1/datalab/data/icons/edit/duplicate.svg +64 -0
  92. datalab_platform-1.0.1/datalab/data/icons/edit/goto_source.svg +60 -0
  93. datalab_platform-1.0.1/datalab/data/icons/edit/metadata.svg +60 -0
  94. datalab_platform-1.0.1/datalab/data/icons/edit/metadata_add.svg +80 -0
  95. datalab_platform-1.0.1/datalab/data/icons/edit/metadata_copy.svg +96 -0
  96. datalab_platform-1.0.1/datalab/data/icons/edit/metadata_delete.svg +62 -0
  97. datalab_platform-1.0.1/datalab/data/icons/edit/metadata_export.svg +68 -0
  98. datalab_platform-1.0.1/datalab/data/icons/edit/metadata_import.svg +68 -0
  99. datalab_platform-1.0.1/datalab/data/icons/edit/metadata_paste.svg +79 -0
  100. datalab_platform-1.0.1/datalab/data/icons/edit/move_down.svg +55 -0
  101. datalab_platform-1.0.1/datalab/data/icons/edit/move_up.svg +54 -0
  102. datalab_platform-1.0.1/datalab/data/icons/edit/new_group.svg +76 -0
  103. datalab_platform-1.0.1/datalab/data/icons/edit/recompute.svg +60 -0
  104. datalab_platform-1.0.1/datalab/data/icons/edit/rename.svg +49 -0
  105. datalab_platform-1.0.1/datalab/data/icons/edit.svg +16 -0
  106. datalab_platform-1.0.1/datalab/data/icons/expand.svg +44 -0
  107. datalab_platform-1.0.1/datalab/data/icons/expand_selection.svg +63 -0
  108. datalab_platform-1.0.1/datalab/data/icons/fit/cdf_fit.svg +56 -0
  109. datalab_platform-1.0.1/datalab/data/icons/fit/exponential_fit.svg +55 -0
  110. datalab_platform-1.0.1/datalab/data/icons/fit/gaussian_fit.svg +62 -0
  111. datalab_platform-1.0.1/datalab/data/icons/fit/interactive_fit.svg +101 -0
  112. datalab_platform-1.0.1/datalab/data/icons/fit/linear_fit.svg +57 -0
  113. datalab_platform-1.0.1/datalab/data/icons/fit/lorentzian_fit.svg +209 -0
  114. datalab_platform-1.0.1/datalab/data/icons/fit/multigaussian_fit.svg +85 -0
  115. datalab_platform-1.0.1/datalab/data/icons/fit/multilorentzian_fit.svg +85 -0
  116. datalab_platform-1.0.1/datalab/data/icons/fit/piecewiseexponential_fit.svg +209 -0
  117. datalab_platform-1.0.1/datalab/data/icons/fit/planckian_fit.svg +62 -0
  118. datalab_platform-1.0.1/datalab/data/icons/fit/polynomial_fit.svg +59 -0
  119. datalab_platform-1.0.1/datalab/data/icons/fit/sigmoid_fit.svg +56 -0
  120. datalab_platform-1.0.1/datalab/data/icons/fit/sinusoidal_fit.svg +72 -0
  121. datalab_platform-1.0.1/datalab/data/icons/fit/twohalfgaussian_fit.svg +63 -0
  122. datalab_platform-1.0.1/datalab/data/icons/fit/voigt_fit.svg +57 -0
  123. datalab_platform-1.0.1/datalab/data/icons/group.svg +56 -0
  124. datalab_platform-1.0.1/datalab/data/icons/h5/h5array.svg +59 -0
  125. datalab_platform-1.0.1/datalab/data/icons/h5/h5attrs.svg +75 -0
  126. datalab_platform-1.0.1/datalab/data/icons/h5/h5browser.svg +133 -0
  127. datalab_platform-1.0.1/datalab/data/icons/h5/h5file.svg +69 -0
  128. datalab_platform-1.0.1/datalab/data/icons/h5/h5group.svg +49 -0
  129. datalab_platform-1.0.1/datalab/data/icons/h5/h5scalar.svg +1 -0
  130. datalab_platform-1.0.1/datalab/data/icons/help_pdf.svg +46 -0
  131. datalab_platform-1.0.1/datalab/data/icons/history.svg +7 -0
  132. datalab_platform-1.0.1/datalab/data/icons/image.svg +135 -0
  133. datalab_platform-1.0.1/datalab/data/icons/io/fileopen_directory.svg +60 -0
  134. datalab_platform-1.0.1/datalab/data/icons/io/fileopen_h5.svg +84 -0
  135. datalab_platform-1.0.1/datalab/data/icons/io/fileopen_ima.svg +187 -0
  136. datalab_platform-1.0.1/datalab/data/icons/io/fileopen_py.svg +123 -0
  137. datalab_platform-1.0.1/datalab/data/icons/io/fileopen_sig.svg +138 -0
  138. datalab_platform-1.0.1/datalab/data/icons/io/filesave_h5.svg +97 -0
  139. datalab_platform-1.0.1/datalab/data/icons/io/filesave_ima.svg +200 -0
  140. datalab_platform-1.0.1/datalab/data/icons/io/filesave_py.svg +136 -0
  141. datalab_platform-1.0.1/datalab/data/icons/io/filesave_sig.svg +151 -0
  142. datalab_platform-1.0.1/datalab/data/icons/io/import_text.svg +144 -0
  143. datalab_platform-1.0.1/datalab/data/icons/io/save_to_directory.svg +134 -0
  144. datalab_platform-1.0.1/datalab/data/icons/io.svg +84 -0
  145. datalab_platform-1.0.1/datalab/data/icons/libre-camera-flash-off.svg +1 -0
  146. datalab_platform-1.0.1/datalab/data/icons/libre-camera-flash-on.svg +1 -0
  147. datalab_platform-1.0.1/datalab/data/icons/libre-gui-about.svg +1 -0
  148. datalab_platform-1.0.1/datalab/data/icons/libre-gui-action-delete.svg +1 -0
  149. datalab_platform-1.0.1/datalab/data/icons/libre-gui-add.svg +1 -0
  150. datalab_platform-1.0.1/datalab/data/icons/libre-gui-arrow-down.svg +1 -0
  151. datalab_platform-1.0.1/datalab/data/icons/libre-gui-arrow-left.svg +1 -0
  152. datalab_platform-1.0.1/datalab/data/icons/libre-gui-arrow-right.svg +1 -0
  153. datalab_platform-1.0.1/datalab/data/icons/libre-gui-arrow-up.svg +1 -0
  154. datalab_platform-1.0.1/datalab/data/icons/libre-gui-close.svg +40 -0
  155. datalab_platform-1.0.1/datalab/data/icons/libre-gui-cogs.svg +1 -0
  156. datalab_platform-1.0.1/datalab/data/icons/libre-gui-globe.svg +1 -0
  157. datalab_platform-1.0.1/datalab/data/icons/libre-gui-help.svg +1 -0
  158. datalab_platform-1.0.1/datalab/data/icons/libre-gui-link.svg +1 -0
  159. datalab_platform-1.0.1/datalab/data/icons/libre-gui-menu.svg +1 -0
  160. datalab_platform-1.0.1/datalab/data/icons/libre-gui-pencil.svg +1 -0
  161. datalab_platform-1.0.1/datalab/data/icons/libre-gui-plugin.svg +1 -0
  162. datalab_platform-1.0.1/datalab/data/icons/libre-gui-questions.svg +1 -0
  163. datalab_platform-1.0.1/datalab/data/icons/libre-gui-settings.svg +1 -0
  164. datalab_platform-1.0.1/datalab/data/icons/libre-gui-unlink.svg +1 -0
  165. datalab_platform-1.0.1/datalab/data/icons/libre-tech-ram.svg +1 -0
  166. datalab_platform-1.0.1/datalab/data/icons/libre-toolbox.svg +1 -0
  167. datalab_platform-1.0.1/datalab/data/icons/logs.svg +1 -0
  168. datalab_platform-1.0.1/datalab/data/icons/markers.svg +74 -0
  169. datalab_platform-1.0.1/datalab/data/icons/menu.svg +13 -0
  170. datalab_platform-1.0.1/datalab/data/icons/new_ima.svg +148 -0
  171. datalab_platform-1.0.1/datalab/data/icons/new_sig.svg +123 -0
  172. datalab_platform-1.0.1/datalab/data/icons/operations/abs.svg +116 -0
  173. datalab_platform-1.0.1/datalab/data/icons/operations/arithmetic.svg +123 -0
  174. datalab_platform-1.0.1/datalab/data/icons/operations/average.svg +124 -0
  175. datalab_platform-1.0.1/datalab/data/icons/operations/complex_from_magnitude_phase.svg +116 -0
  176. datalab_platform-1.0.1/datalab/data/icons/operations/complex_from_real_imag.svg +124 -0
  177. datalab_platform-1.0.1/datalab/data/icons/operations/constant.svg +116 -0
  178. datalab_platform-1.0.1/datalab/data/icons/operations/constant_add.svg +109 -0
  179. datalab_platform-1.0.1/datalab/data/icons/operations/constant_divide.svg +109 -0
  180. datalab_platform-1.0.1/datalab/data/icons/operations/constant_multiply.svg +109 -0
  181. datalab_platform-1.0.1/datalab/data/icons/operations/constant_subtract.svg +109 -0
  182. datalab_platform-1.0.1/datalab/data/icons/operations/convert_dtype.svg +117 -0
  183. datalab_platform-1.0.1/datalab/data/icons/operations/convolution.svg +46 -0
  184. datalab_platform-1.0.1/datalab/data/icons/operations/deconvolution.svg +57 -0
  185. datalab_platform-1.0.1/datalab/data/icons/operations/derivative.svg +127 -0
  186. datalab_platform-1.0.1/datalab/data/icons/operations/difference.svg +52 -0
  187. datalab_platform-1.0.1/datalab/data/icons/operations/division.svg +139 -0
  188. datalab_platform-1.0.1/datalab/data/icons/operations/exp.svg +116 -0
  189. datalab_platform-1.0.1/datalab/data/icons/operations/flip_horizontally.svg +69 -0
  190. datalab_platform-1.0.1/datalab/data/icons/operations/flip_vertically.svg +74 -0
  191. datalab_platform-1.0.1/datalab/data/icons/operations/im.svg +124 -0
  192. datalab_platform-1.0.1/datalab/data/icons/operations/integral.svg +50 -0
  193. datalab_platform-1.0.1/datalab/data/icons/operations/inverse.svg +143 -0
  194. datalab_platform-1.0.1/datalab/data/icons/operations/log10.svg +109 -0
  195. datalab_platform-1.0.1/datalab/data/icons/operations/phase.svg +116 -0
  196. datalab_platform-1.0.1/datalab/data/icons/operations/power.svg +118 -0
  197. datalab_platform-1.0.1/datalab/data/icons/operations/product.svg +124 -0
  198. datalab_platform-1.0.1/datalab/data/icons/operations/profile.svg +379 -0
  199. datalab_platform-1.0.1/datalab/data/icons/operations/profile_average.svg +399 -0
  200. datalab_platform-1.0.1/datalab/data/icons/operations/profile_radial.svg +261 -0
  201. datalab_platform-1.0.1/datalab/data/icons/operations/profile_segment.svg +262 -0
  202. datalab_platform-1.0.1/datalab/data/icons/operations/quadratic_difference.svg +84 -0
  203. datalab_platform-1.0.1/datalab/data/icons/operations/re.svg +124 -0
  204. datalab_platform-1.0.1/datalab/data/icons/operations/rotate_left.svg +72 -0
  205. datalab_platform-1.0.1/datalab/data/icons/operations/rotate_right.svg +72 -0
  206. datalab_platform-1.0.1/datalab/data/icons/operations/signals_to_image.svg +314 -0
  207. datalab_platform-1.0.1/datalab/data/icons/operations/sqrt.svg +110 -0
  208. datalab_platform-1.0.1/datalab/data/icons/operations/std.svg +124 -0
  209. datalab_platform-1.0.1/datalab/data/icons/operations/sum.svg +102 -0
  210. datalab_platform-1.0.1/datalab/data/icons/play_demo.svg +9 -0
  211. datalab_platform-1.0.1/datalab/data/icons/processing/axis_transform.svg +62 -0
  212. datalab_platform-1.0.1/datalab/data/icons/processing/bandpass.svg +79 -0
  213. datalab_platform-1.0.1/datalab/data/icons/processing/bandstop.svg +71 -0
  214. datalab_platform-1.0.1/datalab/data/icons/processing/binning.svg +126 -0
  215. datalab_platform-1.0.1/datalab/data/icons/processing/clip.svg +119 -0
  216. datalab_platform-1.0.1/datalab/data/icons/processing/detrending.svg +173 -0
  217. datalab_platform-1.0.1/datalab/data/icons/processing/distribute_on_grid.svg +769 -0
  218. datalab_platform-1.0.1/datalab/data/icons/processing/edge_detection.svg +46 -0
  219. datalab_platform-1.0.1/datalab/data/icons/processing/erase.svg +1 -0
  220. datalab_platform-1.0.1/datalab/data/icons/processing/exposure.svg +143 -0
  221. datalab_platform-1.0.1/datalab/data/icons/processing/fourier.svg +104 -0
  222. datalab_platform-1.0.1/datalab/data/icons/processing/highpass.svg +59 -0
  223. datalab_platform-1.0.1/datalab/data/icons/processing/interpolation.svg +71 -0
  224. datalab_platform-1.0.1/datalab/data/icons/processing/level_adjustment.svg +70 -0
  225. datalab_platform-1.0.1/datalab/data/icons/processing/lowpass.svg +60 -0
  226. datalab_platform-1.0.1/datalab/data/icons/processing/morphology.svg +49 -0
  227. datalab_platform-1.0.1/datalab/data/icons/processing/noise_addition.svg +114 -0
  228. datalab_platform-1.0.1/datalab/data/icons/processing/noise_reduction.svg +38 -0
  229. datalab_platform-1.0.1/datalab/data/icons/processing/normalize.svg +84 -0
  230. datalab_platform-1.0.1/datalab/data/icons/processing/offset_correction.svg +131 -0
  231. datalab_platform-1.0.1/datalab/data/icons/processing/resampling1d.svg +101 -0
  232. datalab_platform-1.0.1/datalab/data/icons/processing/resampling2d.svg +240 -0
  233. datalab_platform-1.0.1/datalab/data/icons/processing/reset_positions.svg +185 -0
  234. datalab_platform-1.0.1/datalab/data/icons/processing/resize.svg +9 -0
  235. datalab_platform-1.0.1/datalab/data/icons/processing/reverse_signal_x.svg +171 -0
  236. datalab_platform-1.0.1/datalab/data/icons/processing/stability.svg +11 -0
  237. datalab_platform-1.0.1/datalab/data/icons/processing/swap_x_y.svg +65 -0
  238. datalab_platform-1.0.1/datalab/data/icons/processing/thresholding.svg +63 -0
  239. datalab_platform-1.0.1/datalab/data/icons/processing/windowing.svg +45 -0
  240. datalab_platform-1.0.1/datalab/data/icons/properties.svg +26 -0
  241. datalab_platform-1.0.1/datalab/data/icons/reset.svg +9 -0
  242. datalab_platform-1.0.1/datalab/data/icons/restore.svg +40 -0
  243. datalab_platform-1.0.1/datalab/data/icons/roi/roi.svg +76 -0
  244. datalab_platform-1.0.1/datalab/data/icons/roi/roi_coordinate.svg +78 -0
  245. datalab_platform-1.0.1/datalab/data/icons/roi/roi_copy.svg +112 -0
  246. datalab_platform-1.0.1/datalab/data/icons/roi/roi_delete.svg +81 -0
  247. datalab_platform-1.0.1/datalab/data/icons/roi/roi_export.svg +87 -0
  248. datalab_platform-1.0.1/datalab/data/icons/roi/roi_graphical.svg +78 -0
  249. datalab_platform-1.0.1/datalab/data/icons/roi/roi_grid.svg +67 -0
  250. datalab_platform-1.0.1/datalab/data/icons/roi/roi_ima.svg +188 -0
  251. datalab_platform-1.0.1/datalab/data/icons/roi/roi_import.svg +87 -0
  252. datalab_platform-1.0.1/datalab/data/icons/roi/roi_new.svg +81 -0
  253. datalab_platform-1.0.1/datalab/data/icons/roi/roi_new_circle.svg +95 -0
  254. datalab_platform-1.0.1/datalab/data/icons/roi/roi_new_polygon.svg +110 -0
  255. datalab_platform-1.0.1/datalab/data/icons/roi/roi_new_rectangle.svg +70 -0
  256. datalab_platform-1.0.1/datalab/data/icons/roi/roi_paste.svg +98 -0
  257. datalab_platform-1.0.1/datalab/data/icons/roi/roi_sig.svg +124 -0
  258. datalab_platform-1.0.1/datalab/data/icons/shapes.svg +134 -0
  259. datalab_platform-1.0.1/datalab/data/icons/signal.svg +103 -0
  260. datalab_platform-1.0.1/datalab/data/icons/table.svg +85 -0
  261. datalab_platform-1.0.1/datalab/data/icons/table_unavailable.svg +102 -0
  262. datalab_platform-1.0.1/datalab/data/icons/to_signal.svg +124 -0
  263. datalab_platform-1.0.1/datalab/data/icons/tour/next.svg +44 -0
  264. datalab_platform-1.0.1/datalab/data/icons/tour/previous.svg +44 -0
  265. datalab_platform-1.0.1/datalab/data/icons/tour/rewind.svg +51 -0
  266. datalab_platform-1.0.1/datalab/data/icons/tour/stop.svg +47 -0
  267. datalab_platform-1.0.1/datalab/data/icons/tour/tour.svg +16 -0
  268. datalab_platform-1.0.1/datalab/data/icons/uncheck_all.svg +78 -0
  269. datalab_platform-1.0.1/datalab/data/icons/view/curve_antialiasing.svg +50 -0
  270. datalab_platform-1.0.1/datalab/data/icons/view/new_window.svg +98 -0
  271. datalab_platform-1.0.1/datalab/data/icons/view/refresh-auto.svg +57 -0
  272. datalab_platform-1.0.1/datalab/data/icons/view/refresh-manual.svg +51 -0
  273. datalab_platform-1.0.1/datalab/data/icons/view/reset_curve_styles.svg +96 -0
  274. datalab_platform-1.0.1/datalab/data/icons/view/show_first.svg +55 -0
  275. datalab_platform-1.0.1/datalab/data/icons/view/show_titles.svg +46 -0
  276. datalab_platform-1.0.1/datalab/data/icons/visualization.svg +51 -0
  277. datalab_platform-1.0.1/datalab/data/logo/DataLab-Banner-150.png +0 -0
  278. datalab_platform-1.0.1/datalab/data/logo/DataLab-Banner-200.png +0 -0
  279. datalab_platform-1.0.1/datalab/data/logo/DataLab-Banner2-100.png +0 -0
  280. datalab_platform-1.0.1/datalab/data/logo/DataLab-Splash.png +0 -0
  281. datalab_platform-1.0.1/datalab/data/logo/DataLab-watermark.png +0 -0
  282. datalab_platform-1.0.1/datalab/data/logo/DataLab.svg +83 -0
  283. datalab_platform-1.0.1/datalab/data/tests/reordering_test.h5 +0 -0
  284. datalab_platform-1.0.1/datalab/data/tutorials/fabry_perot/fabry-perot1.jpg +0 -0
  285. datalab_platform-1.0.1/datalab/data/tutorials/fabry_perot/fabry-perot2.jpg +0 -0
  286. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_13.jpg +0 -0
  287. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_18.jpg +0 -0
  288. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_23.jpg +0 -0
  289. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_30.jpg +0 -0
  290. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_35.jpg +0 -0
  291. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_40.jpg +0 -0
  292. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_45.jpg +0 -0
  293. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_50.jpg +0 -0
  294. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_55.jpg +0 -0
  295. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_60.jpg +0 -0
  296. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_65.jpg +0 -0
  297. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_70.jpg +0 -0
  298. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_75.jpg +0 -0
  299. datalab_platform-1.0.1/datalab/data/tutorials/laser_beam/TEM00_z_80.jpg +0 -0
  300. datalab_platform-1.0.1/datalab/env.py +542 -0
  301. datalab_platform-1.0.1/datalab/gui/__init__.py +89 -0
  302. datalab_platform-1.0.1/datalab/gui/actionhandler.py +1701 -0
  303. datalab_platform-1.0.1/datalab/gui/docks.py +473 -0
  304. datalab_platform-1.0.1/datalab/gui/h5io.py +150 -0
  305. datalab_platform-1.0.1/datalab/gui/macroeditor.py +310 -0
  306. datalab_platform-1.0.1/datalab/gui/main.py +2081 -0
  307. datalab_platform-1.0.1/datalab/gui/newobject.py +217 -0
  308. datalab_platform-1.0.1/datalab/gui/objectview.py +766 -0
  309. datalab_platform-1.0.1/datalab/gui/panel/__init__.py +48 -0
  310. datalab_platform-1.0.1/datalab/gui/panel/base.py +3254 -0
  311. datalab_platform-1.0.1/datalab/gui/panel/image.py +157 -0
  312. datalab_platform-1.0.1/datalab/gui/panel/macro.py +607 -0
  313. datalab_platform-1.0.1/datalab/gui/panel/signal.py +164 -0
  314. datalab_platform-1.0.1/datalab/gui/plothandler.py +800 -0
  315. datalab_platform-1.0.1/datalab/gui/processor/__init__.py +84 -0
  316. datalab_platform-1.0.1/datalab/gui/processor/base.py +2456 -0
  317. datalab_platform-1.0.1/datalab/gui/processor/catcher.py +75 -0
  318. datalab_platform-1.0.1/datalab/gui/processor/image.py +1214 -0
  319. datalab_platform-1.0.1/datalab/gui/processor/signal.py +755 -0
  320. datalab_platform-1.0.1/datalab/gui/profiledialog.py +333 -0
  321. datalab_platform-1.0.1/datalab/gui/roieditor.py +633 -0
  322. datalab_platform-1.0.1/datalab/gui/roigrideditor.py +208 -0
  323. datalab_platform-1.0.1/datalab/gui/settings.py +612 -0
  324. datalab_platform-1.0.1/datalab/gui/tour.py +908 -0
  325. datalab_platform-1.0.1/datalab/h5/__init__.py +12 -0
  326. datalab_platform-1.0.1/datalab/h5/common.py +314 -0
  327. datalab_platform-1.0.1/datalab/h5/generic.py +580 -0
  328. datalab_platform-1.0.1/datalab/h5/native.py +39 -0
  329. datalab_platform-1.0.1/datalab/h5/utils.py +95 -0
  330. datalab_platform-1.0.1/datalab/objectmodel.py +640 -0
  331. datalab_platform-1.0.1/datalab/plugins/_readme_.txt +9 -0
  332. datalab_platform-1.0.1/datalab/plugins/datalab_imageformats.py +175 -0
  333. datalab_platform-1.0.1/datalab/plugins/datalab_testdata.py +190 -0
  334. datalab_platform-1.0.1/datalab/plugins.py +355 -0
  335. datalab_platform-1.0.1/datalab/tests/__init__.py +199 -0
  336. datalab_platform-1.0.1/datalab/tests/backbone/__init__.py +1 -0
  337. datalab_platform-1.0.1/datalab/tests/backbone/config_unit_test.py +170 -0
  338. datalab_platform-1.0.1/datalab/tests/backbone/config_versioning_unit_test.py +34 -0
  339. datalab_platform-1.0.1/datalab/tests/backbone/dictlistserial_app_test.py +38 -0
  340. datalab_platform-1.0.1/datalab/tests/backbone/errorcatcher_unit_test.py +69 -0
  341. datalab_platform-1.0.1/datalab/tests/backbone/errormsgbox_unit_test.py +50 -0
  342. datalab_platform-1.0.1/datalab/tests/backbone/execenv_unit.py +262 -0
  343. datalab_platform-1.0.1/datalab/tests/backbone/loadtest_gdi.py +147 -0
  344. datalab_platform-1.0.1/datalab/tests/backbone/long_callback.py +96 -0
  345. datalab_platform-1.0.1/datalab/tests/backbone/main_app_test.py +137 -0
  346. datalab_platform-1.0.1/datalab/tests/backbone/memory_leak.py +43 -0
  347. datalab_platform-1.0.1/datalab/tests/backbone/procisolation1_unit.py +128 -0
  348. datalab_platform-1.0.1/datalab/tests/backbone/procisolation2_unit.py +171 -0
  349. datalab_platform-1.0.1/datalab/tests/backbone/procisolation_unit_test.py +22 -0
  350. datalab_platform-1.0.1/datalab/tests/backbone/profiling_app.py +27 -0
  351. datalab_platform-1.0.1/datalab/tests/backbone/strings_unit_test.py +65 -0
  352. datalab_platform-1.0.1/datalab/tests/backbone/title_formatting_unit_test.py +82 -0
  353. datalab_platform-1.0.1/datalab/tests/conftest.py +131 -0
  354. datalab_platform-1.0.1/datalab/tests/features/__init__.py +1 -0
  355. datalab_platform-1.0.1/datalab/tests/features/applauncher/__init__.py +1 -0
  356. datalab_platform-1.0.1/datalab/tests/features/applauncher/launcher1_app_test.py +28 -0
  357. datalab_platform-1.0.1/datalab/tests/features/applauncher/launcher2_app_test.py +30 -0
  358. datalab_platform-1.0.1/datalab/tests/features/common/__init__.py +1 -0
  359. datalab_platform-1.0.1/datalab/tests/features/common/add_metadata_app_test.py +134 -0
  360. datalab_platform-1.0.1/datalab/tests/features/common/add_metadata_unit_test.py +267 -0
  361. datalab_platform-1.0.1/datalab/tests/features/common/annotations_management_unit_test.py +152 -0
  362. datalab_platform-1.0.1/datalab/tests/features/common/auto_analysis_recompute_unit_test.py +240 -0
  363. datalab_platform-1.0.1/datalab/tests/features/common/createobject_unit_test.py +50 -0
  364. datalab_platform-1.0.1/datalab/tests/features/common/geometry_results_app_test.py +135 -0
  365. datalab_platform-1.0.1/datalab/tests/features/common/interactive_processing_test.py +1109 -0
  366. datalab_platform-1.0.1/datalab/tests/features/common/io_app_test.py +75 -0
  367. datalab_platform-1.0.1/datalab/tests/features/common/large_results_app_test.py +187 -0
  368. datalab_platform-1.0.1/datalab/tests/features/common/metadata_all_patterns_test.py +103 -0
  369. datalab_platform-1.0.1/datalab/tests/features/common/metadata_app_test.py +139 -0
  370. datalab_platform-1.0.1/datalab/tests/features/common/metadata_io_unit_test.py +60 -0
  371. datalab_platform-1.0.1/datalab/tests/features/common/misc_app_test.py +236 -0
  372. datalab_platform-1.0.1/datalab/tests/features/common/multiple_geometry_results_unit_test.py +122 -0
  373. datalab_platform-1.0.1/datalab/tests/features/common/multiple_table_results_unit_test.py +64 -0
  374. datalab_platform-1.0.1/datalab/tests/features/common/operation_modes_app_test.py +392 -0
  375. datalab_platform-1.0.1/datalab/tests/features/common/plot_results_app_test.py +278 -0
  376. datalab_platform-1.0.1/datalab/tests/features/common/reorder_app_test.py +75 -0
  377. datalab_platform-1.0.1/datalab/tests/features/common/result_deletion_unit_test.py +96 -0
  378. datalab_platform-1.0.1/datalab/tests/features/common/result_merged_label_unit_test.py +154 -0
  379. datalab_platform-1.0.1/datalab/tests/features/common/result_shape_settings_unit_test.py +223 -0
  380. datalab_platform-1.0.1/datalab/tests/features/common/roi_plotitem_unit_test.py +64 -0
  381. datalab_platform-1.0.1/datalab/tests/features/common/roieditor_unit_test.py +102 -0
  382. datalab_platform-1.0.1/datalab/tests/features/common/save_to_dir_app_test.py +163 -0
  383. datalab_platform-1.0.1/datalab/tests/features/common/save_to_dir_unit_test.py +474 -0
  384. datalab_platform-1.0.1/datalab/tests/features/common/stat_app_test.py +40 -0
  385. datalab_platform-1.0.1/datalab/tests/features/common/stats_tools_unit_test.py +77 -0
  386. datalab_platform-1.0.1/datalab/tests/features/common/table_results_app_test.py +52 -0
  387. datalab_platform-1.0.1/datalab/tests/features/common/textimport_unit_test.py +131 -0
  388. datalab_platform-1.0.1/datalab/tests/features/common/uuid_preservation_test.py +281 -0
  389. datalab_platform-1.0.1/datalab/tests/features/common/worker_unit_test.py +402 -0
  390. datalab_platform-1.0.1/datalab/tests/features/control/__init__.py +1 -0
  391. datalab_platform-1.0.1/datalab/tests/features/control/connect_dialog.py +28 -0
  392. datalab_platform-1.0.1/datalab/tests/features/control/embedded1_unit_test.py +304 -0
  393. datalab_platform-1.0.1/datalab/tests/features/control/embedded2_unit_test.py +52 -0
  394. datalab_platform-1.0.1/datalab/tests/features/control/remoteclient_app_test.py +219 -0
  395. datalab_platform-1.0.1/datalab/tests/features/control/remoteclient_unit.py +75 -0
  396. datalab_platform-1.0.1/datalab/tests/features/control/simpleclient_unit_test.py +321 -0
  397. datalab_platform-1.0.1/datalab/tests/features/hdf5/__init__.py +1 -0
  398. datalab_platform-1.0.1/datalab/tests/features/hdf5/h5browser1_unit_test.py +31 -0
  399. datalab_platform-1.0.1/datalab/tests/features/hdf5/h5browser2_unit.py +55 -0
  400. datalab_platform-1.0.1/datalab/tests/features/hdf5/h5browser_app_test.py +77 -0
  401. datalab_platform-1.0.1/datalab/tests/features/hdf5/h5import_app_test.py +25 -0
  402. datalab_platform-1.0.1/datalab/tests/features/hdf5/h5importer_app_test.py +34 -0
  403. datalab_platform-1.0.1/datalab/tests/features/image/__init__.py +1 -0
  404. datalab_platform-1.0.1/datalab/tests/features/image/annotations_app_test.py +28 -0
  405. datalab_platform-1.0.1/datalab/tests/features/image/annotations_unit_test.py +80 -0
  406. datalab_platform-1.0.1/datalab/tests/features/image/average_app_test.py +46 -0
  407. datalab_platform-1.0.1/datalab/tests/features/image/background_dialog_test.py +70 -0
  408. datalab_platform-1.0.1/datalab/tests/features/image/blobs_app_test.py +50 -0
  409. datalab_platform-1.0.1/datalab/tests/features/image/contour_app_test.py +42 -0
  410. datalab_platform-1.0.1/datalab/tests/features/image/contour_fabryperot_app_test.py +51 -0
  411. datalab_platform-1.0.1/datalab/tests/features/image/denoise_app_test.py +31 -0
  412. datalab_platform-1.0.1/datalab/tests/features/image/distribute_on_grid_app_test.py +95 -0
  413. datalab_platform-1.0.1/datalab/tests/features/image/edges_app_test.py +31 -0
  414. datalab_platform-1.0.1/datalab/tests/features/image/erase_app_test.py +21 -0
  415. datalab_platform-1.0.1/datalab/tests/features/image/fft2d_app_test.py +27 -0
  416. datalab_platform-1.0.1/datalab/tests/features/image/flatfield_app_test.py +40 -0
  417. datalab_platform-1.0.1/datalab/tests/features/image/geometry_transform_unit_test.py +396 -0
  418. datalab_platform-1.0.1/datalab/tests/features/image/imagetools_app_test.py +51 -0
  419. datalab_platform-1.0.1/datalab/tests/features/image/imagetools_unit_test.py +27 -0
  420. datalab_platform-1.0.1/datalab/tests/features/image/load_app_test.py +73 -0
  421. datalab_platform-1.0.1/datalab/tests/features/image/morph_app_test.py +32 -0
  422. datalab_platform-1.0.1/datalab/tests/features/image/offsetcorrection_app_test.py +30 -0
  423. datalab_platform-1.0.1/datalab/tests/features/image/peak2d_app_test.py +53 -0
  424. datalab_platform-1.0.1/datalab/tests/features/image/profile_app_test.py +73 -0
  425. datalab_platform-1.0.1/datalab/tests/features/image/profile_dialog_test.py +56 -0
  426. datalab_platform-1.0.1/datalab/tests/features/image/roi_app_test.py +98 -0
  427. datalab_platform-1.0.1/datalab/tests/features/image/roi_circ_app_test.py +62 -0
  428. datalab_platform-1.0.1/datalab/tests/features/image/roi_manipulation_app_test.py +268 -0
  429. datalab_platform-1.0.1/datalab/tests/features/image/roigrid_unit_test.py +60 -0
  430. datalab_platform-1.0.1/datalab/tests/features/image/side_by_side_app_test.py +52 -0
  431. datalab_platform-1.0.1/datalab/tests/features/macro/__init__.py +1 -0
  432. datalab_platform-1.0.1/datalab/tests/features/macro/macro_app_test.py +28 -0
  433. datalab_platform-1.0.1/datalab/tests/features/macro/macroeditor_unit_test.py +102 -0
  434. datalab_platform-1.0.1/datalab/tests/features/signal/__init__.py +1 -0
  435. datalab_platform-1.0.1/datalab/tests/features/signal/baseline_dialog_test.py +53 -0
  436. datalab_platform-1.0.1/datalab/tests/features/signal/deltax_dialog_unit_test.py +34 -0
  437. datalab_platform-1.0.1/datalab/tests/features/signal/fft1d_app_test.py +26 -0
  438. datalab_platform-1.0.1/datalab/tests/features/signal/filter_app_test.py +44 -0
  439. datalab_platform-1.0.1/datalab/tests/features/signal/fitdialog_unit_test.py +50 -0
  440. datalab_platform-1.0.1/datalab/tests/features/signal/interpolation_app_test.py +110 -0
  441. datalab_platform-1.0.1/datalab/tests/features/signal/loadbigsignal_app_test.py +80 -0
  442. datalab_platform-1.0.1/datalab/tests/features/signal/multiple_rois_unit_test.py +132 -0
  443. datalab_platform-1.0.1/datalab/tests/features/signal/pulse_features_app_test.py +118 -0
  444. datalab_platform-1.0.1/datalab/tests/features/signal/pulse_features_roi_app_test.py +55 -0
  445. datalab_platform-1.0.1/datalab/tests/features/signal/roi_app_test.py +78 -0
  446. datalab_platform-1.0.1/datalab/tests/features/signal/roi_manipulation_app_test.py +261 -0
  447. datalab_platform-1.0.1/datalab/tests/features/signal/select_xy_cursor_unit_test.py +46 -0
  448. datalab_platform-1.0.1/datalab/tests/features/signal/signalpeakdetection_dialog_test.py +33 -0
  449. datalab_platform-1.0.1/datalab/tests/features/signal/signals_to_image_app_test.py +98 -0
  450. datalab_platform-1.0.1/datalab/tests/features/signal/xarray_compat_app_test.py +128 -0
  451. datalab_platform-1.0.1/datalab/tests/features/tour_unit_test.py +22 -0
  452. datalab_platform-1.0.1/datalab/tests/features/utilities/__init__.py +1 -0
  453. datalab_platform-1.0.1/datalab/tests/features/utilities/installconf_unit_test.py +21 -0
  454. datalab_platform-1.0.1/datalab/tests/features/utilities/logview_app_test.py +21 -0
  455. datalab_platform-1.0.1/datalab/tests/features/utilities/logview_error.py +24 -0
  456. datalab_platform-1.0.1/datalab/tests/features/utilities/logview_unit_test.py +21 -0
  457. datalab_platform-1.0.1/datalab/tests/features/utilities/memstatus_app_test.py +42 -0
  458. datalab_platform-1.0.1/datalab/tests/features/utilities/settings_unit_test.py +88 -0
  459. datalab_platform-1.0.1/datalab/tests/scenarios/__init__.py +1 -0
  460. datalab_platform-1.0.1/datalab/tests/scenarios/beautiful_app.py +121 -0
  461. datalab_platform-1.0.1/datalab/tests/scenarios/common.py +463 -0
  462. datalab_platform-1.0.1/datalab/tests/scenarios/demo.py +212 -0
  463. datalab_platform-1.0.1/datalab/tests/scenarios/example_app_test.py +47 -0
  464. datalab_platform-1.0.1/datalab/tests/scenarios/scenario_h5_app_test.py +75 -0
  465. datalab_platform-1.0.1/datalab/tests/scenarios/scenario_ima1_app_test.py +34 -0
  466. datalab_platform-1.0.1/datalab/tests/scenarios/scenario_ima2_app_test.py +34 -0
  467. datalab_platform-1.0.1/datalab/tests/scenarios/scenario_mac_app_test.py +58 -0
  468. datalab_platform-1.0.1/datalab/tests/scenarios/scenario_sig1_app_test.py +36 -0
  469. datalab_platform-1.0.1/datalab/tests/scenarios/scenario_sig2_app_test.py +35 -0
  470. datalab_platform-1.0.1/datalab/utils/__init__.py +1 -0
  471. datalab_platform-1.0.1/datalab/utils/conf.py +304 -0
  472. datalab_platform-1.0.1/datalab/utils/dephash.py +105 -0
  473. datalab_platform-1.0.1/datalab/utils/qthelpers.py +633 -0
  474. datalab_platform-1.0.1/datalab/utils/strings.py +34 -0
  475. datalab_platform-1.0.1/datalab/utils/tests.py +0 -0
  476. datalab_platform-1.0.1/datalab/widgets/__init__.py +1 -0
  477. datalab_platform-1.0.1/datalab/widgets/connection.py +138 -0
  478. datalab_platform-1.0.1/datalab/widgets/filedialog.py +91 -0
  479. datalab_platform-1.0.1/datalab/widgets/fileviewer.py +84 -0
  480. datalab_platform-1.0.1/datalab/widgets/fitdialog.py +788 -0
  481. datalab_platform-1.0.1/datalab/widgets/h5browser.py +1048 -0
  482. datalab_platform-1.0.1/datalab/widgets/imagebackground.py +111 -0
  483. datalab_platform-1.0.1/datalab/widgets/instconfviewer.py +175 -0
  484. datalab_platform-1.0.1/datalab/widgets/logviewer.py +80 -0
  485. datalab_platform-1.0.1/datalab/widgets/signalbaseline.py +90 -0
  486. datalab_platform-1.0.1/datalab/widgets/signalcursor.py +208 -0
  487. datalab_platform-1.0.1/datalab/widgets/signaldeltax.py +151 -0
  488. datalab_platform-1.0.1/datalab/widgets/signalpeak.py +199 -0
  489. datalab_platform-1.0.1/datalab/widgets/status.py +249 -0
  490. datalab_platform-1.0.1/datalab/widgets/textimport.py +786 -0
  491. datalab_platform-1.0.1/datalab/widgets/warningerror.py +223 -0
  492. datalab_platform-1.0.1/datalab/widgets/wizard.py +286 -0
  493. datalab_platform-1.0.1/datalab_platform.egg-info/PKG-INFO +121 -0
  494. datalab_platform-1.0.1/datalab_platform.egg-info/SOURCES.txt +918 -0
  495. datalab_platform-1.0.1/datalab_platform.egg-info/requires.txt +42 -0
  496. datalab_platform-1.0.1/doc/_static/DataLab-Frontpage.png +0 -0
  497. datalab_platform-1.0.1/doc/_static/DataLab-Title.png +0 -0
  498. datalab_platform-1.0.1/doc/_static/DataLab-Title.svg +94 -0
  499. datalab_platform-1.0.1/doc/_static/codra.png +0 -0
  500. datalab_platform-1.0.1/doc/_static/favicon.ico +0 -0
  501. datalab_platform-1.0.1/doc/_static/plotpy-stack-powered.png +0 -0
  502. datalab_platform-1.0.1/doc/_static/pypi.svg +1 -0
  503. datalab_platform-1.0.1/doc/_templates/layout.html +18 -0
  504. datalab_platform-1.0.1/doc/conf.py +270 -0
  505. datalab_platform-1.0.1/doc/contributing/contribute_code.rst +38 -0
  506. datalab_platform-1.0.1/doc/contributing/dependencies.rst +66 -0
  507. datalab_platform-1.0.1/doc/contributing/environment.md +155 -0
  508. datalab_platform-1.0.1/doc/contributing/gitworkflow.rst +204 -0
  509. datalab_platform-1.0.1/doc/contributing/guidelines.rst +74 -0
  510. datalab_platform-1.0.1/doc/contributing/index.rst +124 -0
  511. datalab_platform-1.0.1/doc/contributing/roadmap.md +202 -0
  512. datalab_platform-1.0.1/doc/features/advanced/api/actionhandler.rst +2 -0
  513. datalab_platform-1.0.1/doc/features/advanced/api/docks.rst +2 -0
  514. datalab_platform-1.0.1/doc/features/advanced/api/h5io.rst +2 -0
  515. datalab_platform-1.0.1/doc/features/advanced/api/index.rst +2 -0
  516. datalab_platform-1.0.1/doc/features/advanced/api/main.rst +2 -0
  517. datalab_platform-1.0.1/doc/features/advanced/api/objectview.rst +2 -0
  518. datalab_platform-1.0.1/doc/features/advanced/api/panel.rst +1 -0
  519. datalab_platform-1.0.1/doc/features/advanced/api/plothandler.rst +2 -0
  520. datalab_platform-1.0.1/doc/features/advanced/api/processor.rst +1 -0
  521. datalab_platform-1.0.1/doc/features/advanced/api/roieditor.rst +2 -0
  522. datalab_platform-1.0.1/doc/features/advanced/api.rst +31 -0
  523. datalab_platform-1.0.1/doc/features/advanced/command.rst +99 -0
  524. datalab_platform-1.0.1/doc/features/advanced/instviewer.rst +64 -0
  525. datalab_platform-1.0.1/doc/features/advanced/logviewer.rst +35 -0
  526. datalab_platform-1.0.1/doc/features/advanced/macros.rst +99 -0
  527. datalab_platform-1.0.1/doc/features/advanced/migration_v020_to_v100.rst +753 -0
  528. datalab_platform-1.0.1/doc/features/advanced/model.rst +23 -0
  529. datalab_platform-1.0.1/doc/features/advanced/plugins.rst +113 -0
  530. datalab_platform-1.0.1/doc/features/advanced/proxy.rst +2 -0
  531. datalab_platform-1.0.1/doc/features/advanced/remote.rst +129 -0
  532. datalab_platform-1.0.1/doc/features/advanced/v020_to_v100.csv +64 -0
  533. datalab_platform-1.0.1/doc/features/common/h5browser.rst +30 -0
  534. datalab_platform-1.0.1/doc/features/common/overview.rst +158 -0
  535. datalab_platform-1.0.1/doc/features/common/settings.rst +341 -0
  536. datalab_platform-1.0.1/doc/features/image/2d_peak_detection.rst +61 -0
  537. datalab_platform-1.0.1/doc/features/image/contour_detection.rst +50 -0
  538. datalab_platform-1.0.1/doc/features/image/menu_analysis.rst +246 -0
  539. datalab_platform-1.0.1/doc/features/image/menu_create.rst +74 -0
  540. datalab_platform-1.0.1/doc/features/image/menu_edit.rst +311 -0
  541. datalab_platform-1.0.1/doc/features/image/menu_file.rst +185 -0
  542. datalab_platform-1.0.1/doc/features/image/menu_operations.rst +316 -0
  543. datalab_platform-1.0.1/doc/features/image/menu_processing.rst +531 -0
  544. datalab_platform-1.0.1/doc/features/image/menu_roi.rst +98 -0
  545. datalab_platform-1.0.1/doc/features/image/menu_view.rst +126 -0
  546. datalab_platform-1.0.1/doc/features/index.rst +144 -0
  547. datalab_platform-1.0.1/doc/features/signal/menu_analysis.rst +277 -0
  548. datalab_platform-1.0.1/doc/features/signal/menu_create.rst +141 -0
  549. datalab_platform-1.0.1/doc/features/signal/menu_edit.rst +305 -0
  550. datalab_platform-1.0.1/doc/features/signal/menu_file.rst +160 -0
  551. datalab_platform-1.0.1/doc/features/signal/menu_operations.rst +287 -0
  552. datalab_platform-1.0.1/doc/features/signal/menu_processing.rst +489 -0
  553. datalab_platform-1.0.1/doc/features/signal/menu_roi.rst +91 -0
  554. datalab_platform-1.0.1/doc/features/signal/menu_view.rst +138 -0
  555. datalab_platform-1.0.1/doc/features/validation/functional.rst +54 -0
  556. datalab_platform-1.0.1/doc/features/validation/status.rst +59 -0
  557. datalab_platform-1.0.1/doc/features/validation/technical.rst +94 -0
  558. datalab_platform-1.0.1/doc/images/2d_peak_detection/peak2d_app_param.png +0 -0
  559. datalab_platform-1.0.1/doc/images/2d_peak_detection/peak2d_app_results.png +0 -0
  560. datalab_platform-1.0.1/doc/images/2d_peak_detection/peak2d_app_zoom.png +0 -0
  561. datalab_platform-1.0.1/doc/images/2dpeak_detection.png +0 -0
  562. datalab_platform-1.0.1/doc/images/DataLab-Overview.png +0 -0
  563. datalab_platform-1.0.1/doc/images/DataLab-Screenshot-Image.png +0 -0
  564. datalab_platform-1.0.1/doc/images/DataLab-Screenshot-Signal.png +0 -0
  565. datalab_platform-1.0.1/doc/images/DataLab-Screenshot-Theme.png +0 -0
  566. datalab_platform-1.0.1/doc/images/DataLab-banner.png +0 -0
  567. datalab_platform-1.0.1/doc/images/annotations/image_annotations1.png +0 -0
  568. datalab_platform-1.0.1/doc/images/annotations/image_annotations2.png +0 -0
  569. datalab_platform-1.0.1/doc/images/annotations/signal_annotations1.png +0 -0
  570. datalab_platform-1.0.1/doc/images/annotations/signal_annotations2.png +0 -0
  571. datalab_platform-1.0.1/doc/images/annotations/view_menu_entry.png +0 -0
  572. datalab_platform-1.0.1/doc/images/contour_detection/contour_app.png +0 -0
  573. datalab_platform-1.0.1/doc/images/contour_detection/contour_app_param.png +0 -0
  574. datalab_platform-1.0.1/doc/images/contour_detection/contour_app_results.png +0 -0
  575. datalab_platform-1.0.1/doc/images/contour_detection.png +0 -0
  576. datalab_platform-1.0.1/doc/images/h5browser.png +0 -0
  577. datalab_platform-1.0.1/doc/images/import_text_file/i_01.png +0 -0
  578. datalab_platform-1.0.1/doc/images/import_text_file/i_02.png +0 -0
  579. datalab_platform-1.0.1/doc/images/import_text_file/i_03.png +0 -0
  580. datalab_platform-1.0.1/doc/images/import_text_file/i_04.png +0 -0
  581. datalab_platform-1.0.1/doc/images/import_text_file/s_01.png +0 -0
  582. datalab_platform-1.0.1/doc/images/import_text_file/s_02.png +0 -0
  583. datalab_platform-1.0.1/doc/images/import_text_file/s_03.png +0 -0
  584. datalab_platform-1.0.1/doc/images/import_text_file/s_04.png +0 -0
  585. datalab_platform-1.0.1/doc/images/interactive_tests.png +0 -0
  586. datalab_platform-1.0.1/doc/images/logos/DataLab-WinPython.png +0 -0
  587. datalab_platform-1.0.1/doc/images/logos/NumPy.png +0 -0
  588. datalab_platform-1.0.1/doc/images/logos/OpenCV.png +0 -0
  589. datalab_platform-1.0.1/doc/images/logos/Python.png +0 -0
  590. datalab_platform-1.0.1/doc/images/logos/SciPy.png +0 -0
  591. datalab_platform-1.0.1/doc/images/logos/Sigima-Banner.png +0 -0
  592. datalab_platform-1.0.1/doc/images/logos/Sigima-Power.png +0 -0
  593. datalab_platform-1.0.1/doc/images/logos/Sigima.png +0 -0
  594. datalab_platform-1.0.1/doc/images/logos/cea.svg +29 -0
  595. datalab_platform-1.0.1/doc/images/logos/codra.svg +65 -0
  596. datalab_platform-1.0.1/doc/images/logos/nlnet.svg +41 -0
  597. datalab_platform-1.0.1/doc/images/logos/plotpystack.png +0 -0
  598. datalab_platform-1.0.1/doc/images/logos/scikit-image.png +0 -0
  599. datalab_platform-1.0.1/doc/images/multi_gaussian_fit.png +0 -0
  600. datalab_platform-1.0.1/doc/images/peak_detection.png +0 -0
  601. datalab_platform-1.0.1/doc/images/shots/about.png +0 -0
  602. datalab_platform-1.0.1/doc/images/shots/connect_dialog.png +0 -0
  603. datalab_platform-1.0.1/doc/images/shots/doc_online.png +0 -0
  604. datalab_platform-1.0.1/doc/images/shots/i_add_metadata.png +0 -0
  605. datalab_platform-1.0.1/doc/images/shots/i_analysis.png +0 -0
  606. datalab_platform-1.0.1/doc/images/shots/i_beautiful.png +0 -0
  607. datalab_platform-1.0.1/doc/images/shots/i_blob_detection_flower.png +0 -0
  608. datalab_platform-1.0.1/doc/images/shots/i_contour_test.png +0 -0
  609. datalab_platform-1.0.1/doc/images/shots/i_create.png +0 -0
  610. datalab_platform-1.0.1/doc/images/shots/i_edit.png +0 -0
  611. datalab_platform-1.0.1/doc/images/shots/i_edit_annotations.png +0 -0
  612. datalab_platform-1.0.1/doc/images/shots/i_edit_metadata.png +0 -0
  613. datalab_platform-1.0.1/doc/images/shots/i_file.png +0 -0
  614. datalab_platform-1.0.1/doc/images/shots/i_grid_roi_editor.png +0 -0
  615. datalab_platform-1.0.1/doc/images/shots/i_help.png +0 -0
  616. datalab_platform-1.0.1/doc/images/shots/i_histogram.png +0 -0
  617. datalab_platform-1.0.1/doc/images/shots/i_new_window.png +0 -0
  618. datalab_platform-1.0.1/doc/images/shots/i_operation.png +0 -0
  619. datalab_platform-1.0.1/doc/images/shots/i_peak2d_test.png +0 -0
  620. datalab_platform-1.0.1/doc/images/shots/i_processing.png +0 -0
  621. datalab_platform-1.0.1/doc/images/shots/i_profile.png +0 -0
  622. datalab_platform-1.0.1/doc/images/shots/i_profile_average.png +0 -0
  623. datalab_platform-1.0.1/doc/images/shots/i_roi.png +0 -0
  624. datalab_platform-1.0.1/doc/images/shots/i_roi_dialog.png +0 -0
  625. datalab_platform-1.0.1/doc/images/shots/i_roi_editor.png +0 -0
  626. datalab_platform-1.0.1/doc/images/shots/i_roi_image.png +0 -0
  627. datalab_platform-1.0.1/doc/images/shots/i_save_to_directory.png +0 -0
  628. datalab_platform-1.0.1/doc/images/shots/i_stats.png +0 -0
  629. datalab_platform-1.0.1/doc/images/shots/i_view.png +0 -0
  630. datalab_platform-1.0.1/doc/images/shots/instviewer.png +0 -0
  631. datalab_platform-1.0.1/doc/images/shots/instviewer2.png +0 -0
  632. datalab_platform-1.0.1/doc/images/shots/instviewer3.png +0 -0
  633. datalab_platform-1.0.1/doc/images/shots/logviewer.png +0 -0
  634. datalab_platform-1.0.1/doc/images/shots/macro_panel.png +0 -0
  635. datalab_platform-1.0.1/doc/images/shots/remote_control_test.png +0 -0
  636. datalab_platform-1.0.1/doc/images/shots/s_add_metadata.png +0 -0
  637. datalab_platform-1.0.1/doc/images/shots/s_analysis.png +0 -0
  638. datalab_platform-1.0.1/doc/images/shots/s_app_at_startup.png +0 -0
  639. datalab_platform-1.0.1/doc/images/shots/s_beautiful.png +0 -0
  640. datalab_platform-1.0.1/doc/images/shots/s_create.png +0 -0
  641. datalab_platform-1.0.1/doc/images/shots/s_edit.png +0 -0
  642. datalab_platform-1.0.1/doc/images/shots/s_edit_annotations.png +0 -0
  643. datalab_platform-1.0.1/doc/images/shots/s_edit_metadata.png +0 -0
  644. datalab_platform-1.0.1/doc/images/shots/s_file.png +0 -0
  645. datalab_platform-1.0.1/doc/images/shots/s_fwhm.png +0 -0
  646. datalab_platform-1.0.1/doc/images/shots/s_help.png +0 -0
  647. datalab_platform-1.0.1/doc/images/shots/s_histogram.png +0 -0
  648. datalab_platform-1.0.1/doc/images/shots/s_new_window.png +0 -0
  649. datalab_platform-1.0.1/doc/images/shots/s_operation.png +0 -0
  650. datalab_platform-1.0.1/doc/images/shots/s_peak_detection.png +0 -0
  651. datalab_platform-1.0.1/doc/images/shots/s_processing.png +0 -0
  652. datalab_platform-1.0.1/doc/images/shots/s_pulse_features.png +0 -0
  653. datalab_platform-1.0.1/doc/images/shots/s_roi.png +0 -0
  654. datalab_platform-1.0.1/doc/images/shots/s_roi_dialog.png +0 -0
  655. datalab_platform-1.0.1/doc/images/shots/s_roi_editor.png +0 -0
  656. datalab_platform-1.0.1/doc/images/shots/s_roi_signal.png +0 -0
  657. datalab_platform-1.0.1/doc/images/shots/s_save_to_directory.png +0 -0
  658. datalab_platform-1.0.1/doc/images/shots/s_stats.png +0 -0
  659. datalab_platform-1.0.1/doc/images/shots/s_view.png +0 -0
  660. datalab_platform-1.0.1/doc/images/shots/settings_console.png +0 -0
  661. datalab_platform-1.0.1/doc/images/shots/settings_io.png +0 -0
  662. datalab_platform-1.0.1/doc/images/shots/settings_main.png +0 -0
  663. datalab_platform-1.0.1/doc/images/shots/settings_proc.png +0 -0
  664. datalab_platform-1.0.1/doc/images/shots/settings_view_common.png +0 -0
  665. datalab_platform-1.0.1/doc/images/shots/settings_view_images.png +0 -0
  666. datalab_platform-1.0.1/doc/images/shots/settings_view_results.png +0 -0
  667. datalab_platform-1.0.1/doc/images/shots/settings_view_signals.png +0 -0
  668. datalab_platform-1.0.1/doc/images/shots/windows_installer.png +0 -0
  669. datalab_platform-1.0.1/doc/images/shots/wpcp.png +0 -0
  670. datalab_platform-1.0.1/doc/images/tutorials/blobs/01.png +0 -0
  671. datalab_platform-1.0.1/doc/images/tutorials/blobs/02.png +0 -0
  672. datalab_platform-1.0.1/doc/images/tutorials/blobs/03.png +0 -0
  673. datalab_platform-1.0.1/doc/images/tutorials/blobs/04.png +0 -0
  674. datalab_platform-1.0.1/doc/images/tutorials/blobs/05.png +0 -0
  675. datalab_platform-1.0.1/doc/images/tutorials/blobs/06.png +0 -0
  676. datalab_platform-1.0.1/doc/images/tutorials/blobs/07.png +0 -0
  677. datalab_platform-1.0.1/doc/images/tutorials/blobs/08.png +0 -0
  678. datalab_platform-1.0.1/doc/images/tutorials/blobs/09.png +0 -0
  679. datalab_platform-1.0.1/doc/images/tutorials/blobs/10.png +0 -0
  680. datalab_platform-1.0.1/doc/images/tutorials/blobs/11.png +0 -0
  681. datalab_platform-1.0.1/doc/images/tutorials/blobs/12.png +0 -0
  682. datalab_platform-1.0.1/doc/images/tutorials/blobs/13.png +0 -0
  683. datalab_platform-1.0.1/doc/images/tutorials/csection.png +0 -0
  684. datalab_platform-1.0.1/doc/images/tutorials/custom_func/01.png +0 -0
  685. datalab_platform-1.0.1/doc/images/tutorials/custom_func/02.png +0 -0
  686. datalab_platform-1.0.1/doc/images/tutorials/custom_func/03.png +0 -0
  687. datalab_platform-1.0.1/doc/images/tutorials/custom_func/04.png +0 -0
  688. datalab_platform-1.0.1/doc/images/tutorials/custom_func/05.png +0 -0
  689. datalab_platform-1.0.1/doc/images/tutorials/custom_func/06.png +0 -0
  690. datalab_platform-1.0.1/doc/images/tutorials/custom_func/07.png +0 -0
  691. datalab_platform-1.0.1/doc/images/tutorials/custom_func/08.png +0 -0
  692. datalab_platform-1.0.1/doc/images/tutorials/custom_func/10.png +0 -0
  693. datalab_platform-1.0.1/doc/images/tutorials/custom_func/11.png +0 -0
  694. datalab_platform-1.0.1/doc/images/tutorials/custom_func/nb.png +0 -0
  695. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/01.png +0 -0
  696. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/02.png +0 -0
  697. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/03.png +0 -0
  698. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/04.png +0 -0
  699. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/05a.png +0 -0
  700. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/05b.png +0 -0
  701. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/05c.png +0 -0
  702. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/06.png +0 -0
  703. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/07.png +0 -0
  704. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/08.png +0 -0
  705. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/09.png +0 -0
  706. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/10.png +0 -0
  707. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/11.png +0 -0
  708. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/12.png +0 -0
  709. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/13.png +0 -0
  710. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/14.png +0 -0
  711. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/15.png +0 -0
  712. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/16.png +0 -0
  713. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/17.png +0 -0
  714. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/18.png +0 -0
  715. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/19.png +0 -0
  716. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/20.png +0 -0
  717. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/21.png +0 -0
  718. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/22.png +0 -0
  719. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/23.png +0 -0
  720. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/24.png +0 -0
  721. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/25.png +0 -0
  722. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/26.png +0 -0
  723. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/27.png +0 -0
  724. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/28.png +0 -0
  725. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/30.png +0 -0
  726. datalab_platform-1.0.1/doc/images/tutorials/fabry_perot/default_colormap.png +0 -0
  727. datalab_platform-1.0.1/doc/images/tutorials/imagestats.png +0 -0
  728. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/00.png +0 -0
  729. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/01.png +0 -0
  730. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/02.png +0 -0
  731. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/03.png +0 -0
  732. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/03b.png +0 -0
  733. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/04.png +0 -0
  734. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/05.png +0 -0
  735. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/05b.png +0 -0
  736. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/06.png +0 -0
  737. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/08.png +0 -0
  738. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/09.png +0 -0
  739. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/10.png +0 -0
  740. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/11.png +0 -0
  741. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/12.png +0 -0
  742. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/13.png +0 -0
  743. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/14.png +0 -0
  744. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/15.png +0 -0
  745. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/16.png +0 -0
  746. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/17.png +0 -0
  747. datalab_platform-1.0.1/doc/images/tutorials/laser_beam/18.png +0 -0
  748. datalab_platform-1.0.1/doc/images/tutorials/spectrum/01.png +0 -0
  749. datalab_platform-1.0.1/doc/images/tutorials/spectrum/02.png +0 -0
  750. datalab_platform-1.0.1/doc/images/tutorials/spectrum/03.png +0 -0
  751. datalab_platform-1.0.1/doc/images/tutorials/spectrum/04.png +0 -0
  752. datalab_platform-1.0.1/doc/images/tutorials/spectrum/05.png +0 -0
  753. datalab_platform-1.0.1/doc/images/tutorials/spectrum/06.png +0 -0
  754. datalab_platform-1.0.1/doc/images/tutorials/spectrum/07.png +0 -0
  755. datalab_platform-1.0.1/doc/images/tutorials/spectrum/08.png +0 -0
  756. datalab_platform-1.0.1/doc/images/tutorials/spectrum/09.png +0 -0
  757. datalab_platform-1.0.1/doc/images/tutorials/spectrum/11.png +0 -0
  758. datalab_platform-1.0.1/doc/images/tutorials/spectrum/12.png +0 -0
  759. datalab_platform-1.0.1/doc/images/tutorials/spectrum/13.png +0 -0
  760. datalab_platform-1.0.1/doc/images/tutorials/spectrum/14.png +0 -0
  761. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15.png +0 -0
  762. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15b.png +0 -0
  763. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15c.png +0 -0
  764. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15d.png +0 -0
  765. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15e.png +0 -0
  766. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15f.png +0 -0
  767. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15g.png +0 -0
  768. datalab_platform-1.0.1/doc/images/tutorials/spectrum/15h.png +0 -0
  769. datalab_platform-1.0.1/doc/images/tutorials/spectrum/16.png +0 -0
  770. datalab_platform-1.0.1/doc/images/tutorials/spectrum/17.png +0 -0
  771. datalab_platform-1.0.1/doc/images/tutorials/spectrum/18.png +0 -0
  772. datalab_platform-1.0.1/doc/images/tutorials/spectrum/19.png +0 -0
  773. datalab_platform-1.0.1/doc/images/tutorials/spectrum/20.png +0 -0
  774. datalab_platform-1.0.1/doc/images/tutorials/spectrum/21.png +0 -0
  775. datalab_platform-1.0.1/doc/images/tutorials/work_with_spyder/01.png +0 -0
  776. datalab_platform-1.0.1/doc/images/tutorials/work_with_spyder/02.png +0 -0
  777. datalab_platform-1.0.1/doc/images/tutorials/work_with_spyder/03.png +0 -0
  778. datalab_platform-1.0.1/doc/images/tutorials/work_with_spyder/spyder_and_datalab.png +0 -0
  779. datalab_platform-1.0.1/doc/index.rst +166 -0
  780. datalab_platform-1.0.1/doc/intro/index.rst +89 -0
  781. datalab_platform-1.0.1/doc/intro/installation.rst +262 -0
  782. datalab_platform-1.0.1/doc/intro/introduction.rst +179 -0
  783. datalab_platform-1.0.1/doc/intro/keyfeatures.rst +89 -0
  784. datalab_platform-1.0.1/doc/intro/tutorials/blobs.rst +195 -0
  785. datalab_platform-1.0.1/doc/intro/tutorials/custom_func.ipynb +155 -0
  786. datalab_platform-1.0.1/doc/intro/tutorials/custom_func.py +55 -0
  787. datalab_platform-1.0.1/doc/intro/tutorials/custom_func.rst +371 -0
  788. datalab_platform-1.0.1/doc/intro/tutorials/fabry_perot.rst +418 -0
  789. datalab_platform-1.0.1/doc/intro/tutorials/index.rst +55 -0
  790. datalab_platform-1.0.1/doc/intro/tutorials/laser_beam.rst +322 -0
  791. datalab_platform-1.0.1/doc/intro/tutorials/my_work.py +114 -0
  792. datalab_platform-1.0.1/doc/intro/tutorials/my_work_debug_with_datalab.py +20 -0
  793. datalab_platform-1.0.1/doc/intro/tutorials/my_work_test_with_datalab.py +32 -0
  794. datalab_platform-1.0.1/doc/intro/tutorials/spectrum.rst +246 -0
  795. datalab_platform-1.0.1/doc/intro/tutorials/videos/p1_quick_demo.rst +34 -0
  796. datalab_platform-1.0.1/doc/intro/tutorials/videos/p2_extensibility.rst +42 -0
  797. datalab_platform-1.0.1/doc/intro/tutorials/work_with_spyder.rst +182 -0
  798. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/changelog.po +3186 -0
  799. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/contributing/contribute_code.po +48 -0
  800. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/contributing/dependencies.po +104 -0
  801. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/contributing/environment.po +281 -0
  802. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/contributing/gitworkflow.po +173 -0
  803. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/contributing/guidelines.po +96 -0
  804. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/contributing/index.po +132 -0
  805. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/contributing/roadmap.po +429 -0
  806. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/api/index.po +101 -0
  807. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/api.po +35 -0
  808. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/command.po +78 -0
  809. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/instviewer.po +99 -0
  810. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/logviewer.po +51 -0
  811. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/macros.po +101 -0
  812. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/migration_v020_to_v100.po +787 -0
  813. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/model.po +47 -0
  814. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/plugins.po +297 -0
  815. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/proxy.po +483 -0
  816. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/advanced/remote.po +510 -0
  817. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/common/h5browser.po +52 -0
  818. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/common/overview.po +213 -0
  819. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/common/settings.po +461 -0
  820. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/2d_peak_detection.po +108 -0
  821. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/contour_detection.po +87 -0
  822. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_analysis.po +287 -0
  823. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_create.po +115 -0
  824. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_edit.po +297 -0
  825. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_file.po +287 -0
  826. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_operations.po +356 -0
  827. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_processing.po +809 -0
  828. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_roi.po +113 -0
  829. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/image/menu_view.po +140 -0
  830. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/index.po +101 -0
  831. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_analysis.po +396 -0
  832. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_create.po +220 -0
  833. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_edit.po +294 -0
  834. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_file.po +211 -0
  835. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_operations.po +330 -0
  836. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_processing.po +794 -0
  837. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_roi.po +107 -0
  838. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/signal/menu_view.po +152 -0
  839. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/validation/functional.po +72 -0
  840. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/validation/status.po +1951 -0
  841. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/features/validation/technical.po +134 -0
  842. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/index.po +128 -0
  843. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/index.po +108 -0
  844. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/installation.po +412 -0
  845. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/introduction.po +213 -0
  846. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/keyfeatures.po +216 -0
  847. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/blobs.po +136 -0
  848. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/custom_func.po +257 -0
  849. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/fabry_perot.po +290 -0
  850. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/index.po +47 -0
  851. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/laser_beam.po +254 -0
  852. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/spectrum.po +197 -0
  853. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/videos/p1_quick_demo.po +38 -0
  854. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/videos/p2_extensibility.po +50 -0
  855. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/intro/tutorials/work_with_spyder.po +136 -0
  856. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/outreach/index.po +104 -0
  857. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/outreach/osxp2024.po +257 -0
  858. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/outreach/osxp2025.po +434 -0
  859. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/outreach/pydata2024.po +205 -0
  860. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/outreach/scipy2024.po +152 -0
  861. datalab_platform-1.0.1/doc/locale/fr/LC_MESSAGES/requirements.po +243 -0
  862. datalab_platform-1.0.1/doc/outreach/index.rst +78 -0
  863. datalab_platform-1.0.1/doc/outreach/osxp2024.rst +143 -0
  864. datalab_platform-1.0.1/doc/outreach/osxp2025.rst +218 -0
  865. datalab_platform-1.0.1/doc/outreach/pydata2024.rst +119 -0
  866. datalab_platform-1.0.1/doc/outreach/scipy2024-convention-center.jpg +0 -0
  867. datalab_platform-1.0.1/doc/outreach/scipy2024-datalab-poster.png +0 -0
  868. datalab_platform-1.0.1/doc/outreach/scipy2024-datalab-talk.png +0 -0
  869. datalab_platform-1.0.1/doc/outreach/scipy2024-logo.png +0 -0
  870. datalab_platform-1.0.1/doc/outreach/scipy2024.rst +96 -0
  871. datalab_platform-1.0.1/doc/remote_example.ipynb +182 -0
  872. datalab_platform-1.0.1/doc/remote_example.py +49 -0
  873. datalab_platform-1.0.1/doc/remotecontrol_py27.py +177 -0
  874. datalab_platform-1.0.1/doc/requirements.rst +130 -0
  875. datalab_platform-1.0.1/doc/update_screenshots.py +20 -0
  876. datalab_platform-1.0.1/doc/update_validation_status.py +22 -0
  877. datalab_platform-1.0.1/doc/validation_statistics.csv +3 -0
  878. datalab_platform-1.0.1/doc/validation_status_image.csv +115 -0
  879. datalab_platform-1.0.1/doc/validation_status_signal.csv +95 -0
  880. datalab_platform-1.0.1/macros/examples/imageproc_macro.py +37 -0
  881. datalab_platform-1.0.1/macros/examples/simple_macro.py +18 -0
  882. datalab_platform-1.0.1/plugins/examples/datalab_custom_func.py +62 -0
  883. datalab_platform-1.0.1/plugins/examples/datalab_example_empty.py +35 -0
  884. datalab_platform-1.0.1/plugins/examples/datalab_example_imageformat.py +43 -0
  885. datalab_platform-1.0.1/plugins/examples/datalab_example_imageproc.py +92 -0
  886. {datalab_platform-0.0.1.dev0 → datalab_platform-1.0.1}/pyproject.toml +60 -16
  887. datalab_platform-1.0.1/requirements.txt +28 -0
  888. datalab_platform-1.0.1/resources/DataLab-Banner.svg +104 -0
  889. datalab_platform-1.0.1/resources/DataLab-Banner2.svg +111 -0
  890. datalab_platform-1.0.1/resources/DataLab-Banner3.svg +118 -0
  891. datalab_platform-1.0.1/resources/DataLab-Debug.svg +111 -0
  892. datalab_platform-1.0.1/resources/DataLab-Frontpage.svg +89 -0
  893. datalab_platform-1.0.1/resources/DataLab-Overview-Large.svg +487 -0
  894. datalab_platform-1.0.1/resources/DataLab-Overview.svg +460 -0
  895. datalab_platform-1.0.1/resources/DataLab-Panorama.svg +334 -0
  896. datalab_platform-1.0.1/resources/DataLab-Reset.ico +0 -0
  897. datalab_platform-1.0.1/resources/DataLab-Reset.svg +111 -0
  898. datalab_platform-1.0.1/resources/DataLab-Screenshot-Theme.svg +184 -0
  899. datalab_platform-1.0.1/resources/DataLab-Splash.svg +1085 -0
  900. datalab_platform-1.0.1/resources/DataLab-Sticker.svg +1081 -0
  901. datalab_platform-1.0.1/resources/DataLab-Title-DarkBG.svg +91 -0
  902. datalab_platform-1.0.1/resources/DataLab-Title.svg +94 -0
  903. datalab_platform-1.0.1/resources/DataLab-Wallpaper.svg +122 -0
  904. datalab_platform-1.0.1/resources/DataLab-Windows-Installer.svg +120 -0
  905. datalab_platform-1.0.1/resources/DataLab-app.svg +116 -0
  906. datalab_platform-1.0.1/resources/DataLab-lib.svg +133 -0
  907. datalab_platform-1.0.1/resources/DataLab-remote.svg +254 -0
  908. datalab_platform-1.0.1/resources/DataLab-watermark.svg +95 -0
  909. datalab_platform-1.0.1/resources/DataLab.ico +0 -0
  910. datalab_platform-1.0.1/resources/DataLab.svg +83 -0
  911. datalab_platform-1.0.1/resources/WixUIBanner.svg +402 -0
  912. datalab_platform-1.0.1/resources/WixUIDialog.svg +437 -0
  913. datalab_platform-1.0.1/resources/api-ms-win-core-path-l1-1-0.dll +0 -0
  914. datalab_platform-1.0.1/resources/api-ms-win-core-path-l1-1-0.txt +12 -0
  915. datalab_platform-1.0.1/resources/deploy.bat +38 -0
  916. datalab_platform-0.0.1.dev0/PKG-INFO +0 -67
  917. datalab_platform-0.0.1.dev0/README.md +0 -7
  918. datalab_platform-0.0.1.dev0/datalab/__init__.py +0 -2
  919. datalab_platform-0.0.1.dev0/datalab_platform.egg-info/PKG-INFO +0 -67
  920. datalab_platform-0.0.1.dev0/datalab_platform.egg-info/SOURCES.txt +0 -12
  921. datalab_platform-0.0.1.dev0/datalab_platform.egg-info/requires.txt +0 -29
  922. datalab_platform-0.0.1.dev0/requirements.txt +0 -24
  923. {datalab_platform-0.0.1.dev0 → datalab_platform-1.0.1}/LICENSE +0 -0
  924. {datalab_platform-0.0.1.dev0 → datalab_platform-1.0.1}/datalab_platform.egg-info/dependency_links.txt +0 -0
  925. {datalab_platform-0.0.1.dev0 → datalab_platform-1.0.1}/datalab_platform.egg-info/entry_points.txt +0 -0
  926. {datalab_platform-0.0.1.dev0 → datalab_platform-1.0.1}/datalab_platform.egg-info/top_level.txt +0 -0
  927. {datalab_platform-0.0.1.dev0 → datalab_platform-1.0.1}/setup.cfg +0 -0
@@ -0,0 +1,1366 @@
1
+ # Release notes #
2
+
3
+ See DataLab [roadmap page](https://datalab-platform.com/en/contributing/roadmap.html) for future and past milestones.
4
+
5
+ ## DataLab Version 1.0.1 ##
6
+
7
+ This major release represents a significant milestone for DataLab with numerous enhancements across all areas. The changes are organized by category for easier navigation.
8
+
9
+ > **Note**: Version 1.0.1 is a patch release that addresses Windows installer limitations in version 1.0.0, where it was not possible to install DataLab V1.0 alongside earlier major versions (V0.20 and earlier) despite the intended coexistence support. This release contains no new features or functional changes.
10
+
11
+ ### 🎨 User Interface & Workflow ###
12
+
13
+ **Menu reorganization:**
14
+
15
+ * **New "Create" menu**: Separated object creation functionality from the "File" menu, placed between "File" and "Edit" menus for clearer organization
16
+ * All "File > New [...]" actions moved to "Create" menu
17
+ * **Migration note**: Find signal/image creation actions in the new "Create" menu
18
+ * **New "ROI" menu**: Dedicated menu for Region of Interest management, positioned between "Edit" and "Operations" menus
19
+ * **New "Annotations" submenu**: Consolidated annotation operations in the "Edit" menu
20
+ * **New "Metadata" submenu**: Grouped all metadata operations in the "Edit" menu
21
+
22
+ **Interactive object editing:**
23
+
24
+ * **Interactive object creation**: Creation parameters can be modified after object creation via new "Creation" tab in properties panel
25
+ * Apply changes without creating new objects, preserving subsequent processing
26
+ * Available for parametric generators (Gaussian, sine, etc.)
27
+ * **Interactive 1-to-1 processing**: Processing parameters can be adjusted and reapplied via new "Processing" tab
28
+ * Update result objects in-place with modified parameters
29
+ * Only for parametric operations (filters, morphology, etc.)
30
+ * **Recompute feature**: New "Recompute" action (Ctrl+R) to quickly reprocess objects with stored parameters
31
+ * Works with single or multiple objects
32
+ * Automatically updates results when source data changes
33
+ * **Automatic ROI analysis update**: Analysis results automatically recalculate when ROI is modified
34
+ * Works for all analysis operations (statistics, centroid, etc.)
35
+ * Silent background recomputation for immediate feedback
36
+ * **Select source objects**: Navigate to source objects used in processing via new "Edit" menu action
37
+ * Handles all processing patterns (1-to-1, 2-to-1, n-to-1)
38
+ * Shows informative messages if sources no longer exist
39
+ * **Processing history**: New "History" tab displays object processing lineage as hierarchical tree
40
+ * Shows complete processing chain from creation to current state
41
+ * Selectable text for documentation purposes
42
+
43
+ **Multi-object property editing:**
44
+
45
+ * Apply property changes to multiple selected objects simultaneously
46
+ * Only modified properties are applied, preserving unchanged individual settings
47
+ * Typical use case: Adjust LUT boundaries or colormap for multiple images at once
48
+
49
+ **Dialog sizing improvements:**
50
+
51
+ * Processing dialogs now intelligently resize based on main window size
52
+ * Never exceed main window dimensions for better user experience
53
+
54
+ **Internal console indicator:**
55
+
56
+ * Status bar indicator shows console status when hidden
57
+ * Turns red on errors/warnings to alert users
58
+ * Click to open console
59
+
60
+ ### 🎬 New Object Creation Features ###
61
+
62
+ **Parametric signal generators:**
63
+
64
+ * Linear chirp, logistic function, Planck function
65
+ * Generate signals with Poisson noise
66
+
67
+ **Parametric image generators:**
68
+
69
+ * **Checkerboard**: Calibration pattern with configurable square size and light/dark values
70
+ * **Sinusoidal grating**: Frequency response testing with independent X/Y spatial frequencies
71
+ * **Ring pattern**: Concentric circular rings for radial analysis and PSF testing
72
+ * **Siemens star**: Resolution testing with radial spokes and configurable radius
73
+ * **2D sinc**: Cardinal sine function for PSF modeling and diffraction simulation
74
+ * **2D ramp**: New ramp image generator
75
+ * **Poisson noise**: Generate images with Poisson noise distribution
76
+
77
+ **Signal/image creation from operations:**
78
+
79
+ * Create complex-valued signal/image from real and imaginary parts
80
+ * Create complex-valued signal/image from magnitude and phase (closes [Issue #216](https://github.com/DataLab-Platform/DataLab/issues/216))
81
+ * Extract phase (argument) information from complex signals or images
82
+
83
+ ### 🔬 Data Processing & Analysis ###
84
+
85
+ **Signal processing:**
86
+
87
+ * **Enhanced curve fitting**: Significantly improved parameter estimation for all curve types (Gaussian, Lorentzian, Voigt, exponential, sinusoidal, Planckian, asymmetric peaks, CDF)
88
+ * Smarter initial parameter guesses for robust convergence
89
+ * **Locked parameter support**: Lock individual parameters during optimization (requires PlotPy v2.8.0)
90
+ * **X-array compatibility checking**: Comprehensive validation for multi-signal operations with automatic interpolation options
91
+ * New configuration setting: Ask user or interpolate automatically
92
+ * Prevents unexpected results from incompatible signal arrays
93
+ * **Zero padding enhancements**: Support for prepending and appending zeros, default strategy now "Next power of 2"
94
+ * **Ideal frequency domain filter**: "Brick wall filter" for signals (closes [Issue #215](https://github.com/DataLab-Platform/DataLab/issues/215))
95
+ * **Bandwidth at -3dB**: Enhanced to support passband bandwidth
96
+ * **Pulse features extraction**: Comprehensive pulse analysis for step and square signals
97
+ * Automated shape recognition and polarity detection
98
+ * Measures amplitude, rise/fall time, FWHM, timing parameters, baseline ranges
99
+ * **Frequency domain filters**: Deconvolution and Gaussian filter (closes [Issue #189](https://github.com/DataLab-Platform/DataLab/issues/189), [Issue #205](https://github.com/DataLab-Platform/DataLab/issues/205))
100
+ * **Coordinate transformations**: Convert to Cartesian/polar coordinates
101
+ * **X-Y mode**: Simulate oscilloscope X-Y mode (plot one signal vs. another)
102
+ * **Find operations**: First abscissa at y=..., ordinate at x=..., full width at y=...
103
+ * **`1/x` operation**: Reciprocal operation with NaN handling for zero denominators
104
+
105
+ **Image processing:**
106
+
107
+ * **2D resampling**: Resample images to new coordinate grids with multiple interpolation methods (closes [Issue #208](https://github.com/DataLab-Platform/DataLab/issues/208))
108
+ * **Convolution**: 2D convolution operation
109
+ * **Erase area**: Erase image areas defined by ROI (closes [Issue #204](https://github.com/DataLab-Platform/DataLab/issues/204))
110
+ * **Horizontal/vertical projections**: Sum of pixels along axes (closes [Issue #209](https://github.com/DataLab-Platform/DataLab/issues/209))
111
+ * **Improved centroid computation**: More accurate in challenging cases (truncated/asymmetric images) (see [Issue #251](https://github.com/DataLab-Platform/DataLab/issues/251))
112
+ * **Flip diagonally**: New geometric transformation
113
+ * **`1/x` operation**: Reciprocal operation for images
114
+
115
+ **Cross-panel operations:**
116
+
117
+ * **Signals to image conversion**: Combine multiple signals into 2D images
118
+ * Two orientation modes: as rows (spectrograms) or columns (waterfall displays)
119
+ * Optional normalization (Z-score, Min-Max, Maximum)
120
+ * Typical use cases: heatmaps, spectrograms, multi-channel data visualization
121
+
122
+ **Common features:**
123
+
124
+ * **Standard deviation**: Calculate across multiple signals/images (closes [Issue #196](https://github.com/DataLab-Platform/DataLab/issues/196))
125
+ * **Add noise**: Add Gaussian, Poisson, or uniform noise (closes [Issue #201](https://github.com/DataLab-Platform/DataLab/issues/201))
126
+ * **Add metadata**: Add custom metadata with pattern support (`{title}`, `{index}`, etc.) and type conversion
127
+
128
+ ### 📐 ROI & Annotation Management ###
129
+
130
+ **ROI features:**
131
+
132
+ * **ROI clipboard operations**: Copy/paste ROIs between objects
133
+ * **ROI import/export**: Save/load ROIs as JSON files
134
+ * **Individual ROI removal**: Remove ROIs selectively via "Remove" submenu
135
+ * **ROI title editing**: Set titles during interactive creation and in confirmation dialog
136
+ * **Create ROI grid**: Generate grid of ROIs with configurable rows, columns, and spacing
137
+ * Import/export grid configurations
138
+ * Preview before creation
139
+ * **Inverse ROI logic**: Select area outside defined shapes (images only)
140
+ * **Coordinate-based ROI creation**: Manual input of coordinates for rectangular and circular ROIs
141
+ * **Multi-object ROI editing**: Edit ROIs on multiple objects simultaneously
142
+
143
+ **Annotation features:**
144
+
145
+ * **Annotation clipboard**: Copy/paste annotations between objects
146
+ * **Edit annotations**: Interactive editor dialog with PlotPy tools
147
+ * **Import/export annotations**: Save/load as .dlabann JSON files with versioning
148
+ * **Delete annotations**: Remove from single or multiple objects with confirmation
149
+ * **Annotations independent from ROI**: Can coexist on same object
150
+
151
+ **Detection with ROI creation:**
152
+
153
+ * All 7 detection algorithms now support automatic ROI creation:
154
+ * Peak detection, contour shape, blob detection (DOG/DOH/LOG/OpenCV), Hough circle
155
+ * **ROI geometry choice**: Rectangular or circular ROIs
156
+ * **2D peak detection**: Option to choose ROI geometry (closes related requirements)
157
+
158
+ ### 📊 Visualization & Display ###
159
+
160
+ **Performance & display limits:**
161
+
162
+ * **Configurable result display limits**: Prevent UI freezing with large result sets
163
+ * `max_shapes_to_draw` (default: 1,000), `max_cells_in_label` (default: 100), `max_cols_in_label` (default: 15)
164
+ * Settings documented with performance implications
165
+ * **Faster contour rendering**: Over 5x performance improvement for contour display
166
+ * **Signal rendering optimization**: Smart linewidth clamping for large datasets
167
+ * New setting: "Line width performance threshold" (default: 1,000 points)
168
+ * Prevents 10x slowdown from Qt raster engine limitation
169
+
170
+ **Result visualization:**
171
+
172
+ * **Merged result labels**: All analysis results consolidated in single read-only label
173
+ * Reduces visual clutter, auto-updates, horizontally divided results
174
+ * **Result label visibility control**: Toggle visibility via Properties panel checkbox
175
+ * Default visibility configurable in Settings
176
+ * **Results group organization**: Plot results automatically organized in dedicated "Results" group
177
+ * **Comprehensive result titles**: Include source object identifiers (e.g., "FWHM (s001, s002, s003)")
178
+ * **Individual result deletion**: Remove results selectively via Analysis menu
179
+ * **Customizable shape/marker styles**: Four new style configuration buttons in Settings
180
+ * Separate styles for signals and images
181
+ * Interactive editor with comprehensive options
182
+ * Persistent configuration with refresh on change
183
+
184
+ **Enhanced profile extraction:**
185
+
186
+ * Click directly on X/Y profile plots to switch extraction direction
187
+ * No need to open parameters dialog for direction changes
188
+ * Improves workflow efficiency (closes [Issue #156](https://github.com/DataLab-Platform/DataLab/issues/156))
189
+
190
+ **DateTime signal support:**
191
+
192
+ * Automatic datetime detection in CSV files
193
+ * **Datetime axis formatting**: Human-readable timestamps on X-axis
194
+ * **Configurable formats**: Separate formats for standard and sub-second units
195
+ * Supports various time units (seconds, milliseconds, microseconds, minutes, hours)
196
+ * Closes [Issue #258](https://github.com/DataLab-Platform/DataLab/issues/258)
197
+
198
+ **Settings:**
199
+
200
+ * **Autoscale margins**: Configurable margins (0-50%) for signal/image plots
201
+ * **Lock image aspect ratio**: Option for 1:1 aspect ratio (default: use physical pixel size) (closes [Issue #244](https://github.com/DataLab-Platform/DataLab/issues/244))
202
+ * **Show console on error**: Configurable behavior (default: off)
203
+
204
+ **Image extent parameters:**
205
+
206
+ * New "Extent" group box showing computed Xmin, Xmax, Ymin, Ymax
207
+ * Automatically calculated from origin, pixel spacing, and dimensions
208
+
209
+ ### 📁 Import/Export & File Handling ###
210
+
211
+ **New file format support:**
212
+
213
+ * **FT-Lab signals and images**: CEA binary formats (.sig, .ima) (closes [Issue #211](https://github.com/DataLab-Platform/DataLab/issues/211))
214
+ * **Coordinated text files**: Real and complex-valued images with error images (similar to Matris format)
215
+ * Automatic NaN handling, metadata with units and labels
216
+
217
+ **Enhanced HDF5 support:**
218
+
219
+ * **Custom file extensions**: Intelligent HDF5 detection by content (not just extension)
220
+ * Extension-based detection for dialogs, content-based for drag-and-drop
221
+ * "All files (*)" option in file dialogs
222
+ * **HDF5 Browser improvements**: Default collapsed tree view for better navigation
223
+ * **Workspace clearing options**: Configurable behavior with "Ignore" option (closes [Issue #146](https://github.com/DataLab-Platform/DataLab/issues/146))
224
+
225
+ **Text file improvements:**
226
+
227
+ * **CSV delimiter handling**: Better support for various whitespace separators
228
+ * **Locale decimal separator**: Support for comma as decimal separator (closes [Issue #124](https://github.com/DataLab-Platform/DataLab/issues/124))
229
+ * **Encoding error tolerance**: Ignore errors for files with special characters
230
+ * **Header detection**: Automatic detection and skipping of data headers
231
+
232
+ **Other I/O features:**
233
+
234
+ * **Save to directory**: New feature (closes [Issue #227](https://github.com/DataLab-Platform/DataLab/issues/227))
235
+ * **Open from directory**: Recursively open multiple files with folder drag-and-drop support
236
+ * **File ordering**: Consistent alphabetical sorting across platforms
237
+
238
+ ### 🔧 Advanced Features ###
239
+
240
+ **Non-uniform coordinate support:**
241
+
242
+ * Images now support non-uniform pixel spacing
243
+ * "Set uniform coordinates" feature for conversion
244
+ * **Polynomial calibration**: Up to cubic order for X, Y, Z axes
245
+ * Creates non-uniform coordinates for X/Y, transforms values for Z
246
+ * HDF5 and text file formats preserve non-uniform information
247
+
248
+ **Group management:**
249
+
250
+ * **Panel-specific short IDs**: `gs` prefix for signals, `gi` prefix for images
251
+ * Avoids ambiguity in cross-panel operations
252
+ * Fixed group numbering for new groups
253
+
254
+ **Configuration:**
255
+
256
+ * **Version-specific folders**: Major version coexistence (`.DataLab_v1`, `.DataLab_v2`, etc.)
257
+ * Allows v0.x and v1.x to run simultaneously
258
+
259
+ **Public API & Remote Control:**
260
+
261
+ * Enhanced metadata handling with function name context
262
+ * `add_group`, `add_signal`, `add_image` methods with `group_id` and `set_current` arguments
263
+ * `get_object_uuids` with optional `group` filter
264
+ * Multiple API improvements for better programmability
265
+
266
+ **Processing infrastructure (for developers):**
267
+
268
+ * New `@computation_function` decorator for computation functions
269
+ * Renamed computation functions (removed "compute_" prefix)
270
+ * Refactored `BaseProcessor` methods with clear naming:
271
+ * `compute_1_to_1`, `compute_1_to_0`, `compute_1_to_n`, `compute_n_to_1`, `compute_2_to_1`
272
+ * **No backward compatibility maintained** for these internal changes (closes [Issue #180](https://github.com/DataLab-Platform/DataLab/issues/180))
273
+
274
+ ### 🛠️ Bug Fixes ###
275
+
276
+ **Performance fixes:**
277
+
278
+ * **Switching between images with many results**: Dramatic improvement (66s → <1ms) when navigating images with hundreds of shapes
279
+ * **Plot cleanup robustness**: Fixed errors when removing analysis results
280
+ * **Critical fix**: Result labels now properly excluded from cleanup to prevent disappearance
281
+
282
+ **Cross-panel & group handling:**
283
+
284
+ * **Cross-panel computation groups**: Fixed inconsistent group organization for image-to-signal operations
285
+ * **File import ordering**: Consistent alphabetical sorting across all platforms
286
+
287
+ **Action state updates:**
288
+
289
+ * Fixed action enable states not updating after annotation/metadata operations
290
+ * UI now immediately reflects current object state
291
+
292
+ **Result management:**
293
+
294
+ * Fixed result label deletion to permanently remove associated metadata
295
+ * Fixed duplicate results parameter metadata cleanup
296
+ * **Result coordinate fixes**: Corrected shifted results on images with ROIs and shifted origin ([Issue #106](https://github.com/DataLab-Platform/DataLab/issues/106))
297
+ * **Profile extraction indices**: Fixed wrong indices with ROI ([Issue #107](https://github.com/DataLab-Platform/DataLab/issues/107))
298
+
299
+ **ROI-related fixes:**
300
+
301
+ * Fixed multi-image ROI extraction not saving ROI in first object ([Issue #120](https://github.com/DataLab-Platform/DataLab/issues/120))
302
+ * Fixed AttributeError when extracting multiple ROIs on single image with multiple selections ([Issue #121](https://github.com/DataLab-Platform/DataLab/issues/121))
303
+ * Fixed mask refresh issues ([Issue #122](https://github.com/DataLab-Platform/DataLab/issues/122), [Issue #123](https://github.com/DataLab-Platform/DataLab/issues/123))
304
+ * Fixed ROI editor on multiple signals/images ([Issue #135](https://github.com/DataLab-Platform/DataLab/issues/135))
305
+ * Fixed ROI clearing affecting only first image ([Issue #160](https://github.com/DataLab-Platform/DataLab/issues/160))
306
+ * Fixed ROI editor showing first instead of last image ([Issue #158](https://github.com/DataLab-Platform/DataLab/issues/158))
307
+
308
+ **Text Import Wizard:**
309
+
310
+ * Fixed preservation of user-defined titles and units ([Issue #239](https://github.com/DataLab-Platform/DataLab/issues/239))
311
+ * Fixed preservation of data types ([Issue #240](https://github.com/DataLab-Platform/DataLab/issues/240))
312
+ * Fixed comma decimal separator support ([Issue #186](https://github.com/DataLab-Platform/DataLab/issues/186))
313
+ * Fixed trailing delimiter issue ([Issue #238](https://github.com/DataLab-Platform/DataLab/issues/238))
314
+
315
+ **Curve fitting & analysis:**
316
+
317
+ * Improved initial frequency estimate for sinusoidal fitting
318
+ * Fixed parameter display formatting for extreme values
319
+ * Fixed FWHM computation exception handling
320
+ * Fixed curve marker style changing unexpectedly ([Issue #184](https://github.com/DataLab-Platform/DataLab/issues/184))
321
+ * Fixed hard crash on zero signal with curve stats tool ([Issue #233](https://github.com/DataLab-Platform/DataLab/issues/233))
322
+
323
+ **Image handling:**
324
+
325
+ * Fixed aspect ratio not updating when switching images
326
+ * Fixed shape unpacking issues ([Issue #246](https://github.com/DataLab-Platform/DataLab/issues/246), [Issue #247](https://github.com/DataLab-Platform/DataLab/issues/247))
327
+ * Fixed colormaps not stored in metadata (PlotPy v2.6.3+ issue) ([Issue #138](https://github.com/DataLab-Platform/DataLab/issues/138))
328
+ * Fixed amplitude calculation for non-integer data types
329
+
330
+ **Signal processing:**
331
+
332
+ * Fixed ifft1d x-axis computation when shift=False ([Issue #241](https://github.com/DataLab-Platform/DataLab/issues/241))
333
+ * Fixed moving median crash on Linux with mirror mode ([Issue #117](https://github.com/DataLab-Platform/DataLab/issues/117)) - SciPy bug
334
+ * Fixed magnitude spectrum with logarithmic scale ([Issue #169](https://github.com/DataLab-Platform/DataLab/issues/169))
335
+ * Fixed pairwise operation mode for asymmetric functions ([Issue #157](https://github.com/DataLab-Platform/DataLab/issues/157))
336
+
337
+ **Analysis & results:**
338
+
339
+ * Fixed NaN value handling in statistics and normalization ([Issue #141](https://github.com/DataLab-Platform/DataLab/issues/141), [Issue #152](https://github.com/DataLab-Platform/DataLab/issues/152), [Issue #153](https://github.com/DataLab-Platform/DataLab/issues/153))
340
+ * Fixed analysis results kept from original after processing ([Issue #136](https://github.com/DataLab-Platform/DataLab/issues/136))
341
+ * Fixed duplicate results with no ROI defined
342
+ * Fixed "One curve per result title" mode ignoring ROIs ([Issue #132](https://github.com/DataLab-Platform/DataLab/issues/132))
343
+ * Added result validation for array-like results
344
+
345
+ **Plot & visualization:**
346
+
347
+ * Fixed profile plots not refreshing when moving/resizing ([Issue #172](https://github.com/DataLab-Platform/DataLab/issues/172)) - PlotPy fix
348
+ * Fixed empty average profile display outside image area ([Issue #168](https://github.com/DataLab-Platform/DataLab/issues/168)) - PlotPy fix
349
+ * Fixed average profile extraction ValueError with oversized rectangle ([Issue #144](https://github.com/DataLab-Platform/DataLab/issues/144))
350
+ * Disabled generic "Axes" tab in parameter dialogs
351
+
352
+ **Other fixes:**
353
+
354
+ * Fixed proxy `add_object` method not supporting metadata ([Issue #111](https://github.com/DataLab-Platform/DataLab/issues/111))
355
+ * Fixed RemoteClient method calls without optional arguments ([Issue #113](https://github.com/DataLab-Platform/DataLab/issues/113))
356
+ * Fixed KeyError when removing group after opening HDF5 ([Issue #116](https://github.com/DataLab-Platform/DataLab/issues/116))
357
+ * Fixed KeyError in "View in new window" with multiple images after HDF5 open ([Issue #159](https://github.com/DataLab-Platform/DataLab/issues/159))
358
+ * Fixed long object titles display ([Issue #128](https://github.com/DataLab-Platform/DataLab/issues/128))
359
+ * Fixed file name titles showing relative paths ([Issue #165](https://github.com/DataLab-Platform/DataLab/issues/165))
360
+ * Fixed unexpected group names in "Open from directory" ([Issue #177](https://github.com/DataLab-Platform/DataLab/issues/177))
361
+ * Fixed one group per folder expectation ([Issue #163](https://github.com/DataLab-Platform/DataLab/issues/163))
362
+ * Fixed unsupported files in recursive loading ([Issue #164](https://github.com/DataLab-Platform/DataLab/issues/164))
363
+
364
+ **Removed features:**
365
+
366
+ * Removed "Use reference image LUT range" setting (confusing behavior)
367
+ * **Migration**: Use multi-selection property editing instead
368
+
369
+ ### 🔒 Security Fixes ###
370
+
371
+ * **CVE-2023-4863**: Fixed vulnerability in opencv-python-headless
372
+ * Updated minimum requirement from 4.5.4.60 to 4.8.1.78
373
+ * See [DataLab security advisory](https://github.com/DataLab-Platform/DataLab/security/dependabot/1)
374
+
375
+ ### ℹ️ Other Changes ###
376
+
377
+ * Bumped minimum `plotpy` requirement to V2.8
378
+ * Bumped minimum `guidata` requirement to V3.13
379
+ * Using new `guidata` translation utility based on `babel`
380
+ * Python 3.13 now supported (via scikit-image V0.25)
381
+
382
+ ## DataLab Version 0.20.0 ##
383
+
384
+ 💥 New features and enhancements:
385
+
386
+ * ANDOR SIF Images:
387
+ * Added support for background images in ANDOR SIF files
388
+ * This closes [Issue #178](https://github.com/DataLab-Platform/DataLab/issues/178) - Add support for ANDOR SIF files with background image
389
+ * Array editor (results, signal and image data, ...):
390
+ * New "Copy all" button in the array editor dialog box, to copy all the data in the clipboard, including row and column headers
391
+ * New "Export" button in the array editor dialog box, to export the data in a CSV file, including row and column headers
392
+ * New "Paste" button in the array editor dialog box, to paste the data from the clipboard into the array editor (this feature is not available for read-only data, such as analysis results)
393
+ * The features above require guidata v3.9.0 or later
394
+ * This closes [Issue #174](https://github.com/DataLab-Platform/DataLab/issues/174), [Issue #175](https://github.com/DataLab-Platform/DataLab/issues/175) and [Issue #176](https://github.com/DataLab-Platform/DataLab/issues/176)
395
+ * Fourier analysis features ("Processing" menu):
396
+ * New "Zero padding" feature
397
+ * Implementation for signals:
398
+ * Choose a zero padding strategy (Next power of 2, Double the length, Triple the length, Custom length)
399
+ * Or manually set the zero padding length (if "Custom length" is selected)
400
+ * Implementation for images:
401
+ * Choose a zero padding strategy (Next power of 2, Next multiple of 64, Custom length)
402
+ * Or manually set the zero padding row and column lengths (if "Custom length" is selected)
403
+ * Set the position of the zero padding (bottom-right, centered)
404
+ * This closes [Issue #170](https://github.com/DataLab-Platform/DataLab/issues/170) - Fourier analysis: add zero padding feature for signals and images
405
+ * Region of Interest (ROI) editor:
406
+ * This concerns the "Edit Regions of Interest" feature for both signals and images
407
+ * New behavior:
408
+ * Signals: the range ROI selection tool is now active by default, and the user can select right away the range of the signal to be used as a ROI
409
+ * Images: the rectangular ROI selection tool is now active by default, and the user can select right away the rectangular ROI to be used as a ROI
410
+ * This closes [Issue #154](https://github.com/DataLab-Platform/DataLab/issues/154) - ROI editor: activate ROI selection tool by default, so that the user can select right away the area to be used as a ROI
411
+ * Added the "Select tool" to editor's toolbar, to allow the user to switch between the "Select" and "Draw" tools easily without having to use the plot toolbar on the top of the window
412
+ * Signal processing features ("Processing" menu):
413
+ * New "X-Y mode" feature: this feature simulates the behavior of the X-Y mode of an oscilloscope, i.e. it allows to plot one signal as a function of another signal (e.g. X as a function of Y)
414
+ * New abscissa and ordinate find features:
415
+ * "First abscissa at y=..." feature: this feature allows to find the first abscissa value of a signal at a given y value (e.g. the abscissa value of a signal at y=0)
416
+ * "Ordinate at x=..." feature: this feature allows to find the ordinate value of a signal at a given x value (e.g. the ordinate value of a signal at x=0)
417
+ * Each feature has its own dialog box, which allows to set the y or x value to be used for the search with a slider or a text box
418
+ * This closes [Issue #125](https://github.com/DataLab-Platform/DataLab/issues/125) and [Issue #126](https://github.com/DataLab-Platform/DataLab/issues/126)
419
+ * New full width at given y feature:
420
+ * The "Full width at y=..." feature allows to find the full width of a signal at a given y value (e.g. the full width of a signal at y=0)
421
+ * A specific dialog box allows to set the y value to be used for the search with a slider or a text box
422
+ * This closes [Issue #127](https://github.com/DataLab-Platform/DataLab/issues/127)
423
+ * Public API (local or remote):
424
+ * Add `group_id` and `set_current` arguments to `add_signal`, `add_image` and `add_object` methods:
425
+ * This concerns the `LocalProxy`, `AbstractDLControl`, `RemoteClient`, `RemoteServer` and `DLMainWindow` classes
426
+ * `group_id` argument allows to specify the group ID where the signal or image should be added (if not specified, the signal or image is added to the current group)
427
+ * `set_current` argument allows to specify if the signal or image should be set as current after being added (default is `True`)
428
+ * This closes [Issue #151](https://github.com/DataLab-Platform/DataLab/issues/151) - Public API: add a keyword `group_id` to `add_signal` and `add_image`
429
+
430
+ ## DataLab Version 0.19.2 ##
431
+
432
+ 🛠️ Bug fixes:
433
+
434
+ * Fixed [Issue #172](https://github.com/DataLab-Platform/DataLab/issues/172) - Image profiles: when moving/resizing image, profile plots are not refreshed (fixed in PlotPy v2.7.4)
435
+ * Fixed [Issue #173](https://github.com/DataLab-Platform/DataLab/issues/173) - Phase spectrum: add unit (degree) and function reference (`numpy.angle`) to the documentation
436
+ * Fixed [Issue #177](https://github.com/DataLab-Platform/DataLab/issues/177) - "Open from directory" feature: unexpected group name (a group named "." is created instead of the root folder name)
437
+ * Fixed [Issue #169](https://github.com/DataLab-Platform/DataLab/issues/169) - Signal / Fourier analysis: magnitude spectrum feature does not work as expected with logarithmic scale enabled
438
+ * Fixed [Issue #168](https://github.com/DataLab-Platform/DataLab/issues/168) - Average profile visualization: empty profile is displayed when the target rectangular area is outside the image area (this has been fixed upstream, in PlotPy v2.7.4, and so requires the latest version of PlotPy)
439
+
440
+ ## DataLab Version 0.19.1 ##
441
+
442
+ 🛠️ Bug fixes:
443
+
444
+ * Pairwise operation mode:
445
+ * Fixed an unexpected behavior when using the pairwise operation mode with functions that take a single second operand (e.g. for images: difference, division, arithmetic operations, and flatfield correction)
446
+ * If only one set of operands was selected in a single group, a warning message was displayed "In pairwise mode, you need to select objects in at least two groups.", which is correct for functions that are symmetric (e.g. addition, multiplication, etc.), but not for functions that are not symmetric (e.g. difference, division, etc.).
447
+ * This is now fixed: the warning message is only displayed for functions that are symmetric (e.g. addition, multiplication, etc.).
448
+ * This closes [Issue #157](https://github.com/DataLab-Platform/DataLab/issues/157) - Pairwise operation mode: unexpected behavior with functions that take a single second operand
449
+ * Fixed [Issue #152](https://github.com/DataLab-Platform/DataLab/issues/152) - Ignore `nan` values for image normalization, flatfield correction, offset correction, and centroid computation
450
+ * Fixed [Issue #153](https://github.com/DataLab-Platform/DataLab/issues/153) - Ignore `nan` values for signal normalization and statistics computations (both analysis result and interactive tool)
451
+ * Fixed [Issue #158](https://github.com/DataLab-Platform/DataLab/issues/158) - When editing ROI of a list of images, the first image of the selection is shown (instead of the last as in the image panel)
452
+ * Fixed [Issue #159](https://github.com/DataLab-Platform/DataLab/issues/159) - When selecting multiple images just after opening an HDF5 file, the "View in a new window" feature does not work (`KeyError` exception)
453
+ * Fixed [Issue #160](https://github.com/DataLab-Platform/DataLab/issues/160) - When selecting multiple images and clearing ROI in ROI editor, only the first image is affected
454
+ * Fixed [Issue #161](https://github.com/DataLab-Platform/DataLab/issues/161) - Refresh image items only if necessary (when editing ROI, pasting/deleting metadata)
455
+ * Fixed [Issue #162](https://github.com/DataLab-Platform/DataLab/issues/162) - View in a new window: when displaying multiple images, the item list panel should be visible
456
+ * Fixed [Issue #163](https://github.com/DataLab-Platform/DataLab/issues/163) - Open from directory: expected one group per folder when loading multiple files
457
+ * Fixed [Issue #164](https://github.com/DataLab-Platform/DataLab/issues/164) - Open from directory: unsupported files should be ignored when loading files recursively, to avoid warning popup dialog boxes
458
+ * Fixed [Issue #165](https://github.com/DataLab-Platform/DataLab/issues/165) - When opening a file, the default signal/image title must be set to the file name, instead of the relative path to the file name
459
+
460
+ ## DataLab Version 0.19.0 ##
461
+
462
+ 💥 New features and enhancements:
463
+
464
+ * Image operation features ("Operations" menu):
465
+ * Renamed "Rotation" submenu to "Flip or rotation"
466
+ * New "Flip diagonally" feature
467
+ * Signal processing features ("Processing" menu):
468
+ * New "Convert to Cartesian coordinates" feature
469
+ * New "Convert to polar coordinates" feature
470
+ * Signal analysis features ("Analysis" menu):
471
+ * Renamed "X values at min/max" to "Abscissa of the minimum and maximum"
472
+ * New "Abscissa at y=..." feature
473
+ * New "Open from directory" feature:
474
+ * This feature allows to open multiple files from a directory at once, recursively (only the files with the supported extensions by the current panel are opened)
475
+ * Add "Open from directory" action to the "File" menu for both Signal and Image panels
476
+ * Add support for folders when dropping files in the Signal and Image panels
477
+ * Add `1/x` operation to the "Operations" menu for both Signal and Image panels:
478
+ * This feature relies on the `numpy.reciprocal` function, and handles the case where the denominator is zero by catching warnings and replacing the `np.inf` values with `np.nan` values
479
+ * Add `compute_inverse` method for image and signal processors
480
+ * This closes [Issue #143](https://github.com/DataLab-Platform/DataLab/issues/143) - New feature: `1/x` for signals and images
481
+ * Public API (local or remote):
482
+ * Add `add_group` method with `title` and `select` arguments to create a new group in a data panel (e.g. Signal or Image panel) and eventually select it after creation:
483
+ * Method was added to the following classes: `AbstractDLControl`, `BaseDataPanel` and `RemoteClient`
484
+ * This closes the following issues:
485
+ * [Issue #131](https://github.com/DataLab-Platform/DataLab/issues/131) - `BaseDataPanel.add_group`: add `select` argument
486
+ * [Issue #47](https://github.com/DataLab-Platform/DataLab/issues/47) - Remote proxy / Public API: add `add_group` method
487
+ * `AbstractDLControl.get_object_uuids`: add an optional `group` argument (group ID, title or number) to eventually filter the objects by group (this closes [Issue #130](https://github.com/DataLab-Platform/DataLab/issues/130))
488
+ * When opening an HDF5 file, the confirmation dialog box asking if current workspace should be cleared has a new possible answer "Ignore":
489
+ * Choosing "Ignore" will prevent the confirmation dialog box from being displayed again, and will choose the current setting (i.e. clear or not the workspace) for all subsequent file openings
490
+ * Added a new "Clear workspace before loading HDF5 file" option in the "Settings" dialog box, to allow the user to change the current setting (i.e. clear or not the workspace) for all subsequent file openings
491
+ * Added a new "Ask before clearing workspace" option in the "Settings" dialog box, to allow the user to disable or re-enable the confirmation dialog box asking if current workspace should be cleared when opening an HDF5 file
492
+ * This closes [Issue #146](https://github.com/DataLab-Platform/DataLab/issues/146) - Ask before clearing workspace when opening HDF5 file: add "Ignore" option to prevent dialog from being displayed again
493
+ * Object and group title renaming:
494
+ * Removed "Rename group" feature from the "Edit" menu and context menu
495
+ * Added "Rename object" feature to the "Edit" menu and context menu, with F2 shortcut, to rename the title of the selected object or group
496
+ * This closes [Issue #148](https://github.com/DataLab-Platform/DataLab/issues/148) - Rename signal/image/group title by pressing F2
497
+ * Region of Interest editor:
498
+ * Regrouped the graphical actions (new rectangular ROI, new circular ROI, new polygonal ROI) in a single menu "Graphical ROI"
499
+ * Added new "Coordinate-based ROI" menu to create a ROI using manual input of the coordinates:
500
+ * For signals, the ROI is defined by the start and end coordinates
501
+ * For images:
502
+ * The rectangular ROI is defined by the top-left and bottom-right coordinates
503
+ * The circular ROI is defined by the center and radius coordinates
504
+ * The polygonal ROI is not supported yet
505
+ * This closes [Issue #145](https://github.com/DataLab-Platform/DataLab/issues/145) - ROI editor: add manual input of the coordinates
506
+
507
+ 🛠️ Bug fixes:
508
+
509
+ * Fixed [Issue #141](https://github.com/DataLab-Platform/DataLab/issues/141) - Image analysis: mask `nan` values when computing statistics, for example
510
+ * Fixed [Issue #144](https://github.com/DataLab-Platform/DataLab/issues/144) - Average profile extraction: `ValueError` when selection rectangle is larger than the image
511
+
512
+ ## DataLab Version 0.18.2 ##
513
+
514
+ ℹ️ General information:
515
+
516
+ * Python 3.13 is now supported, since the availability of the scikit-image V0.25 (see [Issue #104](https://github.com/DataLab-Platform/DataLab/issues/104) - Python 3.13: `KeyError: 'area_bbox'`)
517
+
518
+ 💥 Enhancements:
519
+
520
+ * Added new "Keep results after computation" option in "Processing" section:
521
+ * Before this change, when applying a processing feature (e.g. a filter, a threshold, etc.) on a signal or an image, the analysis results were removed from the object
522
+ * This new option allows to keep the analysis results after applying a processing feature on a signal or an image. Even if the analysis results are not updated, they might be relevant in some use cases (e.g. when using the 2D peak detection feature on an image, and then applying a filter on the image, or summing two images, etc.)
523
+
524
+ 🛠️ Bug fixes:
525
+
526
+ * Fixed [Issue #138](https://github.com/DataLab-Platform/DataLab/issues/138) - Image colormaps were no longer stored in metadata (and serialized in HDF5 files) since PlotPy v2.6.3 (this commit, specifically: [PlotPyStack/PlotPy@a37af8a](https://github.com/PlotPyStack/PlotPy/commit/a37af8ae8392e5e3655e5c34b67a7cd1544ea845))
527
+ * Fixed [Issue #137](https://github.com/DataLab-Platform/DataLab/issues/137) - Arithmetic operations and signal interpolation: dialog box with parameters is not displayed
528
+ * Fixed [Issue #136](https://github.com/DataLab-Platform/DataLab/issues/136) - When processing a signal or an image, the analysis result is kept from original object
529
+ * Before this fix, when processing a signal or an image (e.g. when applying a filter, a threshold, etc.), the analysis result was kept from the original object, and was not updated with the new data. Thus the analysis result was not meaningful anymore, and was misleading the user.
530
+ * This is now fixed: the analysis result is now removed when processing a signal or an image. However it is not recalculated automatically, because there is no way to know which analysis result should be recalculated (e.g. if the user has applied a filter, should the FWHM be recalculated?) - besides, the current implementation of the analysis features does not allow to recalculate the analysis results automatically when the data is modified. The user has to recalculate the analysis results manually if needed.
531
+ * Fixed [Issue #132](https://github.com/DataLab-Platform/DataLab/issues/132) - Plot analysis results: "One curve per result title" mode ignores ROIs
532
+ * Before this fix, the "One curve per result title" mode was ignoring ROIs, and was plotting the selected result for all objects (signals or images) without taking into account the ROI defined on the objects
533
+ * This is now fixed: the "One curve per result title" mode now takes into account the ROI defined on the objects, and plots the selected result for each object (signal or image) and for each ROI defined on the object
534
+ * Fixed [Issue #128](https://github.com/DataLab-Platform/DataLab/issues/128) - Support long object titles in Signal and Image panels
535
+ * Fixed [Issue #133](https://github.com/DataLab-Platform/DataLab/issues/133) - Remove specific analysis results from metadata clipboard during copy operation
536
+ * Fixed [Issue #135](https://github.com/DataLab-Platform/DataLab/issues/135) - Allow to edit ROI on multiple signals or images at once
537
+ * Before this fix, the ROI editor was disabled when multiple signals or images were selected
538
+ * This is now fixed: the ROI editor is now enabled when multiple signals or images are selected, and the ROI is applied to all selected signals or images (only the ROI of the first selected signal or image is taken into account)
539
+ * This new behavior is consistent with the ROI extraction feature, which allows to extract the ROI on multiple signals or images at once, based on the ROI defined on the first selected signal or image
540
+ * Image ROI features:
541
+ * Fixed [Issue #120](https://github.com/DataLab-Platform/DataLab/issues/120) - ROI extraction on multiple images: defined ROI should not be saved in the first selected object. The design choice is to save the defined ROI neither in the first nor in any of the selected objects: the ROI is only used for the extraction, and is not saved in any object
542
+ * Fixed [Issue #121](https://github.com/DataLab-Platform/DataLab/issues/121) - `AttributeError` when extracting multiple ROIs on a single image, if more than one image is selected
543
+ * Fixed [Issue #122](https://github.com/DataLab-Platform/DataLab/issues/122) - Image masks are not refreshed when removing metadata except for the active image
544
+ * Fixed [Issue #123](https://github.com/DataLab-Platform/DataLab/issues/123) - Image masks are not refreshed when pasting metadata on multiple images, except for the last image
545
+ * Text and CSV files:
546
+ * Enhance text file reading by detecting data headers (using a list of typical headers from scientific instruments) and by allowing to skip the header when reading the file
547
+ * Ignore encoding errors when reading files in both open feature and import wizard, hence allowing to read files with special characters without raising an exception
548
+ * Fixed [Issue #124](https://github.com/DataLab-Platform/DataLab/issues/124) - Text files: support locale decimal separator (different than `.`)
549
+ * Signal analysis features: fixed duplicate results when no ROI is defined
550
+ * Fixed [Issue #113](https://github.com/DataLab-Platform/DataLab/issues/113) - Call to `RemoteClient.open_h5_files` (and `import_h5_file`) fails without passing the optional arguments
551
+ * Fixed [Issue #116](https://github.com/DataLab-Platform/DataLab/issues/116) - `KeyError` exception when trying to remove a group after opening an HDF5 file
552
+
553
+ ## DataLab Version 0.18.1 ##
554
+
555
+ 💥 Enhancements:
556
+
557
+ * FWHM computation now raises an exception when less than two points are found with zero-crossing method
558
+ * Improved result validation for array-like results by checking the data type of the result
559
+
560
+ 🛠️ Bug fixes:
561
+
562
+ * Fixed [Issue #106](https://github.com/DataLab-Platform/DataLab/issues/106) - Analysis: coordinate shifted results on images with ROIs and shifted origin
563
+ * Fixed [Issue #107](https://github.com/DataLab-Platform/DataLab/issues/107) - Wrong indices when extracting a profile from an image with a ROI
564
+ * Fixed [Issue #111](https://github.com/DataLab-Platform/DataLab/issues/111) - Proxy `add_object` method does not support signal/image metadata (e.g. ROI)
565
+ * Test data plugin / "Create 2D noisy gauss image": fixed amplitude calculation in `datalab.tests.data.create_2d_random` for non-integer data types
566
+
567
+ 📚 Documentation:
568
+
569
+ * Fixed path separators in plugin directory documentation
570
+ * Corrected left and right area descriptions in workspace documentation
571
+ * Updated Google style link in contributing guidelines
572
+ * Fixed various French translations in the documentation
573
+
574
+ ## DataLab Version 0.18.0 ##
575
+
576
+ ℹ️ General information:
577
+
578
+ * PlotPy v2.7 is required for this release.
579
+ * Dropped support for Python 3.8.
580
+ * Python 3.13 is not supported yet, due to the fact that some dependencies are not compatible with this version.
581
+
582
+ 💥 New features and enhancements:
583
+
584
+ * New operation mode feature:
585
+ * Added "Operation mode" feature to the "Processing" tab in the "Settings" dialog box
586
+ * This feature allows to choose between "single" and "pairwise" operation modes for all basic operations (addition, subtraction, multiplication, division, etc.):
587
+ * "Single" mode: single operand mode (default mode: the operation is done on each object independently)
588
+ * "Pairwise" mode: pairwise operand mode (the operation is done on each pair of objects)
589
+ * This applies to both signals and images, and to computations taking *N* inputs
590
+ * Computations taking *N* inputs are the ones where:
591
+ * *N(>=2)* objects in give *N* objects out
592
+ * *N(>=1)* object(s) + 1 object in give N objects out
593
+
594
+ * New ROI (Region Of Interest) features:
595
+ * New polygonal ROI feature
596
+ * Complete redesign of the ROI editor user interfaces, improving ergonomics and consistency with the rest of the application
597
+ * Major internal refactoring of the ROI system to make it more robust (more tests) and easier to maintain
598
+
599
+ * Implemented [Issue #102](https://github.com/DataLab-Platform/DataLab/issues/102) - Launch DataLab using `datalab` instead of `datalab`. Note that the `datalab` command is still available for backward compatibility.
600
+
601
+ * Implemented [Issue #101](https://github.com/DataLab-Platform/DataLab/issues/101) - Configuration: set default image interpolation to anti-aliasing (`5` instead of `0` for nearest). This change is motivated by the fact that a performance improvement was made in PlotPy v2.7 on Windows, which allows to use anti-aliasing interpolation by default without a significant performance impact.
602
+
603
+ * Implemented [Issue #100](https://github.com/DataLab-Platform/DataLab/issues/100) - Use the same installer and executable on Windows 7 SP1, 8, 10, 11. Before this change, a specific installer was required for Windows 7 SP1, due to the fact that Python 3.9 and later versions are not supported on this platform. A workaround was implemented to make DataLab work on Windows 7 SP1 with Python 3.9.
604
+
605
+ 🛠️ Bug fixes:
606
+
607
+ * Fixed [Issue #103](https://github.com/DataLab-Platform/DataLab/issues/103) - `proxy.add_annotations_from_items`: circle shape color seems to be ignored.
608
+
609
+ ## DataLab Version 0.17.1 ##
610
+
611
+ ℹ️ PlotPy v2.6.2 is required for this release.
612
+
613
+ 💥 New features and enhancements:
614
+
615
+ * Image View:
616
+ * Before this release, when selecting a high number of images (e.g. when selecting a group of images), the application was very slow because all the images were displayed in the image view, even if they were all superimposed on the same image
617
+ * The workaround was to enable the "Show first only" option
618
+ * Now, to improve performance, if multiple images are selected, only the last image of the selection is displayed in the image view if this last image has no transparency and if the other images are completely covered by this last image
619
+ * Clarification: action "Show first only" was renamed to "Show first object only", and a new icon was added to the action
620
+ * API: added `width` and `height` properties to `ImageObj` class (returns the width and height of the image in physical units)
621
+ * Windows launcher "start.pyw": writing a log file "datalab_error.log" when an exception occurs at startup
622
+
623
+ 🛠️ Bug fixes:
624
+
625
+ * Changing the color theme now correctly updates all DataLab's user interface components without the need to restart the application
626
+
627
+ ℹ️ Other changes:
628
+
629
+ * OpenCV is now an optional dependency:
630
+ * This change is motivated by the fact that the OpenCV conda package is not maintained on Windows (at least), which leads to an error when installing DataLab with conda
631
+ * When OpenCV is not installed, only the "OpenCV blob detection" feature won't work, and a warning message will be displayed when trying to use this feature
632
+
633
+ ## DataLab Version 0.17.0 ##
634
+
635
+ ℹ️ PlotPy v2.6 is required for this release.
636
+
637
+ 💥 New features and enhancements:
638
+
639
+ * Menu "Computing" was renamed to "Analysis" for both Signal and Image panels, to better reflect the nature of the features in this menu
640
+ * Regions Of Interest (ROIs) are now taken into account everywhere in the application where it makes sense, and not only for the old "Computing" menu (now "Analysis") features. This closes [Issue #93](https://github.com/DataLab-Platform/DataLab/issues/93). If a signal or an image has an ROI defined:
641
+ * Operations are done on the ROI only (except if the operation changes the data shape, or the pixel size for images)
642
+ * Processing features are done on the ROI only (if the destination object data type is compatible with the source object data type, which excludes thresholding, for instance)
643
+ * Analysis features are done on the ROI only, like before
644
+ * As a consequence of previous point, and for clarity:
645
+ * The "Edit Regions of interest" and "Remove all Regions of interest" features have been moved from the old "Computing" (now "Analysis") menu to the "Edit" menu where all metadata-related features are located
646
+ * The "Edit Regions of interest" action has been added to both Signal and Image View vertical toolbars (in second position, after the "View in a new window" action)
647
+ * Following the bug fix on image data type conversion issues with basic operations, a new "Arithmetic operation" feature has been added to the "Operations" menu for both Signal and Image panels. This feature allows to perform linear operations on signals and images, with the following operations:
648
+ * Addition: ``obj3 = (obj1 + obj2) * a + b``
649
+ * Subtraction: ``obj3 = (obj1 - obj2) * a + b``
650
+ * Multiplication: ``obj3 = (obj1 * obj2) * a + b``
651
+ * Division: ``obj3 = (obj1 / obj2) * a + b``
652
+ * Improved "View in a new window" and "ROI editor" dialog boxes size management: default size won't be larger than DataLab's main window size
653
+ * ROI editor:
654
+ * Added toolbars for both Signal and Image ROI editors, to allow to zoom in and out, and to reset the zoom level easily
655
+ * Rearranged the buttons in the ROI editor dialog box for better ergonomics and consistency with the Annotations editor ("View in a new window" dialog box)
656
+ * Application color theme:
657
+ * Added support for color theme (auto, light, dark) in the "Settings" dialog box
658
+ * The color theme is applied without restarting the application
659
+
660
+ 🛠️ Bug fixes:
661
+
662
+ * Intensity profile / Segment profile extraction:
663
+ * When extracting a profile on an image with a ROI defined, the associated PlotPy feature show a warning message ('UserWarning: Warning: converting a masked element to nan.') but the profile is correctly extracted and displayed, with NaN values where the ROI is not defined.
664
+ * NaN values are now removed from the profile before plotting it
665
+ * Simple processing features with a one-to-on mapping with a Python function (e.g. `numpy.absolute`, `numpy.log10`, etc.) and without parameters: fix result object title which was systematically ending with "|" (the character that usually precedes the list of parameters)
666
+ * Butterworth filter: fix cutoff frequency ratio default value and valid range
667
+ * Fix actions refresh issue in Image View vertical toolbar:
668
+ * When starting DataLab with the Signal Panel active, switching to the Image View was showing "View in a new window" or "Edit Regions of interest" actions enabled in the vertical toolbar, even if no image was displayed in the Image View
669
+ * The Image View vertical toolbar is now correctly updated at startup
670
+ * View in a new window: cross section tools (intensity profiles) stayed disabled unless the user selected an image through the item list - this is now fixed
671
+ * Image View: "Show contrast panel" toolbar button was not enabled at startup, and was only enabled when at least one image was displayed in the Image View - it is now always enabled, as expected
672
+ * Image data type conversion:
673
+ * Previously, the data type conversion feature was common to signal and image processing features, i.e. a simple conversion of the data type using NumPy's `astype` method
674
+ * This was not sufficient for image processing features, in particular for integer images, because even if the result was correct from a numerical point of view, underflow or overflow could be legitimately seen as a bug from a mathematical point of view
675
+ * The image data type conversion feature now relies on the internal `clip_astype` function, which clips the data to the valid range of the target data type before converting it (in the case of integer images)
676
+ * Image ROI extraction issues:
677
+ * Multiple regressions were introduced in version 0.16.0:
678
+ * Single circular ROI extraction was not working as expected (a rectangular ROI was extracted, with unexpected coordinates)
679
+ * Multiple circular ROI extraction lead to a rectangular ROI extraction
680
+ * Multiple ROI extraction was no longer cropping the image to the overall bounding box of the ROIs
681
+ * These issues are now fixed, and unit tests have been added to prevent regressions:
682
+ * An independent test algorithm has been implemented to check the correctness of the ROI extraction in all cases mentioned above
683
+ * Tests cover both single and multiple ROI extraction, with circular and rectangular ROIs
684
+ * Overflow and underflow issues in some operations on integer images:
685
+ * When processing integer images, some features were causing overflow or underflow issues, leading to unexpected results (correct results from a numerical point of view, but not from a mathematical point of view)
686
+ * This issue only concerned basic operations (addition, subtraction, multiplication, division, and constant operations) - all the other features were already working as expected
687
+ * This is now fixed as result output are now floating point images
688
+ * Unit tests have been added to prevent regressions for all these operations
689
+
690
+ ## DataLab Version 0.16.4 ##
691
+
692
+ This is a minor maintenance release.
693
+
694
+ 🛠️ Bug fixes:
695
+
696
+ * Requires PlotPy v2.4.1 or later to fix the following issues related to the contrast adjustment feature:
697
+ * A regression was introduced in an earlier version of PlotPy: levels histogram was no longer removed from contrast adjustment panel when the associated image was removed from the plot
698
+ * This is now fixed: when an image is removed, the histogram is removed as well and the contrast panel is refreshed (which was not the case even before the regression)
699
+ * Ignore `AssertionError` in *config_unit_test.py* when executing test suite on WSL
700
+
701
+ 📚 Documentation:
702
+
703
+ * Fix class reference in `Wrap11Func` documentation
704
+
705
+ ## DataLab Version 0.16.3 ##
706
+
707
+ 🛠️ Bug fixes:
708
+
709
+ * Fixed [Issue #84](https://github.com/DataLab-Platform/DataLab/issues/84) - Build issues with V0.16.1: `signal` name conflict, ...
710
+ * This issue was intended to be fixed in version 0.16.2, but the fix was not complete
711
+ * Thanks to [@rolandmas](https://github.com/rolandmas) for reporting the issue and for the help in investigating the problem and testing the fix
712
+ * Fixed [Issue #85](https://github.com/DataLab-Platform/DataLab/issues/85) - Test data paths may be added multiple times to `datalab.utils.tests.TST_PATH`
713
+ * This issue is related to [Issue #84](https://github.com/DataLab-Platform/DataLab/issues/84)
714
+ * Adding the test data paths multiple times to `datalab.utils.tests.TST_PATH` was causing the test data to be loaded multiple times, which lead to some tests failing (a simple workaround was added to V0.16.2: this issue is now fixed)
715
+ * Thanks again to [@rolandmas](https://github.com/rolandmas) for reporting the issue in the context of the Debian packaging
716
+ * Fixed [Issue #86](https://github.com/DataLab-Platform/DataLab/issues/86) - Average of N integer images overflows data type
717
+ * Fixed [Issue #87](https://github.com/DataLab-Platform/DataLab/issues/87) - Image average profile extraction: `AttributeError` when trying to edit profile parameters
718
+ * Fixed [Issue #88](https://github.com/DataLab-Platform/DataLab/issues/88) - Image segment profile: point coordinates inversion
719
+
720
+ ## DataLab Version 0.16.2 ##
721
+
722
+ This release requires PlotPy v2.4.0 or later, which brings the following bug fixes and new features:
723
+
724
+ * New constrast adjustment features and bug fixes:
725
+ * New layout: the vertical toolbar (which was constrained in a small area on the right side of the panel) is now a horizontal toolbar at the top of the panel, beside the title
726
+ * New "Set range" button: allows the user to set manually the minimum and maximum values of the histogram range
727
+ * Fixed histogram update issues when no image was currently selected (even if the an image was displayed and was selected before)
728
+ * Histogram range was not updated when either the minimum or maximum value was set using the "Minimum value" or "Maximum value" buttons (which have been renamed to "Min." and "Max." in this release)
729
+ * Histogram range was not updated when the "Set full range" button was clicked, or when the LUT range was modified using the "Scales / LUT range" form in "Properties" group box
730
+
731
+ * Image view context menu: new "Reverse X axis" feature
732
+
733
+ ℹ️ Minor new features and enhancements:
734
+
735
+ * Image file types:
736
+ * Added native support for reading .SPE, .GEL, .NDPI and .REC image files
737
+ * Added support for any `imageio`-supported file format through configuration file (entry `imageio_formats` may be customized to complement the default list of supported formats: see [documentation](https://datalab-platform.com/en/features/image/menu_file.html#open-image) for more details)
738
+
739
+ 🛠️ Bug fixes:
740
+
741
+ * Image Fourier analysis:
742
+ * Fixed logarithmic scale for the magnitude spectrum (computing dB instead of natural logarithm)
743
+ * Fixed PSD computation with logarithmic scale (computing dB instead of natural logarithm)
744
+ * Updated the documentation to explicitly mention that the logarithmic scale is in dB
745
+
746
+ * Fixed [Issue #82](https://github.com/DataLab-Platform/DataLab/issues/82) - Macros are not renamed in DataLab after exporting them to Python scripts
747
+
748
+ * `ResultProperties` object can now be added to `SignalObj` or `ImageObj` metadata even outside a Qt event loop (because the label item is no longer created right away)
749
+
750
+ * Progress bar is now automatically closed as expected when an error occurrs during a long operation (e.g. when opening a file)
751
+
752
+ * Difference, division...: dialog box for the second operand selection was allowing to select a group (only a signal or an image should be selected)
753
+
754
+ * When doing an operation which involves an object (signal or image) with higher order number than the current object (e.g. when subtracting an image with an image from a group below the current image), the resulting object's title now correctly refers to the order numbers of the objects involved in the operation (e.g., to continue with the subtraction example mentioned above, the resulting object's title was previously referring to the order number before the insertion of the resulting image)
755
+
756
+ * Added support for additional test data folder thanks to the `DATALAB_DATA` environment variable (useful for testing purposes, and especially in the context of Debian packaging)
757
+
758
+ ## DataLab Version 0.16.1 ##
759
+
760
+ Since version 0.16.0, many validation functions have been added to the test suite. The percentage of validated compute functions has increased from 37% to 84% in this release.
761
+
762
+ NumPy 2.0 support has been added with this release.
763
+
764
+ ℹ️ Minor new features and enhancements:
765
+
766
+ * Signal and image moving average and median filters:
767
+ * Added "Mode" parameter to choose the mode of the filter (e.g. "reflect", "constant", "nearest", "mirror", "wrap")
768
+ * The default mode is "reflect" for moving average and "nearest" for moving median
769
+ * This allows to handle edge effects when filtering signals and images
770
+
771
+ 🛠️ Bug fixes:
772
+
773
+ * Fixed Canny edge detection to return binary image as `uint8` instead of `bool` (for consistency with other image processing features)
774
+
775
+ * Fixed Image normalization: lower bound was wrongly set for `maximum` method
776
+
777
+ * Fixed `ValueError` when computing PSD with logarithmic scale
778
+
779
+ * Fixed Signal derivative algorithm: now using `numpy.gradient` instead of a custom implementation
780
+
781
+ * Fixed SciPy's `cumtrapz` deprecation: use `cumulative_trapezoid` instead
782
+
783
+ * Curve selection now shows the individual points of the curve (before, only the curve line width was broadened)
784
+
785
+ * Windows installer: add support for unstable releases (e.g., 0.16.1.dev0), thus allowing to easily install the latest development version of DataLab on Windows
786
+
787
+ * Fixed [Issue #81](https://github.com/DataLab-Platform/DataLab/issues/81) - When opening files, show progress dialog only if necessary
788
+
789
+ * Fixed [Issue #80](https://github.com/DataLab-Platform/DataLab/issues/80) - Plotting results: support for two use cases
790
+ * The features of the "Analysis" menu produce *results* (scalars): blob detection (circle coordinates), 2D peak detection (point coordinates), etc. Depending on the feature, result tables are displayed in the "Results" dialog box, and the results are also stored in the signal or image metadata: each line of the result table is an individual result, and each column is a property of the result - some results may consist only of a single individual result (e.g., image centroid or curve FHWM), while others may consist of multiple individual results (e.g., blob detection, contour detection, etc.).
791
+ * Before this change, the "Plot results" feature only supported plotting the first individual result of a result table, as a function of the index (of the signal or image objects) or any of the columns of the result table. This was not sufficient for some use cases, where the user wanted to plot multiple individual results of a result table.
792
+ * Now, the "Plot results" feature supports two use cases:
793
+ * "One curve per result title": Plotting the first individual result of a result table, as before
794
+ * "One curve per object (or ROI) and per result title": Plotting all individual results of a result table, as a function of the index (of the signal or image objects) or any of the columns of the result table
795
+ * The selection of the use case is done in the "Plot results" dialog box
796
+ * The default use case is "One curve per result title" if the result table has only one line, and "One curve per object (or ROI) and per result title" otherwise
797
+
798
+ ## DataLab Version 0.16.0 ##
799
+
800
+ 💥 New features and enhancements:
801
+
802
+ * Major user interface overhaul:
803
+ * The menu bar and toolbars have been reorganized to make the application more intuitive and easier to use
804
+ * Operations and processing features have been regrouped in submenus
805
+ * All visualization-related actions are now grouped in the plot view vertical toolbar
806
+ * Clarified the "Annotations" management (new buttons, toolbar action...)
807
+
808
+ * New validation process for signal and image features:
809
+ * Before this release, DataLab's validation process was exclusively done from the programmer's point of view, by writing unit tests and integration tests, thus ensuring that the code was working as expected (i.e. that no exception was raised and that the behavior was correct)
810
+ * With this release, a new validation process has been introduced, from the user's point of view, by adding new validation functions (marked with the `@pytest.mark.validation` decorator) in the test suite
811
+ * A new "Validation" section in the documentation explains how validation is done and contains a list of all validation functions with the statistics of the validation process (generated from the test suite)
812
+ * The validation process is a work in progress and will be improved in future versions
813
+
814
+ * "Properties" group box:
815
+ * Added "Scales" tab, to show and set the plot scales:
816
+ * X, Y for signals
817
+ * X, Y, Z (LUT range) for images
818
+
819
+ * View options:
820
+ * New "Show first only" option in the "View" menu, to show only the first curve (or image) when multiple curves (or images) are displayed in the plot view
821
+ * New (movable) label for FWHM computations, additional to the existing segment annotation
822
+
823
+ * I/O features:
824
+ * Added support for reading and writing .MAT files (MATLAB format)
825
+ * Create a new group when opening a file containing multiple signals or images (e.g. CSV file with multiple curves)
826
+
827
+ * Add support for binary images
828
+ * Signal ROI extraction: added new dialog box to manually edit the ROI lower and upper bounds after defining the ROI graphically
829
+
830
+ ℹ️ New **Signal** operations, processing and analysis features:
831
+
832
+ | Menu | Submenu |Features |
833
+ |-------------|--------------|---------------------------------------------------------|
834
+ | New | New signal | Exponential, pulse, polynomial, custom (manual input) |
835
+ | Operations | | Exponential, Square root, Power |
836
+ | Operations | Operations with a constant | +, -, *, / |
837
+ | Processing | Axis Transformation | Reverse X-axis |
838
+ | Processing | Level Adjustment | Offset correction |
839
+ | Processing | Fourier analysis | Power spectrum, Phase spectrum, Magnitude spectrum, Power spectral density |
840
+ | Processing | Frequency filters | Low-pass, High-pass, Band-pass, Band-stop |
841
+ | Processing | | Windowing (Hanning, Hamming, Blackman, Blackman-Harris, Nuttall, Flat-top...) |
842
+ | Processing | Fit | Linear fit, Sinusoidal fit, Exponential fit, CDF fit |
843
+ | Analysis | | FWHM (Zero-crossing method), X value @ min/max, Sampling period/frequency, Dynamic parameters (ENOB, SNR, SINAD, THD, SFDR), -3dB bandwidth, Contrast |
844
+
845
+ ℹ️ New **Image** operations, processing and analysis features:
846
+
847
+ | Menu | Submenu |Features |
848
+ |-------------|--------------|---------------------------------------------------------|
849
+ | Operations | | Exponential |
850
+ | Operations | Intensity profiles | Profile along a segment |
851
+ | Operations | Operations with a constant | +, -, *, / |
852
+ | Processing | Level Adjustment | Normalization, Clipping, Offset correction |
853
+ | Processing | Fourier analysis | Power spectrum, Phase spectrum, Magnitude spectrum, Power spectral density |
854
+ | Processing | Thresholding | Parametric, ISODATA, Li, Mean, Minimum, Otsu, Triangle, Yen |
855
+
856
+ 🛠️ Bug fixes:
857
+
858
+ * Fixed a performance issue due to an unnecessary refresh of the plot view when adding a new signal or image
859
+ * Fixed [Issue #77](https://github.com/DataLab-Platform/DataLab/issues/77) - Intensity profiles: unable to accept dialog the second time
860
+ * Fixed [Issue #75](https://github.com/DataLab-Platform/DataLab/issues/75) - View in a new window: curve anti-aliasing is not enabled by default
861
+ * Annotations visibility is now correctly saved and restored:
862
+ * Before this release, when modifying the annotations visibility in the separate plot view, the visibility was not saved and restored when reopening the plot view
863
+ * This has been [fixed upstream](https://github.com/PlotPyStack/PlotPy/commit/03faaa42e5d6d4016ea8c99334c29d46a5963467) in PlotPy (v2.3.3)
864
+
865
+ ## DataLab Version 0.15.1 ##
866
+
867
+ 🛠️ Bug fixes:
868
+
869
+ * Fixed [Issue #68](https://github.com/DataLab-Platform/DataLab/issues/68) - Slow loading of even simple plots:
870
+ * On macOS, the user experience was degraded when handling even simple plots
871
+ * This was due to the way macOS handles the pop-up windows, e.g. when refreshing the plot view ("Creating plot items" progress bar), hence causing a very annoying flickering effect and a global slowdown of the application
872
+ * This is now fixed by showing the progress bar only after a short delay (1s), that is when it is really needed (i.e. for long operations)
873
+ * Thanks to [@marcel-goldschen-ohm](https://github.com/marcel-goldschen-ohm) for the very thorough feedback and the help in testing the fix
874
+ * Fixed [Issue #69](https://github.com/DataLab-Platform/DataLab/issues/69) - Annotations should be read-only in Signal/Image View
875
+ * Regarding the annotations, DataLab's current behavior is the following:
876
+ * Annotations are created only when showing the signal/image in a separate window (double-click on the object, or "View" > "View in a new window")
877
+ * When displaying the objects in either the "Signal View" or the "Image View", the annotations should be read-only (i.e. not movable, nor resizable or deletable)
878
+ * However, some annotations were still deletable in the "Signal View" and the "Image View": this is now fixed
879
+ * Note that the fact that annotations can't be created in the "Signal View" or the "Image View" is a limitation of the current implementation, and may be improved in future versions
880
+
881
+ ## DataLab Version 0.15.0 ##
882
+
883
+ 🎁 New installer for the stand-alone version on Windows:
884
+
885
+ * The stand-alone version on Windows is now distributed as an MSI installer (instead of an EXE installer)
886
+ * This avoids the false positive detection of the stand-alone version as a potential threat by some antivirus software
887
+ * The program will install files and shortcuts:
888
+ * For current user, if the user has no administrator privileges
889
+ * For all users, if the user has administrator privileges
890
+ * Installation directory may be customized
891
+ * MSI installer allows to integrate DataLab's installation seemlessly in an organization's deployment system
892
+
893
+ 💥 New features and enhancements:
894
+
895
+ * Added support for large text/CSV files:
896
+ * Files over 1 GB (and with reasonable number of lines) can now be imported as signals or images without crashing the application or even slowing it down
897
+ * The file is read by chunks and, for signals, the data is downsampled to a reasonable number of points for visualization
898
+ * Large files are supported when opening a file (or dragging and dropping a file in the Signal Panel) and when importing a file in the Text Import Wizard
899
+ * Auto downsampling feature:
900
+ * Added "Auto downsampling" feature to signal visualization settings (see "Settings" dialog box)
901
+ * This feature allows to automatically downsample the signal data for visualization when the number of points is too high and would lead to a slow rendering
902
+ * The downsampling factor is automatically computed based on the configured maximum number of points to display
903
+ * This feature is enabled by default and may be disabled in the signal visualization settings
904
+ * CSV format handling:
905
+ * Improved support for CSV files with a header row (column names)
906
+ * Added support for CSV files with empty columns
907
+ * Open/save file error handling:
908
+ * Error messages are now more explicit when opening or saving a file fails
909
+ * Added a link to the folder containing the file in the error message
910
+ * Added "Plugins and I/O formats" page to the Installation and Configuration Viewer (see "Help" menu)
911
+ * Reset DataLab configuration:
912
+ * In some cases, it may be useful to reset the DataLab configuration file to its default values (e.g. when the configuration file is corrupted)
913
+ * Added new `--reset` command line option to remove the configuration folder
914
+ * Added new "Reset DataLab" Start Menu shortcut to the Windows installer
915
+
916
+ 🛠️ Bug fixes:
917
+
918
+ * Fixed [Issue #64](https://github.com/DataLab-Platform/DataLab/issues/64) - HDF5 browser does not show datasets with 1x1 size:
919
+ * HDF5 datasets with a size of 1x1 were not shown in the HDF5 browser
920
+ * Even if those datasets should not be considered as signals or images, they are now shown in the HDF5 browser (but not checkable, i.e. not importable as signals or images)
921
+
922
+ ## DataLab Version 0.14.2 ##
923
+
924
+ ⚠️ API changes required for fixing support for multiple signals loading feature:
925
+
926
+ * Merged `open_object` and `open_objects` methods to `load_from_files` in proxy classes, main window and data panels
927
+ * For consistency's sake: merged `save_object` and `save_objects` into `save_to_files`
928
+ * To sum up, those changes lead to the following situation:
929
+ * `load_from_files`: load a sequence of objects from multiple files
930
+ * `save_to_files`: save a sequence of objects to multiple files (at the moment, it only supports saving a single object to a single file, but it may be extended in the future to support saving multiple objects to a single file)
931
+
932
+ 🛠️ Bug fixes:
933
+
934
+ * Fixed [Issue #61](https://github.com/DataLab-Platform/DataLab/issues/61) - Text file import wizard: application crash when importing a multiple curve text file:
935
+ * This issue concerns a use case where the text file contains multiple curves
936
+ * This is now fixed and an automatic test has been added to prevent regressions
937
+
938
+ ## DataLab Version 0.14.1 ##
939
+
940
+ 🎉 New domain name: [datalab-platform.com](https://datalab-platform.com)
941
+
942
+ 💥 New features:
943
+
944
+ * Added support for colormap inversion in Image View:
945
+ * New "Invert colormap" entry in plot context menu, image parameters, and in the default image view settings
946
+ * This requires `PlotPy` v2.3 or later
947
+ * HDF5 Browser:
948
+ * Added "Show array" button at the corner of the "Group" and "Attributes" tabs, to show the array in a separate window (useful for copy/pasting data to other applications, for instance)
949
+ * Attributes: added support for more scalar data types
950
+ * Testability and maintainability:
951
+ * DataLab's unit tests are now using [pytest](https://pytest.org). This has required a lot of work for the transition, especially to readapt the tests so that they may be executed in the same process. For instance, a particular attention has been given to sandboxing the tests, so that they do not interfere with each other.
952
+ * Added continuous integration (CI) with GitHub Actions
953
+ * For this release, test coverage is 87%
954
+ * Text file import assistant:
955
+ * Drastically improved the performance of the array preview when importing large text files (no more progress bar, and the preview is now displayed almost instantaneously)
956
+
957
+ 🛠️ Bug fixes:
958
+
959
+ * XML-RPC server was not shut down properly when closing DataLab
960
+ * Fixed test-related issues: some edge cases were hidden by the old test suite, and have been revealed by the transition to `pytest`. This has led to some bug fixes and improvements in the code.
961
+ * On Linux, when running a computation on a signal or an image, and on rare occasions, the computation was stuck as if it was running indefinitely. Even though the graphical user interface was still responsive, the computation was not progressing and the user had to cancel the operation and restart it. This was due to the start method of the separate process used for the computation (default method was "fork" on Linux). This is now fixed by using the "spawn" method instead, which is the recommended method for latest versions of Python on Linux when multithreading is involved.
962
+ * Fixed [Issue #60](https://github.com/DataLab-Platform/DataLab/issues/60) - `OSError: Invalid HDF5 file [...]` when trying to open an HDF5 file with an extension other than ".h5"
963
+ * Image Region of Interest (ROI) extraction: when modifying the image bounds in the confirmation dialog box, the ROI was not updated accordingly until the operation was run again
964
+ * Deprecation issues:
965
+ * Fixed `scipy.ndimage.filters` deprecation warning
966
+ * Fixed `numpy.fromstring` deprecation warning
967
+
968
+ ## DataLab Version 0.14.0 ##
969
+
970
+ 💥 New features:
971
+
972
+ * New "Histogram" feature in "Analysis" menu:
973
+ * Added histogram computation feature for both signals and images
974
+ * The histogram is computed on the regions of interest (ROI) if any, or on the whole signal/image if no ROI is defined
975
+ * Editable parameters: number of bins, lower and upper bounds
976
+ * HDF5 browser:
977
+ * Improved tree view layout (more compact and readable)
978
+ * Multiple files can now be opened at once, using the file selection dialog box
979
+ * Added tabs with information below the graphical preview:
980
+ * Group info: path, textual preview, etc.
981
+ * Attributes info: name, value
982
+ * Added "Show only supported data" check box: when checked, only supported data (signals and images) are shown in the tree view
983
+ * Added "Show values" check box, to show/hide the values in the tree view
984
+ * Macro Panel:
985
+ * Macro commands are now numbered, starting from 1, like signals and images
986
+ * Remote control API (`RemoteProxy` and `LocalProxy`):
987
+ * `get_object_titles` method now accepts "macro" as panel name and returns the list of macro titles
988
+ * New `run_macro`, `stop_macro` and `import_macro_from_file` methods
989
+
990
+ 🛠️ Bug fixes:
991
+
992
+ * Stand-alone version - Integration in Windows start menu:
993
+ * Fixed "Uninstall" shortcut (unclickable due to a generic name)
994
+ * Translated "Browse installation directory" and "Uninstall" shortcuts
995
+ * Fixed [Issue #55](https://github.com/DataLab-Platform/DataLab/issues/55) - Changing image bounds in Image View has no effect on the associated image object properties
996
+ * Fixed [Issue #56](https://github.com/DataLab-Platform/DataLab/issues/56) - "Test data" plugin: `AttributeError: 'NoneType' object has no attribute 'data'` when canceling "Create image with peaks"
997
+ * Fixed [Issue #57](https://github.com/DataLab-Platform/DataLab/issues/57) - Circle and ellipse result shapes are not transformed properly
998
+ * Curve color and style cycle:
999
+ * Before this release, this cycle was handled by the same mechanism either for the Signal Panel or the HDF5 Browser, which was not the expected behavior
1000
+ * Now, the cycle is handled separately: the HDF5 Browser or the Text Import Wizard use always the same color and style for curves, and they don't interfere with the Signal Panel cycle
1001
+
1002
+ ## DataLab Version 0.12.0 ##
1003
+
1004
+ 🧹 Clarity-Enhanced Interface Update:
1005
+
1006
+ * The tabs used to switch between the data panels (signals and images) and the visualization components ("Curve panel" and "Image panel") have been renamed to "Signal Panel" and "Image Panel" (instead of "Signals" and "Images")
1007
+ * The visualization components have been renamed to "Signal View" and "Image View" (instead of "Curve panel" and "Image panel")
1008
+ * The data panel toolbar has been renamed to "Signal Toolbar" and "Image Toolbar" (instead of "Signal Processing Toolbar" and "Image Processing Toolbar")
1009
+ * Ergonomics improvements: the "Signal Panel" and "Image Panel" are now displayed on the left side of the main window, and the "Signal View" and "Image View" are displayed on the right side of the main window. This reduces the distance between the list of objects (signals and images) and the associated actions (toolbars and menus), and makes the interface more intuitive and easier to use
1010
+
1011
+ ✨ New tour and demo feature:
1012
+
1013
+ * When starting DataLab for the first time, an optional tour is now shown to the user to introduce the main features of the application
1014
+ * The tour can be started again at any time from the "?" menu
1015
+ * Also added a new "Demo" feature to the "?" menu
1016
+
1017
+ 🚀 New Binder environment to test DataLab online without installing anything
1018
+
1019
+ 📚 Documentation:
1020
+
1021
+ * New text tutorials are available:
1022
+ * Measuring Laser Beam Size
1023
+ * DataLab and Spyder: a perfect match
1024
+ * "Getting started" section: added more explanations and links to the tutorials
1025
+ * New "Contributing" section explaining how to contribute to DataLab, whether you are a developer or not
1026
+ * New "Macros" section explaining how to use the macro commands feature
1027
+ * Added "Copy" button to code blocks in the documentation
1028
+
1029
+ 💥 New features:
1030
+
1031
+ * New "Text file import assistant" feature:
1032
+ * This feature allows to import text files as signals or images
1033
+ * The user can define the source (clipboard or texte file)
1034
+ * Then, it is possible to define the delimiter, the number of rows to skip, the destination data type, etc.
1035
+ * Added menu on the "Signal Panel" and "Image Panel" tabs corner to quickly access the most used features (e.g. "Add", "Remove", "Duplicate", etc.)
1036
+ * Intensity profile extraction feature:
1037
+ * Added graphical user interface to extract intensity profiles from images, for both line and averaged profiles
1038
+ * Parameters are still directly editable by the user ("Edit profile parameters" button)
1039
+ * Parameters are now stored from one profile extraction to another
1040
+ * Statistics feature:
1041
+ * Added `<y>/σ(y)` to the signal "Statistics" result table (in addition to the mean, median, standard deviation, etc.)
1042
+ * Added `peak-to-peak` to the signal and image "Statistics" result table
1043
+ * Curve fitting feature: fit results are now stored in a dictionary in the signal metadata (instead of being stored individually in the signal metadata)
1044
+ * Window state:
1045
+ * The toolbars and dock widgets state (visibility, position, etc.) are now stored in the configuration file and restored at startup (size and position were already stored and restored)
1046
+ * This implements part of [Issue #30](https://github.com/DataLab-Platform/DataLab/issues/30) - Save/restore main window layout
1047
+
1048
+ 🛠️ Bug fixes:
1049
+
1050
+ * Fixed [Issue #41](https://github.com/DataLab-Platform/DataLab/issues/41) - Radial profile extraction: unable to enter user-defined center coordinates
1051
+ * Fixed [Issue #49](https://github.com/DataLab-Platform/DataLab/issues/49) - Error when trying to open a (UTF-8 BOM) text file as an image
1052
+ * Fixed [Issue #51](https://github.com/DataLab-Platform/DataLab/issues/51) - Unexpected dimensions when adding new ROI on an image with X/Y arbitrary units (not pixels)
1053
+ * Improved plot item style serialization management:
1054
+ * Before this release, the plot item style was stored in the signal/image metadata only when saving the workspace to an HDF5 file. So, when modifying the style of a signal/image from the "Parameters" button (view toolbar), the style was not kept in some cases (e.g. when duplicating the signal/image).
1055
+ * Now, the plot item style is stored in the signal/image metadata whenever the style is modified, and is restored when reloading the workspace
1056
+ * Handled `ComplexWarning` cast warning when adding regions of interest (ROI) to a signal with complex data
1057
+
1058
+ ## DataLab Version 0.11.0 ##
1059
+
1060
+ 💥 New features:
1061
+
1062
+ * Signals and images may now be reordered in the tree view:
1063
+ * Using the new "Move up" and "Move down" actions in the "Edit" menu (or using the corresponding toolbar buttons):
1064
+ * This fixes [Issue #22](https://github.com/DataLab-Platform/DataLab/issues/22) - Add "move up/down" actions in "Edit" menu, for signals/images and groups
1065
+ * Signals and images may also be reordered using drag and drop:
1066
+ * Signals and images can be dragged and dropped inside their own panel to change their order
1067
+ * Groups can also be dragged and dropped inside their panel
1068
+ * The feature also supports multi-selection (using the standard Ctrl and Shift modifiers), so that multiple signals/images/groups can be moved at once, not necessarily with contiguous positions
1069
+ * This fixes [Issue #17](https://github.com/DataLab-Platform/DataLab/issues/17) - Add Drag and Drop feature to Signals/Images tree views
1070
+ * New 1D interpolation features:
1071
+ * Added "Interpolation" feature to signal panel's "Processing" menu
1072
+ * Methods available: linear, spline, quadratic, cubic, barycentric and PCHIP
1073
+ * Thanks to [@marcel-goldschen-ohm](https://github.com/marcel-goldschen-ohm) for the contribution to spline interpolation
1074
+ * This fixes [Issue #20](https://github.com/DataLab-Platform/DataLab/issues/20) - Add 1D interpolation features
1075
+ * New 1D resampling feature:
1076
+ * Added "Resampling" feature to signal panel's "Processing" menu
1077
+ * Same interpolation methods as for the "Interpolation" feature
1078
+ * Possibility to specify the resampling step or the number of points
1079
+ * This fixes [Issue #21](https://github.com/DataLab-Platform/DataLab/issues/21) - Add 1D resampling feature
1080
+ * New 1D convolution feature:
1081
+ * Added "Convolution" feature to signal panel's "Operation" menu
1082
+ * This fixes [Issue #23](https://github.com/DataLab-Platform/DataLab/issues/23) - Add 1D convolution feature
1083
+ * New 1D detrending feature:
1084
+ * Added "Detrending" feature to signal panel's "Processing" menu
1085
+ * Methods available: linear or constant
1086
+ * This fixes [Issue #24](https://github.com/DataLab-Platform/DataLab/issues/24) - Add 1D detrending feature
1087
+ * 2D analysis results:
1088
+ * Before this release, 2D analysis results such as contours, blobs, etc. were stored in image metadata dictionary as coordinates (x0, y0, x1, y1, ...) even for circles and ellipses (i.e. the coordinates of the bounding rectangles).
1089
+ * For convenience, the circle and ellipse coordinates are now stored in image metadata dictionary as (x0, y0, radius) and (x0, y0, a, b, theta) respectively.
1090
+ * These results are also shown as such in the "Results" dialog box (either at the end of the computing process or when clicking on the "Show results" button).
1091
+ * This fixes [Issue #32](https://github.com/DataLab-Platform/DataLab/issues/32) - Contour detection: show circle `(x, y, r)` and ellipse `(x, y, a, b, theta)` instead of `(x0, y0, x1, x1, ...)`
1092
+ * 1D and 2D analysis results:
1093
+ * Additionnaly to the previous enhancement, more analysis results are now shown in the "Results" dialog box
1094
+ * This concerns both 1D (FHWM...) and 2D analysis results (contours, blobs...):
1095
+ * Segment results now also show length (L) and center coordinates (Xc, Yc)
1096
+ * Circle and ellipse results now also show area (A)
1097
+ * Added "Plot results" entry in "Analysis" menu:
1098
+ * This feature allows to plot analysis results (1D or 2D)
1099
+ * It creates a new signal with X and Y axes corresponding to user-defined parameters (e.g. X = indices and Y = radius for circle results)
1100
+ * Increased default width of the object selection dialog box:
1101
+ * The object selection dialog box is now wider by default, so that the full signal/image/group titles may be more easily readable
1102
+ * Delete metadata feature:
1103
+ * Before this release, the feature was deleting all metadata, including the Regions Of Interest (ROI) metadata, if any.
1104
+ * Now a confirmation dialog box is shown to the user before deleting all metadata if the signal/image has ROI metadata: this allows to keep the ROI metadata if needed.
1105
+ * Image profile extraction feature: added support for masked images (when defining regions of interest, the areas outside the ROIs are masked, and the profile is extracted only on the unmasked areas, or averaged on the unmasked areas in the case of average profile extraction)
1106
+ * Curve style: added "Reset curve styles" in "View" menu. This feature allows to reset the curve style cycle to its initial state.
1107
+ * Plugin base classe `PluginBase`:
1108
+ * Added `edit_new_signal_parameters` method for showing a dialog box to edit parameters for a new signal
1109
+ * Added `edit_new_image_parameters` method for showing a dialog box to edit parameters for a new image (updated the *datalab_testdata.py* plugin accordingly)
1110
+ * Signal and image computations API (`datalab.computations`):
1111
+ * Added wrappers for signal and image 1 -> 1 computations
1112
+ * These wrappers aim at simplifying the creation of a basic computation function operating on DataLab's native objects (`SignalObj` and `ImageObj`) from a function operating on NumPy arrays
1113
+ * This simplifies DataLab's internals and makes it easier to create new computing features inside plugins
1114
+ * See the *datalab_custom_func.py* example plugin for a practical use case
1115
+ * Added "Radial profile extraction" feature to image panel's "Operation" menu:
1116
+ * This feature allows to extract a radially averaged profile from an image
1117
+ * The profile is extracted around a user-defined center (x0, y0)
1118
+ * The center may also be computed (centroid or image center)
1119
+ * Automated test suite:
1120
+ * Since version 0.10, DataLab's proxy object has a `toggle_auto_refresh` method to toggle the "Auto-refresh" feature. This feature may be useful to improve performance during the execution of test scripts
1121
+ * Test scenarios on signals and images are now using this feature to improve performance
1122
+ * Signal and image metadata:
1123
+ * Added "source" entry to the metadata dictionary, to store the source file path when importing a signal or an image from a file
1124
+ * This field is kept while processing the signal/image, in order to keep track of the source file path
1125
+
1126
+ 📚 Documentation:
1127
+
1128
+ * New [Tutorial section](https://datalab-platform.com/en/intro/tutorials/index.html) in the documentation:
1129
+ * This section provides a set of tutorials to learn how to use DataLab
1130
+ * The following video tutorials are available:
1131
+ * Quick demo
1132
+ * Adding your own features
1133
+ * The following text tutorials are available:
1134
+ * Processing a spectrum
1135
+ * Detecting blobs on an image
1136
+ * Measuring Fabry-Perot fringes
1137
+ * Prototyping a custom processing pipeline
1138
+ * New [API section](https://datalab-platform.com/en/api/index.html) in the documentation:
1139
+ * This section explains how to use DataLab as a Python library, by covering the following topics:
1140
+ * How to use DataLab algorithms on NumPy arrays
1141
+ * How to use DataLab computation features on DataLab objects (signals and images)
1142
+ * How to use DataLab I/O features
1143
+ * How to use proxy objects to control DataLab remotely
1144
+ * This section also provides a complete API reference for DataLab objects and features
1145
+ * This fixes [Issue #19](https://github.com/DataLab-Platform/DataLab/issues/19) - Add API documentation (data model, functions on arrays or signal/image objects, ...)
1146
+
1147
+ 🛠️ Bug fixes:
1148
+
1149
+ * Fixed [Issue #29](https://github.com/DataLab-Platform/DataLab/issues/29) - Polynomial fit error: `QDialog [...] argument 1 has an unexpected type 'SignalProcessor'`
1150
+ * Image ROI extraction feature:
1151
+ * Before this release, when extracting a single circular ROI from an image with the "Extract all ROIs into a single image object" option enabled, the result was a single image without the ROI mask (the ROI mask was only available when extracting ROI with the option disabled)
1152
+ * This was leading to an unexpected behavior, because one could interpret the result (a square image without the ROI mask) as the result of a single rectangular ROI
1153
+ * Now, when extracting a single circular ROI from an image with the "Extract all ROIs into a single image object" option enabled, the result is a single image with the ROI mask (as if the option was disabled)
1154
+ * This fixes [Issue #31](https://github.com/DataLab-Platform/DataLab/issues/31) - Single circular ROI extraction: automatically switch to `compute_extract_roi` function
1155
+ * Analysis on circular ROI:
1156
+ * Before this release, when running computations on a circular ROI, the results were unexpected in terms of coordinates (results seemed to be computed in a region located above the actual ROI).
1157
+ * This was due to a regression introduced in an earlier release.
1158
+ * Now, when defining a circular ROI and running computations on it, the results are computed on the actual ROI
1159
+ * This fixes [Issue #33](https://github.com/DataLab-Platform/DataLab/issues/33) - Analysis on circular ROI: unexpected results
1160
+ * Contour detection on ROI:
1161
+ * Before this release, when running contour detection on a ROI, some contours were detected outside the ROI (it may be due to a limitation of the scikit-image `find_contours` function).
1162
+ * Now, thanks a workaround, the erroneous contours are filtered out.
1163
+ * A new test module `datalab.tests.features.images.contour_fabryperot_app` has been added to test the contour detection feature on a Fabry-Perot image (thanks to [@emarin2642](https://github.com/emarin2642) for the contribution)
1164
+ * This fixes [Issue #34](https://github.com/DataLab-Platform/DataLab/issues/34) - Contour detection: unexpected results outside ROI
1165
+ * Analysis result merging:
1166
+ * Before this release, when doing a `1->N` computation (sum, average, product) on a group of signals/images, the analysis results associated to each signal/image were merged into a single result, but only the type of result present in the first signal/image was kept.
1167
+ * Now, the analysis results associated to each signal/image are merged into a single result, whatever the type of result is.
1168
+ * Fixed [Issue #36](https://github.com/DataLab-Platform/DataLab/issues/36) - "Delete all" action enable state is sometimes not refreshed
1169
+ * Image X/Y swap: when swapping X and Y axes, the regions of interest (ROI) were not removed and not swapped either (ROI are now removed, until we implement the swap feature, if requested)
1170
+ * "Properties" group box: the "Apply" button was enabled by default, even when no property was modified, which was confusing for the user (the "Apply" button is now disabled by default, and is enabled only when a property is modified)
1171
+ * Fixed proxy `get_object` method when there is no object to return (`None` is returned instead of an exception)
1172
+ * Fixed `IndexError: list index out of range` when performing some operations or computations on groups of signals/images (e.g. "ROI extraction", "Peak detection", "Resize", etc.)
1173
+ * Drag and drop from a file manager: filenames are now sorted alphabetically
1174
+
1175
+ ## DataLab Version 0.10.1 ##
1176
+
1177
+ *Note*: V0.10.0 was almost immediately replaced by V0.10.1 due to a last minute bug fix
1178
+
1179
+ 💥 New features:
1180
+
1181
+ * Features common to signals and images:
1182
+ * Added "Real part" and "Imaginary part" features to "Operation" menu
1183
+ * Added "Convert data type" feature to "Operation" menu
1184
+ * Features added following user requests (12/18/2023 meetup @ CEA):
1185
+ * Curve and image styles are now saved in the HDF5 file:
1186
+ * Curve style covers the following properties: color, line style, line width, marker style, marker size, marker edge color, marker face color, etc.
1187
+ * Image style covers the following properties: colormap, interpolation, etc.
1188
+ * Those properties were already persistent during the working session, but were lost when saving and reloading the HDF5 file
1189
+ * Now, those properties are saved in the HDF5 file and are restored when reloading the HDF5 file
1190
+ * New profile extraction features for images:
1191
+ * Added "Line profile" to "Operations" menu, to extract a profile from an image along a row or a column
1192
+ * Added "Average profile" to "Operations" menu, to extract the average profile on a rectangular area of an image, along a row or a column
1193
+ * Image LUT range (contrast/brightness settings) is now saved in the HDF5 file:
1194
+ * As for curve and image styles, the LUT range was already persistent during the working session, but was lost when saving and reloading the HDF5 file
1195
+ * Now, the LUT range is saved in the HDF5 file and is restored when reloading it
1196
+ * Added "Auto-refresh" and "Refresh manually" actions in "View" menu (and main toolbar):
1197
+ * When "Auto-refresh" is enabled (default), the plot view is automatically refreshed when a signal/image is modified, added or removed. Even though the refresh is optimized, this may lead to performance issues when working with large datasets.
1198
+ * When disabled, the plot view is not automatically refreshed. The user must manually refresh the plot view by clicking on the "Refresh manually" button in the main toolbar or by pressing the standard refresh key (e.g. "F5").
1199
+ * Added `toggle_auto_refresh` method to DataLab proxy object:
1200
+ * This method allows to toggle the "Auto-refresh" feature from a macro-command, a plugin or a remote control client.
1201
+ * A context manager `context_no_refresh` is also available to temporarily disable the "Auto-refresh" feature from a macro-command, a plugin or a remote control client. Typical usage:
1202
+
1203
+ ```python
1204
+ with proxy.context_no_refresh():
1205
+ # Do something without refreshing the plot view
1206
+ proxy.compute_fft() # (...)
1207
+ ```
1208
+
1209
+ * Improved curve readability:
1210
+ * Until this release, the curve style was automatically set by cycling through
1211
+ **PlotPy** predefined styles
1212
+ * However, some styles are not suitable for curve readability (e.g. "cyan" and "yellow" colors are not readable on a white background, especially when combined with a "dashed" line style)
1213
+ * This release introduces a new curve style management with colors which are distinguishable and accessible, even to color vision deficiency people
1214
+ * Added "Curve anti-aliasing" feature to "View" menu (and toolbar):
1215
+ * This feature allows to enable/disable curve anti-aliasing (default: enabled)
1216
+ * When enabled, the curve rendering is smoother but may lead to performance issues when working with large datasets (that's why it can be disabled)
1217
+ * Added `toggle_show_titles` method to DataLab proxy object. This method allows to toggle the "Show graphical object titles" feature from a macro-command, a plugin or a remote control client.
1218
+ * Remote client is now checking the server version and shows a warning message if the server version may not be fully compatible with the client version.
1219
+
1220
+ 🛠️ Bug fixes:
1221
+
1222
+ * Image contour detection feature ("Analysis" menu):
1223
+ * The contour detection feature was not taking into account the "shape" parameter (circle, ellipse, polygon) when computing the contours. The parameter was stored but really used only when calling the feature a second time.
1224
+ * This unintentional behavior led to an `AssertionError` when choosing "polygon" as the contour shape and trying to compute the contours for the first time.
1225
+ * This is now fixed (see [Issue #9](https://github.com/DataLab-Platform/DataLab/issues/9) - Image contour detection: `AssertionError` when choosing "polygon" as the contour shape)
1226
+ * Keyboard shortcuts:
1227
+ * The keyboard shortcuts for "New", "Open", "Save", "Duplicate", "Remove", "Delete all" and "Refresh manually" actions were not working properly.
1228
+ * Those shortcuts were specific to each signal/image panel, and were working only when the panel on which the shortcut was pressed for the first time was active (when activated from another panel, the shortcut was not working and a warning message was displayed in the console, e.g. `QAction::event: Ambiguous shortcut overload: Ctrl+C`)
1229
+ * Besides, the shortcuts were not working at startup (when no panel had focus).
1230
+ * This is now fixed: the shortcuts are now working whatever the active panel is, and even at startup (see [Issue #10](https://github.com/DataLab-Platform/DataLab/issues/10) - Keyboard shortcuts not working properly: `QAction::event: Ambiguous shortcut overload: Ctrl+C`)
1231
+ * "Show graphical object titles" and "Auto-refresh" actions were not working properly:
1232
+ * The "Show graphical object titles" and "Auto-refresh" actions were only working on the active signal/image panel, and not on all panels.
1233
+ * This is now fixed (see [Issue #11](https://github.com/DataLab-Platform/DataLab/issues/11) - "Show graphical object titles" and "Auto-refresh" actions were working only on current signal/image panel)
1234
+ * Fixed [Issue #14](https://github.com/DataLab-Platform/DataLab/issues/14) - Saving/Reopening HDF5 project without cleaning-up leads to `ValueError`
1235
+ * Fixed [Issue #15](https://github.com/DataLab-Platform/DataLab/issues/15) - MacOS: 1. `pip install cdl` error - 2. Missing menus:
1236
+ * Part 1: `pip install cdl` error on MacOS was actually an issue from **PlotPy** (see [this issue](https://github.com/PlotPyStack/PlotPy/issues/9)), and has been fixed in PlotPy v2.0.3 with an additional compilation flag indicating to use C++11 standard
1237
+ * Part 2: Missing menus on MacOS was due to a PyQt/MacOS bug regarding dynamic menus
1238
+ * HDF5 file format: when importing an HDF5 dataset as a signal or an image, the dataset attributes were systematically copied to signal/image metadata: we now only copy the attributes which match standard data types (integers, floats, strings) to avoid errors when serializing/deserializing the signal/image object
1239
+ * Installation/configuration viewer: improved readability (removed syntax highlighting)
1240
+ * PyInstaller specification file: added missing `skimage` data files manually in order to continue supporting Python 3.8 (see [Issue #12](https://github.com/DataLab-Platform/DataLab/issues/12) - Stand-alone version on Windows 7: missing `api-ms-win-core-path-l1-1-0.dll`)
1241
+ * Fixed [Issue #13](https://github.com/DataLab-Platform/DataLab/issues/13) - ArchLinux: `qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found`
1242
+
1243
+ ## DataLab Version 0.9.2 ##
1244
+
1245
+ 🛠️ Bug fixes:
1246
+
1247
+ * Region of interest (ROI) extraction feature for images:
1248
+ * ROI extraction was not working properly when the "Extract all ROIs into a single image object" option was enabled if there was only one defined ROI. The result was an image positioned at the origin (0, 0) instead of the expected position (x0, y0) and the ROI rectangle itself was not removed as expected. This is now fixed (see [Issue #6](https://github.com/DataLab-Platform/DataLab/issues/6) - 'Extract multiple ROI' feature: unexpected result for a single ROI)
1249
+ * ROI rectangles with negative coordinates were not properly handled: ROI extraction was raising a `ValueError` exception, and the image mask was not displayed properly. This is now fixed (see [Issue #7](https://github.com/DataLab-Platform/DataLab/issues/7) - Image ROI extraction: `ValueError: zero-size array to reduction operation minimum which has no identity`)
1250
+ * ROI extraction was not taking into account the pixel size (dx, dy) and the origin (x0, y0) of the image. This is now fixed (see [Issue #8](https://github.com/DataLab-Platform/DataLab/issues/8) - Image ROI extraction: take into account pixel size)
1251
+ * Macro-command console is now read-only:
1252
+ * The macro-command panel Python console is currently not supporting standard input stream (`stdin`) and this is intended (at least for now)
1253
+ * Set Python console read-only to avoid confusion
1254
+
1255
+ ## DataLab Version 0.9.1 ##
1256
+
1257
+ 🛠️ Bug fixes:
1258
+
1259
+ * French translation is not available on Windows/Stand alone version:
1260
+ * Locale was not properly detected on Windows for stand-alone version (frozen with `pyinstaller`) due to an issue with `locale.getlocale()` (function returning `None` instead of the expected locale on frozen applications)
1261
+ * This is ultimately a `pyinstaller` issue, but a workaround has been implemented in `guidata` V3.2.2 (see [guidata issue #68](https://github.com/PlotPyStack/guidata/issues/68) - Windows: gettext translation is not working on frozen applications)
1262
+ * [Issue #2](https://github.com/DataLab-Platform/DataLab/issues/2) - French translation is not available on Windows Stand alone version
1263
+ * Saving image to JPEG2000 fails for non integer data:
1264
+ * JPEG2000 encoder does not support non integer data or signed integer data
1265
+ * Before, DataLab was showing an error message when trying to save incompatible data to JPEG2000: this was not a consistent behavior with other standard image formats (e.g. PNG, JPG, etc.) for which DataLab was automatically converting data to the appropriate format (8-bit unsigned integer)
1266
+ * Current behavior is now consistent with other standard image formats: when saving to JPEG2000, DataLab automatically converts data to 8-bit unsigned integer or 16-bit unsigned integer (depending on the original data type)
1267
+ * [Issue #3](https://github.com/DataLab-Platform/DataLab/issues/3) - Save image to JPEG2000: 'OSError: encoder error -2 when writing image file'
1268
+ * Windows stand-alone version shortcuts not showing in current user start menu:
1269
+ * When installing DataLab on Windows from a non-administrator account, the shortcuts were not showing in the current user start menu but in the administrator start menu instead (due to the elevated privileges of the installer and the fact that the installer does not support installing shortcuts for all users)
1270
+ * Now, the installer *does not* ask for elevated privileges anymore, and shortcuts are installed in the current user start menu (this also means that the current user must have write access to the installation directory)
1271
+ * In future releases, the installer will support installing shortcuts for all users if there is a demand for it (see [Issue #5](https://github.com/DataLab-Platform/DataLab/issues/5))
1272
+ * [Issue #4](https://github.com/DataLab-Platform/DataLab/issues/4) - Windows: stand-alone version shortcuts not showing in current user start menu
1273
+ * Installation and configuration window for stand-alone version:
1274
+ * Do not show ambiguous error message 'Invalid dependencies' anymore
1275
+ * Dependencies are supposed to be checked when building the stand-alone version
1276
+ * Added PDF documentation to stand-alone version:
1277
+ * The PDF documentation was missing in previous release
1278
+ * Now, the PDF documentation (in English and French) is included in the stand-alone version
1279
+
1280
+ ## DataLab Version 0.9.0 ##
1281
+
1282
+ New dependencies:
1283
+
1284
+ * DataLab is now powered by [PlotPyStack](https://github.com/PlotPyStack):
1285
+ * [PythonQwt](https://github.com/PlotPyStack/PythonQwt)
1286
+ * [guidata](https://github.com/PlotPyStack/guidata)
1287
+ * [PlotPy](https://github.com/PlotPyStack/PlotPy)
1288
+ * [opencv-python](https://pypi.org/project/opencv-python/) (algorithms for image processing)
1289
+
1290
+ New reference platform:
1291
+
1292
+ * DataLab is validated on Windows 11 with Python 3.11 and PyQt 5.15
1293
+ * DataLab is also compatible with other OS (Linux, MacOS) and other Python-Qt bindings and versions (Python 3.8-3.12, PyQt6, PySide6)
1294
+
1295
+ New features:
1296
+
1297
+ * DataLab is a platform:
1298
+ * Added support for plugins
1299
+ * Custom processing features available in the "Plugins" menu
1300
+ * Custom I/O features: new file formats can be added to the standard I/O features for signals and images
1301
+ * Custom HDF5 features: new HDF5 file formats can be added to the standard HDF5 import feature
1302
+ * More features to come...
1303
+ * Added remote control feature: DataLab can be controlled remotely via a TCP/IP connection (see [Remote control](https://datalab-platform.com/en/remote_control.html))
1304
+ * Added macro commands: DataLab can be controlled via a macro file (see [Macro commands](https://datalab-platform.com/en/macro_commands.html))
1305
+ * General features:
1306
+ * Added settings dialog box (see "Settings" entry in "File" menu):
1307
+ * General settings
1308
+ * Visualization settings
1309
+ * Processing settings
1310
+ * Etc.
1311
+ * New default layout: signal/image panels are on the right side of the main window, visualization panels are on the left side with a vertical toolbar
1312
+ * Signal/Image features:
1313
+ * Added process isolation: each signal/image is processed in a separate process, so that DataLab does not freeze anymore when processing large signals/images
1314
+ * Added support for groups: signals and images can be grouped together, and operations can be applied to all objects in a group, or between groups
1315
+ * Added warning and error dialogs with detailed traceback links to the source code (warnings may be optionally ignored)
1316
+ * Drastically improved performance when selecting objects
1317
+ * Optimized performance when showing large images
1318
+ * Added support for dropping files on signal/image panel
1319
+ * Added "Analysis parameters" group box to show last result input parameters
1320
+ * Added "Copy titles to clipboard" feature in "Edit" menu
1321
+ * For every single processing feature (operation, processing and analysis menus), the entered parameters (dialog boxes) are stored in cache to be used as defaults the next time the feature is used
1322
+ * Signal processing:
1323
+ * Added support for optional FFT shift (see Settings dialog box)
1324
+ * Image processing:
1325
+ * Added pixel binning operation (X/Y binning factors, operation: sum, mean...)
1326
+ * Added "Distribute on a grid" and "Reset image positions" in operation menu
1327
+ * Added Butterworth filter
1328
+ * Added exposure processing features:
1329
+ * Gamma correction
1330
+ * Logarithmic correction
1331
+ * Sigmoïd correction
1332
+ * Added restoration processing features:
1333
+ * Total variation denoising filter (TV Chambolle)
1334
+ * Bilateral filter (denoising)
1335
+ * Wavelet denoising filter
1336
+ * White Top-Hat denoising filter
1337
+ * Added morphological transforms (disk footprint):
1338
+ * White Top-Hat
1339
+ * Black Top-Hat
1340
+ * Erosion
1341
+ * Dilation
1342
+ * Opening
1343
+ * Closing
1344
+ * Added edge detection features:
1345
+ * Roberts filter
1346
+ * Prewitt filter (vertical, horizontal, both)
1347
+ * Sobel filter (vertical, horizontal, both)
1348
+ * Scharr filter (vertical, horizontal, both)
1349
+ * Farid filter (vertical, horizontal, both)
1350
+ * Laplace filter
1351
+ * Canny filter
1352
+ * Contour detection: added support for polygonal contours (in addition to circle and ellipse contours)
1353
+ * Added circle Hough transform (circle detection)
1354
+ * Added image intensity levels rescaling
1355
+ * Added histogram equalization
1356
+ * Added adaptative histogram equalization
1357
+ * Added blob detection methods:
1358
+ * Difference of Gaussian
1359
+ * Determinant of Hessian method
1360
+ * Laplacian of Gaussian
1361
+ * Blob detection using OpenCV
1362
+ * Result shapes and annotations are now transformed (instead of removed) when executing one of the following operations:
1363
+ * Rotation (arbitrary angle, +90°, -90°)
1364
+ * Symetry (vertical/horizontal)
1365
+ * Added support for optional FFT shift (see Settings dialog box)
1366
+ * Console: added configurable external editor (default: VSCode) to follow the traceback links to the source code