sigima 1.0.4__tar.gz → 1.1.0__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 (384) hide show
  1. sigima-1.1.0/MANIFEST.in +4 -0
  2. {sigima-1.0.4/sigima.egg-info → sigima-1.1.0}/PKG-INFO +8 -6
  3. {sigima-1.0.4 → sigima-1.1.0}/doc/api/index.rst +4 -0
  4. sigima-1.1.0/doc/api/viz.rst +166 -0
  5. {sigima-1.0.4 → sigima-1.1.0}/doc/conf.py +10 -1
  6. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/README.txt +2 -2
  7. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/convolution.py +11 -11
  8. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/coordinate_systems.py +1 -1
  9. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/datetime_signals.py +1 -1
  10. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/roi_grid.py +7 -6
  11. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/zero_padding.py +5 -5
  12. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/getting_started/image_creation.py +6 -5
  13. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/getting_started/signal_creation.py +7 -6
  14. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/blob_detection.py +5 -5
  15. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/fabry_perot.py +6 -6
  16. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/laser_beam.py +9 -10
  17. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/spectrum_analysis.py +9 -11
  18. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/api/index.po +6 -0
  19. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/coordinate_systems.po +4 -4
  20. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/getting_started/image_creation.po +2 -2
  21. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/getting_started/signal_creation.po +2 -2
  22. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/index.po +2 -3
  23. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/gitworkflow.po +11 -11
  24. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/release_1.00.po +91 -1
  25. sigima-1.1.0/doc/locale/fr/LC_MESSAGES/release_notes/release_1.01.po +93 -0
  26. sigima-1.1.0/doc/locale/fr/LC_MESSAGES/remote_example.po +33 -0
  27. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/requirements.po +18 -8
  28. sigima-1.1.0/doc/locale/fr/LC_MESSAGES/simple_example.po +35 -0
  29. sigima-1.1.0/doc/locale/fr/LC_MESSAGES/user_guide/getting_started.po +108 -0
  30. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/index.po +6 -0
  31. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/installation.po +18 -8
  32. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/overview.po +9 -0
  33. {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/release_1.00.md +44 -0
  34. sigima-1.1.0/doc/release_notes/release_1.01.md +31 -0
  35. {sigima-1.0.4 → sigima-1.1.0}/doc/requirements.rst +11 -5
  36. sigima-1.1.0/doc/simple_example.ipynb +126 -0
  37. sigima-1.1.0/doc/user_guide/getting_started.rst +66 -0
  38. {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/index.rst +8 -1
  39. {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/overview.rst +7 -0
  40. {sigima-1.0.4 → sigima-1.1.0}/pyproject.toml +8 -5
  41. {sigima-1.0.4 → sigima-1.1.0}/requirements.txt +7 -5
  42. {sigima-1.0.4 → sigima-1.1.0}/sigima/__init__.py +1 -1
  43. {sigima-1.0.4 → sigima-1.1.0}/sigima/client/stub.py +74 -0
  44. {sigima-1.0.4 → sigima-1.1.0}/sigima/config.py +20 -0
  45. sigima-1.1.0/sigima/locale/fr/LC_MESSAGES/sigima.mo +0 -0
  46. sigima-1.1.0/sigima/locale/fr/LC_MESSAGES/sigima.po +1606 -0
  47. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/base.py +129 -0
  48. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/object.py +114 -0
  49. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/roi.py +47 -0
  50. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/common.py +6 -6
  51. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/geometry.py +12 -0
  52. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/table.py +12 -0
  53. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/shape.py +27 -0
  54. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/object.py +52 -0
  55. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/roi.py +14 -0
  56. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/validation.py +2 -2
  57. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/scalar_unit_test.py +28 -0
  58. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/guiutils.py +8 -8
  59. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/binning_unit_test.py +4 -7
  60. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/centroid_unit_test.py +4 -7
  61. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/contour_unit_test.py +6 -43
  62. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/enclosingcircle_unit_test.py +6 -19
  63. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/fft2d_unit_test.py +2 -2
  64. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/hough_circle_unit_test.py +6 -13
  65. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/offset_correction_unit_test.py +3 -4
  66. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/peak2d_unit_test.py +4 -6
  67. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/spectrum2d_unit_test.py +1 -1
  68. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/analysis_unit_test.py +4 -6
  69. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/fft1d_unit_test.py +1 -1
  70. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/fitting_unit_test.py +5 -1
  71. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/fwhm_unit_test.py +4 -6
  72. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/__init__.py +9 -11
  73. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/crossing_times_unit_test.py +7 -7
  74. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/plateau_detection_unit_test.py +2 -2
  75. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/pulse_unit_test.py +8 -8
  76. sigima-1.1.0/sigima/tests/vistools/__init__.py +43 -0
  77. sigima-1.1.0/sigima/tests/viz/__init__.py +3 -0
  78. sigima-1.1.0/sigima/tests/viz/viz_api_unit_test.py +163 -0
  79. sigima-1.1.0/sigima/tests/viz/viz_mpl_unit_test.py +388 -0
  80. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/detection.py +17 -14
  81. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/geometry.py +8 -5
  82. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/preprocessing.py +57 -0
  83. sigima-1.1.0/sigima/viz/__init__.py +409 -0
  84. sigima-1.1.0/sigima/viz/viz_mpl.py +790 -0
  85. sigima-1.0.4/sigima/tests/vistools.py → sigima-1.1.0/sigima/viz/viz_plotpy.py +234 -54
  86. {sigima-1.0.4 → sigima-1.1.0/sigima.egg-info}/PKG-INFO +8 -6
  87. {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/SOURCES.txt +18 -2
  88. {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/requires.txt +7 -5
  89. sigima-1.0.4/MANIFEST.in +0 -3
  90. {sigima-1.0.4 → sigima-1.1.0}/LICENSE +0 -0
  91. {sigima-1.0.4 → sigima-1.1.0}/README.md +0 -0
  92. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/DataLab-Banner.svg +0 -0
  93. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/DataLab-Title.svg +0 -0
  94. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/DataLab.svg +0 -0
  95. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/Sigima-Frontpage.png +0 -0
  96. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/Sigima-Title.svg +0 -0
  97. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/codra.png +0 -0
  98. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/favicon.ico +0 -0
  99. {sigima-1.0.4 → sigima-1.1.0}/doc/_static/pypi.svg +0 -0
  100. {sigima-1.0.4 → sigima-1.1.0}/doc/api/client.rst +0 -0
  101. {sigima-1.0.4 → sigima-1.1.0}/doc/api/config.rst +0 -0
  102. {sigima-1.0.4 → sigima-1.1.0}/doc/api/objects.rst +0 -0
  103. {sigima-1.0.4 → sigima-1.1.0}/doc/api/params.rst +0 -0
  104. {sigima-1.0.4 → sigima-1.1.0}/doc/api/proc.rst +0 -0
  105. {sigima-1.0.4 → sigima-1.1.0}/doc/api/tools.rst +0 -0
  106. {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/contribute_code.rst +0 -0
  107. {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/dependencies.rst +0 -0
  108. {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/environment.md +0 -0
  109. {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/gitworkflow.rst +0 -0
  110. {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/guidelines.rst +0 -0
  111. {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/index.rst +0 -0
  112. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/README.txt +0 -0
  113. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/datalab_client.py +0 -0
  114. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/getting_started/README.txt +0 -0
  115. {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/README.txt +0 -0
  116. {sigima-1.0.4 → sigima-1.1.0}/doc/images/Sigima-Banner.png +0 -0
  117. {sigima-1.0.4 → sigima-1.1.0}/doc/images/Sigima-Banner.svg +0 -0
  118. {sigima-1.0.4 → sigima-1.1.0}/doc/images/Sigima.svg +0 -0
  119. {sigima-1.0.4 → sigima-1.1.0}/doc/images/logos/cea.svg +0 -0
  120. {sigima-1.0.4 → sigima-1.1.0}/doc/images/logos/codra.svg +0 -0
  121. {sigima-1.0.4 → sigima-1.1.0}/doc/images/logos/nlnet.svg +0 -0
  122. {sigima-1.0.4 → sigima-1.1.0}/doc/index.rst +0 -0
  123. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/convolution.po +0 -0
  124. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/datalab_client.po +0 -0
  125. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/datetime_signals.po +0 -0
  126. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/index.po +0 -0
  127. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/roi_grid.po +0 -0
  128. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/zero_padding.po +0 -0
  129. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/getting_started/index.po +0 -0
  130. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/blob_detection.po +0 -0
  131. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/convolution.po +0 -0
  132. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/fabry_perot.po +0 -0
  133. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/index.po +0 -0
  134. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/laser_beam.po +0 -0
  135. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/spectrum_analysis.po +0 -0
  136. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/contribute_code.po +0 -0
  137. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/dependencies.po +0 -0
  138. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/environment.po +0 -0
  139. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/guidelines.po +0 -0
  140. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/index.po +0 -0
  141. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/index.po +0 -0
  142. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/index.po +0 -0
  143. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/release_0.01.po +0 -0
  144. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/release_0.02.po +0 -0
  145. {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/features.po +0 -0
  146. {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/index.rst +0 -0
  147. {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/release_0.01.md +0 -0
  148. {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/release_0.02.md +0 -0
  149. {sigima-1.0.4 → sigima-1.1.0}/doc/remote_example.ipynb +0 -0
  150. {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/features.rst +0 -0
  151. {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/installation.rst +0 -0
  152. {sigima-1.0.4 → sigima-1.1.0}/setup.cfg +0 -0
  153. {sigima-1.0.4 → sigima-1.1.0}/sigima/client/__init__.py +0 -0
  154. {sigima-1.0.4 → sigima-1.1.0}/sigima/client/base.py +0 -0
  155. {sigima-1.0.4 → sigima-1.1.0}/sigima/client/remote.py +0 -0
  156. {sigima-1.0.4 → sigima-1.1.0}/sigima/client/utils.py +0 -0
  157. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/logo/Sigima.svg +0 -0
  158. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/annotations.json +0 -0
  159. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/exponential_fit.txt +0 -0
  160. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/gaussian_fit.txt +0 -0
  161. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/piecewiseexponential_fit.txt +0 -0
  162. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/polynomial_fit.txt +0 -0
  163. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/twohalfgaussian_fit.txt +0 -0
  164. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/bandwidth.txt +0 -0
  165. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/boxcar.npy +0 -0
  166. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/datetime.txt +0 -0
  167. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/dynamic_parameters.txt +0 -0
  168. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/fw1e2.txt +0 -0
  169. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/fwhm.txt +0 -0
  170. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/multiple_curves.csv +0 -0
  171. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/noised_saw.mat +0 -0
  172. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/oscilloscope.csv +0 -0
  173. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/other/other2/recursive2.txt +0 -0
  174. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/other/recursive1.txt +0 -0
  175. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol.npy +0 -0
  176. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol.txt +0 -0
  177. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol_dx_dy.csv +0 -0
  178. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol_dy.csv +0 -0
  179. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/pulse1.npy +0 -0
  180. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/pulse2.npy +0 -0
  181. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/simple.txt +0 -0
  182. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/spectrum.mca +0 -0
  183. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/square2.npy +0 -0
  184. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/step.npy +0 -0
  185. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/fabry-perot1.jpg +0 -0
  186. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/fabry-perot2.jpg +0 -0
  187. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/flower.npy +0 -0
  188. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/NF 180338201.scor-data +0 -0
  189. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/binary_image.npy +0 -0
  190. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/binary_image.png +0 -0
  191. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/centroid_test.npy +0 -0
  192. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/complex_image.txt +0 -0
  193. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/complex_ref_image.txt +0 -0
  194. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image.txt +0 -0
  195. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image2.txt +0 -0
  196. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image_no_unit_no_label.txt +0 -0
  197. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image_with_nan.txt +0 -0
  198. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image_with_unit.txt +0 -0
  199. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.csv +0 -0
  200. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.jpg +0 -0
  201. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.png +0 -0
  202. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.txt +0 -0
  203. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/gaussian_spot_with_noise.npy +0 -0
  204. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/laser_spot_array.png +0 -0
  205. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/mr-brain.dcm +0 -0
  206. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/noised_gaussian.mat +0 -0
  207. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/sif_reader/nd_lum_image_no_glue.sif +0 -0
  208. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/sif_reader/raman1.sif +0 -0
  209. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/tiling.txt +0 -0
  210. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/uint16.tiff +0 -0
  211. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/uint8.tiff +0 -0
  212. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_13.jpg +0 -0
  213. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_18.jpg +0 -0
  214. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_23.jpg +0 -0
  215. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_30.jpg +0 -0
  216. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_35.jpg +0 -0
  217. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_40.jpg +0 -0
  218. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_45.jpg +0 -0
  219. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_50.jpg +0 -0
  220. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_55.jpg +0 -0
  221. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_60.jpg +0 -0
  222. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_65.jpg +0 -0
  223. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_70.jpg +0 -0
  224. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_75.jpg +0 -0
  225. {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_80.jpg +0 -0
  226. {sigima-1.0.4 → sigima-1.1.0}/sigima/enums.py +0 -0
  227. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/__init__.py +0 -0
  228. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/base.py +0 -0
  229. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/__init__.py +0 -0
  230. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/basename.py +0 -0
  231. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/converters.py +0 -0
  232. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/objmeta.py +0 -0
  233. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/textreader.py +0 -0
  234. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/convenience.py +0 -0
  235. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/enums.py +0 -0
  236. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/ftlab.py +0 -0
  237. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/__init__.py +0 -0
  238. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/base.py +0 -0
  239. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/formats.py +0 -0
  240. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/funcs.py +0 -0
  241. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/__init__.py +0 -0
  242. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/base.py +0 -0
  243. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/formats.py +0 -0
  244. {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/funcs.py +0 -0
  245. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/__init__.py +0 -0
  246. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/__init__.py +0 -0
  247. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/creation.py +0 -0
  248. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/__init__.py +0 -0
  249. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/__init__.py +0 -0
  250. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/constants.py +0 -0
  251. {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/creation.py +0 -0
  252. {sigima-1.0.4 → sigima-1.1.0}/sigima/params.py +0 -0
  253. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/__init__.py +0 -0
  254. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/base.py +0 -0
  255. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/decorator.py +0 -0
  256. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/__init__.py +0 -0
  257. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/arithmetic.py +0 -0
  258. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/base.py +0 -0
  259. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/detection.py +0 -0
  260. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/edges.py +0 -0
  261. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/exposure.py +0 -0
  262. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/extraction.py +0 -0
  263. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/filtering.py +0 -0
  264. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/fourier.py +0 -0
  265. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/geometry.py +0 -0
  266. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/mathops.py +0 -0
  267. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/measurement.py +0 -0
  268. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/morphology.py +0 -0
  269. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/noise.py +0 -0
  270. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/preprocessing.py +0 -0
  271. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/restoration.py +0 -0
  272. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/threshold.py +0 -0
  273. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/transformations.py +0 -0
  274. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/__init__.py +0 -0
  275. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/analysis.py +0 -0
  276. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/arithmetic.py +0 -0
  277. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/base.py +0 -0
  278. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/extraction.py +0 -0
  279. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/features.py +0 -0
  280. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/filtering.py +0 -0
  281. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/fitting.py +0 -0
  282. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/fourier.py +0 -0
  283. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/mathops.py +0 -0
  284. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/processing.py +0 -0
  285. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/stability.py +0 -0
  286. {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/title_formatting.py +0 -0
  287. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/__init__.py +0 -0
  288. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/__init__.py +0 -0
  289. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/annotations_unit_test.py +0 -0
  290. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/arithmeticparam_unit_test.py +0 -0
  291. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/basename_unit_test.py +0 -0
  292. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/client_unit_test.py +0 -0
  293. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/converters_unit_test.py +0 -0
  294. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/decorator_unit_test.py +0 -0
  295. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/examples_unit_test.py +0 -0
  296. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/func_name_injection_unit_test.py +0 -0
  297. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/kernel_normalization_unit_test.py +0 -0
  298. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/roi_basic_unit_test.py +0 -0
  299. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/roi_geometry_unit_test.py +0 -0
  300. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/scalar_builder_unit_test.py +0 -0
  301. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/shape_unit_test.py +0 -0
  302. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/stat_unit_test.py +0 -0
  303. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/title_formatting_unit_test.py +0 -0
  304. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/tools_coordinates_unit_test.py +0 -0
  305. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/transformations_unit_test.py +0 -0
  306. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/validation_unit_test.py +0 -0
  307. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/worker_unit_test.py +0 -0
  308. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/conftest.py +0 -0
  309. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/data.py +0 -0
  310. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/env.py +0 -0
  311. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/helpers.py +0 -0
  312. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/__init__.py +0 -0
  313. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/blob_detection_unit_test.py +0 -0
  314. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/check_2d_array_unit_test.py +0 -0
  315. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/convolution_unit_test.py +0 -0
  316. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/datatype_unit_test.py +0 -0
  317. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/detection_roi_h5_unit_test.py +0 -0
  318. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/edges_unit_test.py +0 -0
  319. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/exposure_unit_test.py +0 -0
  320. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/filtering_unit_test.py +0 -0
  321. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/geometry_unit_test.py +0 -0
  322. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/imageobj_unit_test.py +0 -0
  323. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/morphology_unit_test.py +0 -0
  324. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/noise_unit_test.py +0 -0
  325. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/operation_unit_test.py +0 -0
  326. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/peak2d_limits_unit_test.py +0 -0
  327. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/profile_unit_test.py +0 -0
  328. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/projections_unit_test.py +0 -0
  329. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/restoration_unit_test.py +0 -0
  330. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi2dparam_unit_test.py +0 -0
  331. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi_advanced_unit_test.py +0 -0
  332. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi_coords_unit_test.py +0 -0
  333. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi_grid_unit_test.py +0 -0
  334. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/threshold_unit_test.py +0 -0
  335. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/__init__.py +0 -0
  336. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/addnewformat_unit_test.py +0 -0
  337. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/annotations_io_unit_test.py +0 -0
  338. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/convenience_funcs_unit_test.py +0 -0
  339. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/coordinated_text_format_unit_test.py +0 -0
  340. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/datetime_csv_unit_test.py +0 -0
  341. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/imageio_formats_test.py +0 -0
  342. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/ioregistry_unit_test.py +0 -0
  343. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/objmeta_unit_test.py +0 -0
  344. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/readobj_unit_test.py +0 -0
  345. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/readwriteobj_unit_test.py +0 -0
  346. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/__init__.py +0 -0
  347. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/check_1d_arrays_unit_test.py +0 -0
  348. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/convolution_unit_test.py +0 -0
  349. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/datetime_unit_test.py +0 -0
  350. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/filters_unit_test.py +0 -0
  351. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/noise_unit_test.py +0 -0
  352. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/offset_correction_unit_test.py +0 -0
  353. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/operation_unit_test.py +0 -0
  354. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/peakdetection_unit_test.py +0 -0
  355. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/processing_unit_test.py +0 -0
  356. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/pulse_features_roi_unit_test.py +0 -0
  357. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/replace_x_by_other_y_unit_test.py +0 -0
  358. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/roi_advanced_unit_test.py +0 -0
  359. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/signalobj_unit_test.py +0 -0
  360. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/stability_unit_test.py +0 -0
  361. {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/uncertainty_unit_test.py +0 -0
  362. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/__init__.py +0 -0
  363. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/checks.py +0 -0
  364. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/coordinates.py +0 -0
  365. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/datatypes.py +0 -0
  366. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/__init__.py +0 -0
  367. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/exposure.py +0 -0
  368. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/extraction.py +0 -0
  369. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/fourier.py +0 -0
  370. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/__init__.py +0 -0
  371. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/dynamic.py +0 -0
  372. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/features.py +0 -0
  373. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/filtering.py +0 -0
  374. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/fitting.py +0 -0
  375. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/fourier.py +0 -0
  376. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/interpolation.py +0 -0
  377. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/peakdetection.py +0 -0
  378. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/pulse.py +0 -0
  379. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/scaling.py +0 -0
  380. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/stability.py +0 -0
  381. {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/windowing.py +0 -0
  382. {sigima-1.0.4 → sigima-1.1.0}/sigima/worker.py +0 -0
  383. {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/dependency_links.txt +0 -0
  384. {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/top_level.txt +0 -0
@@ -0,0 +1,4 @@
1
+ graft doc
2
+ graft sigima/locale
3
+ include CONTRIBUTING.md
4
+ include requirements.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sigima
3
- Version: 1.0.4
3
+ Version: 1.1.0
4
4
  Summary: Scientific computing engine for 1D signals and 2D images, part of the DataLab open-source platform.
5
5
  Author-email: Pierre Raybaut <p.raybaut@codra.fr>
6
6
  Maintainer-email: DataLab Platform Developers <p.raybaut@codra.fr>
@@ -59,11 +59,11 @@ Requires-Python: <4,>=3.9
59
59
  Description-Content-Type: text/markdown
60
60
  License-File: LICENSE
61
61
  Requires-Dist: guidata>=3.13
62
- Requires-Dist: NumPy>=1.22
63
- Requires-Dist: SciPy>=1.10.1
64
- Requires-Dist: scikit-image>=0.19.2
65
- Requires-Dist: pandas>=1.4
66
- Requires-Dist: PyWavelets>=1.2
62
+ Requires-Dist: NumPy<2.5,>=1.22
63
+ Requires-Dist: SciPy<1.17,>=1.10.1
64
+ Requires-Dist: scikit-image<0.27,>=0.19.2
65
+ Requires-Dist: pandas<3.0,>=1.4
66
+ Requires-Dist: PyWavelets<2.0,>=1.2
67
67
  Requires-Dist: packaging>=21.3
68
68
  Requires-Dist: typing-extensions>=4.0
69
69
  Requires-Dist: makefun>=1.13.1
@@ -81,12 +81,14 @@ Requires-Dist: sphinx; extra == "doc"
81
81
  Requires-Dist: sphinx-gallery; extra == "doc"
82
82
  Requires-Dist: sphinx_intl; extra == "doc"
83
83
  Requires-Dist: myst_parser; extra == "doc"
84
+ Requires-Dist: myst-nb; extra == "doc"
84
85
  Requires-Dist: sphinx_design; extra == "doc"
85
86
  Requires-Dist: sphinx-copybutton; extra == "doc"
86
87
  Requires-Dist: pydata-sphinx-theme; extra == "doc"
87
88
  Requires-Dist: qtpy; extra == "doc"
88
89
  Requires-Dist: PyQt5; extra == "doc"
89
90
  Requires-Dist: plotpy; extra == "doc"
91
+ Requires-Dist: matplotlib; extra == "doc"
90
92
  Requires-Dist: opencv-python-headless>=4.8.1.78; extra == "doc"
91
93
  Provides-Extra: test
92
94
  Requires-Dist: pytest; extra == "test"
@@ -30,6 +30,9 @@ The public Application Programming Interface (API) of Sigima offers a set of fun
30
30
  * - :mod:`sigima.client`
31
31
  - Client interface for connecting to DataLab application through XML-RPC protocol, providing remote control capabilities for signal and image processing workflows.
32
32
 
33
+ * - :mod:`sigima.viz`
34
+ - Visualization tools for interactive display of signal and image objects, supporting PlotPy and Matplotlib backends for testing, debugging, and Jupyter notebook analysis.
35
+
33
36
 
34
37
  .. toctree::
35
38
  :maxdepth: 2
@@ -41,3 +44,4 @@ The public Application Programming Interface (API) of Sigima offers a set of fun
41
44
  proc
42
45
  config
43
46
  client
47
+ viz
@@ -0,0 +1,166 @@
1
+ .. _api_viz:
2
+
3
+ :mod:`sigima.viz` --- Visualization Tools
4
+ =========================================
5
+
6
+ .. module:: sigima.viz
7
+
8
+ This module provides visualization utilities for Sigima objects, useful for:
9
+
10
+ - Interactive testing and debugging
11
+ - Data analysis in Jupyter notebooks
12
+ - Quick visual inspection of processing results
13
+
14
+ Backend Selection
15
+ -----------------
16
+
17
+ The module automatically selects between **PlotPy** and **Matplotlib** backends based on availability and configuration settings.
18
+
19
+ The backend selection follows this priority:
20
+
21
+ 1. Environment variable ``SIGIMA_VIZ_BACKEND`` (if set)
22
+ 2. Configuration option :attr:`sigima.config.options.viz_backend`
23
+ 3. Auto-detection (PlotPy preferred, Matplotlib as fallback)
24
+
25
+ Backend selection logic:
26
+
27
+ - ``"auto"``: Try PlotPy first, fall back to Matplotlib
28
+ - ``"plotpy"``: Use PlotPy (raise :class:`ImportError` if not available)
29
+ - ``"matplotlib"``: Use Matplotlib (raise :class:`ImportError` if not available)
30
+
31
+ .. rubric:: Configuring the Backend
32
+
33
+ Using environment variable:
34
+
35
+ .. code-block:: python
36
+
37
+ import os
38
+ os.environ["SIGIMA_VIZ_BACKEND"] = "matplotlib" # Before importing sigima.viz
39
+
40
+ from sigima import viz
41
+ # Now uses Matplotlib backend
42
+
43
+ Using configuration option:
44
+
45
+ .. code-block:: python
46
+
47
+ from sigima.config import options
48
+ options.viz_backend.set("plotpy")
49
+
50
+ from sigima import viz
51
+ # Now uses PlotPy backend
52
+
53
+ Module Attributes
54
+ -----------------
55
+
56
+ .. py:data:: BACKEND_NAME
57
+ :type: str
58
+
59
+ Name of the currently selected backend: ``"plotpy"`` or ``"matplotlib"``.
60
+
61
+ .. py:data:: BACKEND_SOURCE
62
+ :type: str
63
+
64
+ How the backend was selected: ``"env"``, ``"config"``, or ``"auto"``.
65
+
66
+ Quick Start
67
+ -----------
68
+
69
+ .. code-block:: python
70
+
71
+ from sigima import viz
72
+ import sigima.proc.signal as sips
73
+ from sigima.tests.data import get_test_signal
74
+
75
+ # Load a test signal
76
+ signal = get_test_signal("paracetamol.txt")
77
+
78
+ # Apply some processing
79
+ filtered = sips.moving_average(signal, n=10)
80
+
81
+ # View the results
82
+ viz.view_curves([signal, filtered], title="Signal Processing")
83
+
84
+ Viewing Functions
85
+ -----------------
86
+
87
+ These functions display Sigima objects (:class:`~sigima.objects.SignalObj` and :class:`~sigima.objects.ImageObj`) in interactive dialogs or plots.
88
+
89
+ .. autofunction:: view_curves
90
+
91
+ .. autofunction:: view_images
92
+
93
+ .. autofunction:: view_images_side_by_side
94
+
95
+ .. autofunction:: view_curves_and_images
96
+
97
+ Low-Level Viewing Functions
98
+ ---------------------------
99
+
100
+ These functions display plot items (curves, images) rather than Sigima objects.
101
+
102
+ .. autofunction:: view_curve_items
103
+
104
+ .. autofunction:: view_image_items
105
+
106
+ Creation Functions
107
+ ------------------
108
+
109
+ These functions create plot items that can be passed to the low-level viewing functions.
110
+
111
+ Curve and Image Items
112
+ ~~~~~~~~~~~~~~~~~~~~~
113
+
114
+ .. autofunction:: create_curve
115
+
116
+ .. autofunction:: create_image
117
+
118
+ Annotation Items
119
+ ~~~~~~~~~~~~~~~~
120
+
121
+ .. autofunction:: create_contour_shapes
122
+
123
+ .. autofunction:: create_circle
124
+
125
+ .. autofunction:: create_segment
126
+
127
+ .. autofunction:: create_cursor
128
+
129
+ .. autofunction:: create_range
130
+
131
+ .. autofunction:: create_label
132
+
133
+ .. autofunction:: create_marker
134
+
135
+ Backend Differences
136
+ -------------------
137
+
138
+ The two backends have different capabilities:
139
+
140
+ .. list-table::
141
+ :header-rows: 1
142
+ :widths: 40 30 30
143
+
144
+ * - Feature
145
+ - PlotPy
146
+ - Matplotlib
147
+ * - Interactive zoom/pan
148
+ - ✅ Full Qt tools
149
+ - ✅ Basic toolbar
150
+ * - ROI display
151
+ - ✅ Native support
152
+ - ✅ Patches overlay
153
+ * - Geometry results
154
+ - ✅ Shape annotations
155
+ - ✅ Markers/lines
156
+ * - Linked axes
157
+ - ✅ Native
158
+ - ✅ via ``sharex``/``sharey``
159
+ * - Qt integration
160
+ - ✅ Native
161
+ - ⚠️ Requires Qt backend
162
+ * - Headless/CI
163
+ - ⚠️ Needs display
164
+ - ✅ ``Agg`` backend
165
+
166
+ For automated testing and CI environments, Matplotlib with the ``Agg`` backend is recommended. For interactive data exploration, PlotPy provides a richer experience.
@@ -108,16 +108,25 @@ extensions = [
108
108
  "sphinx.ext.mathjax",
109
109
  "sphinx.ext.githubpages",
110
110
  "sphinx.ext.viewcode",
111
- "myst_parser",
111
+ "myst_nb", # Replaces myst_parser and adds notebook support
112
112
  "sphinx_design",
113
113
  "sphinx_copybutton",
114
114
  "guidata.dataset.autodoc",
115
115
  "sphinx_gallery.gen_gallery",
116
116
  ]
117
+
118
+ # MyST-NB configuration
119
+ nb_execution_mode = "off" # Don't re-execute notebooks during build
120
+ nb_execution_timeout = 180 # Timeout for notebook execution (if enabled)
121
+
117
122
  templates_path = ["_templates"]
118
123
  exclude_patterns = [
119
124
  "sg_execution_times.rst",
120
125
  "**/sg_execution_times.rst",
126
+ # exclude .py and .ipynb files in auto_examples generated by sphinx-gallery
127
+ # this is to prevent sphinx from complaining about duplicate source files
128
+ "auto_examples/**/*.ipynb",
129
+ "auto_examples/**/*.py",
121
130
  ]
122
131
 
123
132
  # Suppress the warning about unpicklable sphinx_gallery_conf
@@ -3,8 +3,8 @@ Examples
3
3
 
4
4
  This section presents a collection of examples demonstrating the capabilities of Sigima.
5
5
  Each example is a standalone Python script that showcases specific features or use cases
6
- of the Sigima library, along with visualizations of the results (using an internal
7
- plotting module `sigima.tests.vistools` based on `PlotPyStack <https://github.com/PlotPyStack>`_).
6
+ of the Sigima library, along with visualizations of the results (using the
7
+ `sigima.viz` module with the `PlotPyStack <https://github.com/PlotPyStack>`_ backend).
8
8
 
9
9
  Of course, some of these examples may seem trivial, but they serve to illustrate how to use
10
10
  various functionalities of Sigima in a clear and concise manner.
@@ -33,7 +33,7 @@ import scipy.signal
33
33
  import sigima.objects
34
34
  import sigima.params
35
35
  import sigima.proc.image
36
- from sigima.tests import vistools
36
+ from sigima import viz
37
37
 
38
38
  # %%
39
39
  # Creating test images and kernels
@@ -70,7 +70,7 @@ print(f"Gaussian kernel shape: {gaussian_kernel.data.shape}")
70
70
  print(f"Identity kernel shape: {identity_kernel.data.shape}")
71
71
 
72
72
  # Display the original image and kernels
73
- vistools.view_images_side_by_side(
73
+ viz.view_images_side_by_side(
74
74
  [original_image, gaussian_kernel, identity_kernel],
75
75
  ["Original Image", "Gaussian Kernel (σ=2.0)", "Identity Kernel"],
76
76
  title="Test Images and Kernels",
@@ -95,7 +95,7 @@ max_diff = np.max(np.abs(convolved_gauss.data - expected_result))
95
95
  print(f"Max difference from scipy: {max_diff:.2e}")
96
96
 
97
97
  # Visualize the convolution process
98
- vistools.view_images_side_by_side(
98
+ viz.view_images_side_by_side(
99
99
  [original_image, gaussian_kernel, convolved_gauss],
100
100
  ["Original Image", "Gaussian Kernel (σ=2.0)", "Convolved Result"],
101
101
  title="Gaussian Convolution Example",
@@ -117,7 +117,7 @@ print("\n✓ Identity convolution completed!")
117
117
  print(f"Max difference from original: {difference:.2e}")
118
118
 
119
119
  # Visualize the identity convolution
120
- vistools.view_images_side_by_side(
120
+ viz.view_images_side_by_side(
121
121
  [original_image, identity_kernel, convolved_identity],
122
122
  ["Original Image", "Identity Kernel", "Convolved with Identity"],
123
123
  "Identity Convolution Example",
@@ -141,7 +141,7 @@ print("\n✓ Identity deconvolution completed!")
141
141
  print(f"Recovery error: {recovery_error:.2e}")
142
142
 
143
143
  # Visualize the deconvolution process
144
- vistools.view_images_side_by_side(
144
+ viz.view_images_side_by_side(
145
145
  [original_image, convolved_identity, deconvolved_identity],
146
146
  ["Original", "Convolved", "Deconvolved"],
147
147
  title="Identity Deconvolution Example",
@@ -175,7 +175,7 @@ print(f"Original image range: [{orig_min:.3f}, {orig_max:.3f}]")
175
175
  print(f"Deconvolved image range: [{deconv_min:.3f}, {deconv_max:.3f}]")
176
176
 
177
177
  # Visualize the full deconvolution process
178
- vistools.view_images_side_by_side(
178
+ viz.view_images_side_by_side(
179
179
  [original_image, deconv_gaussian, large_convolved, large_deconvolved],
180
180
  ["Original", "Gaussian Kernel", "Convolved", "Deconvolved"],
181
181
  title="Gaussian Deconvolution Example",
@@ -209,14 +209,14 @@ conv_large = sigima.proc.image.convolution(original_image, large_sigma)
209
209
  print("\n✓ Multiple kernel comparison completed!")
210
210
 
211
211
  # Show the effect of different sigma values on kernels
212
- vistools.view_images_side_by_side(
212
+ viz.view_images_side_by_side(
213
213
  [small_sigma, medium_sigma, large_sigma],
214
214
  ["Kernel σ=0.8", "Kernel σ=2.0", "Kernel σ=4.0"],
215
215
  title="Gaussian Kernels with Different Sigma Values",
216
216
  )
217
217
 
218
218
  # Show the effect of different sigma values on convolution results
219
- vistools.view_images_side_by_side(
219
+ viz.view_images_side_by_side(
220
220
  [conv_small, conv_medium, conv_large],
221
221
  ["Convolved σ=0.8", "Convolved σ=2.0", "Convolved σ=4.0"],
222
222
  title="Convolution Results with Different Sigma Values",
@@ -246,14 +246,14 @@ sharpen_result.title = "Sharpened"
246
246
  print("\n✓ Custom kernel convolutions completed!")
247
247
 
248
248
  # Visualize custom kernels
249
- vistools.view_images_side_by_side(
249
+ viz.view_images_side_by_side(
250
250
  [edge_kernel, sharpen_kernel],
251
251
  ["Edge Detection Kernel", "Sharpening Kernel"],
252
252
  title="Custom Convolution Kernels",
253
253
  )
254
254
 
255
255
  # Visualize custom kernel results
256
- vistools.view_images_side_by_side(
256
+ viz.view_images_side_by_side(
257
257
  [original_image, edge_result, sharpen_result],
258
258
  ["Original", "Edge Detection", "Sharpened"],
259
259
  title="Custom Kernel Convolution Results",
@@ -281,7 +281,7 @@ print("• Deconvolution can recover original features (with limitations)")
281
281
  print("• Custom kernels enable specialized image processing effects")
282
282
 
283
283
  # Final comparison showing the complete pipeline
284
- dialog10 = vistools.view_images_side_by_side(
284
+ dialog10 = viz.view_images_side_by_side(
285
285
  [original_image, gaussian_kernel, convolved_gauss, large_deconvolved],
286
286
  ["Original", "Gaussian Kernel", "Convolved", "Deconvolved"],
287
287
  title="Complete Convolution-Deconvolution Pipeline",
@@ -29,7 +29,7 @@ that allow you to explore the coordinate system effects in detail.
29
29
  import numpy as np
30
30
 
31
31
  from sigima.objects import create_image
32
- from sigima.tests.vistools import view_images_side_by_side
32
+ from sigima.viz import view_images_side_by_side
33
33
 
34
34
  # %%
35
35
  # Creating test images with uniform coordinates
@@ -33,7 +33,7 @@ import numpy as np
33
33
  from sigima.io.signal.formats import CSVSignalFormat
34
34
  from sigima.objects import SignalObj, create_signal
35
35
  from sigima.objects.signal.constants import TIME_UNIT_FACTORS, VALID_TIME_UNITS
36
- from sigima.tests.vistools import view_curves
36
+ from sigima.viz import view_curves
37
37
 
38
38
  # %%
39
39
  # Creating datetime signals from datetime objects
@@ -30,6 +30,7 @@ that allow you to explore the ROI grid placement in detail.
30
30
 
31
31
  from copy import deepcopy
32
32
 
33
+ from sigima import viz
33
34
  from sigima.io import read_image
34
35
  from sigima.objects import RectangularROI
35
36
  from sigima.proc.image.extraction import (
@@ -38,7 +39,7 @@ from sigima.proc.image.extraction import (
38
39
  extract_roi,
39
40
  generate_image_grid_roi,
40
41
  )
41
- from sigima.tests import helpers, vistools
42
+ from sigima.tests import helpers
42
43
 
43
44
  # %%
44
45
  # Loading a real laser spot array image
@@ -83,7 +84,7 @@ print(
83
84
  )
84
85
 
85
86
  # Display both images
86
- vistools.view_images_side_by_side(
87
+ viz.view_images_side_by_side(
87
88
  [full_image, laser_image],
88
89
  ["Full 6×6 Array", "Extracted 2×2 Sub-region"],
89
90
  title="Extracting a Sub-region for Analysis",
@@ -118,7 +119,7 @@ print(f"\n✓ Generated {len(list(roi_grid))} rectangular ROIs!")
118
119
  print("ROI titles:", [r.title for r in list(roi_grid)])
119
120
 
120
121
  # Display image with ROI overlay
121
- vistools.view_images_side_by_side(
122
+ viz.view_images_side_by_side(
122
123
  [laser_image, image_with_roi],
123
124
  ["2×2 Spot Array", "With ROI Grid"],
124
125
  title="Basic ROI Grid (2×2, Centered)",
@@ -145,7 +146,7 @@ for spot in extracted_spots:
145
146
  print(f" - {spot.title}: {spot.width}×{spot.height} pixels")
146
147
 
147
148
  # Display extracted spots
148
- vistools.view_images_side_by_side(
149
+ viz.view_images_side_by_side(
149
150
  extracted_spots,
150
151
  [spot.title for spot in extracted_spots],
151
152
  title="Extracted Individual Spots",
@@ -190,7 +191,7 @@ print(" - Small ROIs: 40% of cell size")
190
191
  print(" - Shifted ROIs: offset by 10% in X and Y")
191
192
 
192
193
  # Display the different configurations
193
- vistools.view_images_side_by_side(
194
+ viz.view_images_side_by_side(
194
195
  [image_with_roi, image_large, image_small, image_shifted],
195
196
  ["Default (75%)", "Large (90%)", "Small (40%)", "Shifted (+10%)"],
196
197
  title="ROI Size and Position Variations",
@@ -227,7 +228,7 @@ print("Increasing direction (first 4 ROIs):", [r.title for r in list(roi_inc)[:4
227
228
  print("Decreasing direction (first 4 ROIs):", [r.title for r in list(roi_dec)[:4]])
228
229
 
229
230
  # Display direction variations
230
- vistools.view_images_side_by_side(
231
+ viz.view_images_side_by_side(
231
232
  [image_inc, image_dec],
232
233
  ["Increasing Direction", "Decreasing Direction"],
233
234
  title="ROI Direction Labels",
@@ -25,8 +25,8 @@ import numpy as np
25
25
 
26
26
  import sigima.params
27
27
  import sigima.proc.signal as sips
28
+ from sigima import viz
28
29
  from sigima.objects import create_signal
29
- from sigima.tests import vistools
30
30
 
31
31
  # %%
32
32
  # Create a test signal
@@ -49,7 +49,7 @@ signal = create_signal(
49
49
 
50
50
  print(f"Original signal: {n_points} points")
51
51
 
52
- vistools.view_curves(signal, title="Original Signal")
52
+ viz.view_curves(signal, title="Original Signal")
53
53
 
54
54
  # %%
55
55
  # Zero-padding with "next_pow2" strategy
@@ -91,7 +91,7 @@ print(f"Padded signal: {padded_size} points (power of 2: {power_of_2})")
91
91
  # -----------------------------------
92
92
  # The padded signal has zeros appended at the end.
93
93
 
94
- vistools.view_curves([signal, padded_signal], title="Original vs Zero-Padded Signal")
94
+ viz.view_curves([signal, padded_signal], title="Original vs Zero-Padded Signal")
95
95
 
96
96
  # %%
97
97
  # FFT comparison: improved frequency resolution
@@ -110,7 +110,7 @@ fft_padded.title = f"FFT Zero-Padded ({fft_padded.y.size} bins)"
110
110
  print(f"Original FFT: {fft_original.y.size} frequency bins")
111
111
  print(f"Padded FFT: {fft_padded.y.size} frequency bins")
112
112
 
113
- vistools.view_curves([fft_original, fft_padded], title="FFT: Original vs Zero-Padded")
113
+ viz.view_curves([fft_original, fft_padded], title="FFT: Original vs Zero-Padded")
114
114
 
115
115
  # %%
116
116
  # Using different strategies
@@ -160,4 +160,4 @@ for location in PadLocation1D:
160
160
  results.append(result)
161
161
  print(f"Location '{location.value}': x=[{result.x[0]:.4f}, {result.x[-1]:.4f}]")
162
162
 
163
- vistools.view_curves(results, title="Padding Location Comparison")
163
+ viz.view_curves(results, title="Padding Location Comparison")
@@ -16,7 +16,7 @@ There are three primary methods to create images in Sigima:
16
16
  Each method has its use cases, and Sigima provides a consistent interface for working
17
17
  with data regardless of its origin.
18
18
 
19
- For visualization, we use helper functions from the ``sigima.tests.vistools`` module.
19
+ For visualization, we use helper functions from the ``sigima.viz`` module.
20
20
  This allows us to focus on Sigima's functionality rather than visualization details.
21
21
  """
22
22
 
@@ -28,7 +28,8 @@ This allows us to focus on Sigima's functionality rather than visualization deta
28
28
  import numpy as np
29
29
 
30
30
  import sigima
31
- from sigima.tests import helpers, vistools
31
+ from sigima import viz
32
+ from sigima.tests import helpers
32
33
 
33
34
  # %%
34
35
  # Method 1: Creating images from synthetic parameters
@@ -87,7 +88,7 @@ print(f" - {gaussian_img.title}: {gaussian_img.data.shape}")
87
88
  print(f" - {ramp_img.title}: {ramp_img.data.shape}")
88
89
 
89
90
  # Visualize synthetic images
90
- vistools.view_images_side_by_side([gaussian_img, ramp_img], title="Synthetic Images")
91
+ viz.view_images_side_by_side([gaussian_img, ramp_img], title="Synthetic Images")
91
92
 
92
93
  # %%
93
94
  # Method 2: Loading images from files
@@ -117,7 +118,7 @@ print(f" - {img_jpeg.title}: {img_jpeg.data.shape}")
117
118
  print(f" - {img_npy.title}: {img_npy.data.shape}")
118
119
 
119
120
  # Visualize images loaded from files
120
- vistools.view_images_side_by_side([img_jpeg, img_npy], title="Images from Files")
121
+ viz.view_images_side_by_side([img_jpeg, img_npy], title="Images from Files")
121
122
 
122
123
  # %%
123
124
  # Method 3: Creating images from NumPy arrays
@@ -161,7 +162,7 @@ print(f" - {img_interf.title}: {img_interf.data.shape}")
161
162
  print(f" - {img_radial.title}: {img_radial.data.shape}")
162
163
 
163
164
  # Visualize images created from NumPy arrays
164
- vistools.view_images_side_by_side([img_interf, img_radial], title="Images from Arrays")
165
+ viz.view_images_side_by_side([img_interf, img_radial], title="Images from Arrays")
165
166
 
166
167
  # %%
167
168
  # Summary
@@ -16,7 +16,7 @@ There are three primary methods to create signals in Sigima:
16
16
  Each method has its use cases, and Sigima provides a consistent interface for working
17
17
  with data regardless of its origin.
18
18
 
19
- For visualization, we use helper functions from the ``sigima.tests.vistools`` module.
19
+ For visualization, we use helper functions from the ``sigima.viz`` module.
20
20
  This allows us to focus on Sigima's functionality rather than visualization details.
21
21
  """
22
22
 
@@ -30,7 +30,8 @@ from pprint import pprint # For pretty-printing metadata
30
30
  import numpy as np
31
31
 
32
32
  import sigima
33
- from sigima.tests import helpers, vistools
33
+ from sigima import viz
34
+ from sigima.tests import helpers
34
35
 
35
36
  # %%
36
37
  # Method 1: Creating signals from synthetic parameters
@@ -90,7 +91,7 @@ print(f" - {signal_synthetic.title}: {signal_synthetic.y.shape[0]} points")
90
91
  print(f" - {signal_lorentzian.title}: {signal_lorentzian.y.shape[0]} points")
91
92
 
92
93
  # Visualize synthetic signals
93
- vistools.view_curves(
94
+ viz.view_curves(
94
95
  [signal_synthetic, signal_lorentzian], title="Method 1: Synthetic Signals"
95
96
  )
96
97
 
@@ -113,7 +114,7 @@ filename = helpers.get_test_fnames("paracetamol.txt")[0]
113
114
  signal_from_file = sigima.read_signal(filename)
114
115
 
115
116
  # Visualize signal loaded from text file
116
- vistools.view_curves(signal_from_file, title="Signal from Text File")
117
+ viz.view_curves(signal_from_file, title="Signal from Text File")
117
118
 
118
119
  # Load another signal from a CSV file with multiple curves
119
120
  csv_file = helpers.get_test_fnames("oscilloscope.csv")[0]
@@ -122,7 +123,7 @@ signals_from_csv = sigima.read_signals(csv_file)
122
123
  signal_from_csv = signals_from_csv[1]
123
124
 
124
125
  # Visualize signal loaded from csv file
125
- vistools.view_curves(signal_from_csv, title="Signal from CSV File")
126
+ viz.view_curves(signal_from_csv, title="Signal from CSV File")
126
127
 
127
128
  print("\n✓ Signals loaded from files")
128
129
  print(f" - {signal_from_file.title}: {signal_from_file.y.shape[0]} points")
@@ -185,7 +186,7 @@ print(f" - {signal_from_array.title}: {signal_from_array.y.shape[0]} points")
185
186
  print(f" - {signal_envelope.title}: {signal_envelope.y.shape[0]} points")
186
187
 
187
188
  # Visualize signals created from NumPy arrays
188
- vistools.view_curves(
189
+ viz.view_curves(
189
190
  [signal_from_array, signal_envelope],
190
191
  title="Method 3: Signals from NumPy Arrays",
191
192
  object_name="signals_from_arrays",
@@ -26,7 +26,7 @@ import skimage.draw
26
26
 
27
27
  import sigima.objects
28
28
  import sigima.proc.image
29
- from sigima.tests import vistools
29
+ from sigima import viz
30
30
 
31
31
  # %%
32
32
  # Generate synthetic test image with known blobs
@@ -76,7 +76,7 @@ print("✓ Test image created successfully!")
76
76
  # to help reducing the impact of GUI code in documentation and let you concentrate in
77
77
  # the analysis
78
78
 
79
- vistools.view_images([original_image], title="Original Test Image with Synthetic Blobs")
79
+ viz.view_images([original_image], title="Original Test Image with Synthetic Blobs")
80
80
 
81
81
  # %%
82
82
  # Image preprocessing - Binning
@@ -93,7 +93,7 @@ print(f"Binned size: {binned_image.data.shape}")
93
93
  print("Binning reduces computational load and can improve blob detection")
94
94
 
95
95
  # Compare original and binned images
96
- vistools.view_images_side_by_side(
96
+ viz.view_images_side_by_side(
97
97
  [original_image, binned_image],
98
98
  titles=["Original Image", "Binned Image (2x2)"],
99
99
  title="Image Binning Comparison",
@@ -114,7 +114,7 @@ filtered_image = sigima.proc.image.moving_median(binned_image, n=filter_size)
114
114
  print(f"\n✓ Moving median filter applied (window size: {filter_size})")
115
115
 
116
116
  # Show progression of preprocessing steps
117
- vistools.view_images_side_by_side(
117
+ viz.view_images_side_by_side(
118
118
  [original_image, binned_image, filtered_image],
119
119
  titles=["Original", "Binned", "Median Filtered"],
120
120
  title="Image Preprocessing Pipeline",
@@ -180,7 +180,7 @@ blobs = sigima.proc.image.blob_opencv(filtered_image, blob_param)
180
180
  print("\n✓ Blob detection completed!")
181
181
  print(f" Number of blobs detected: {len(blobs.coords) if blobs else 0}")
182
182
 
183
- vistools.view_images(
183
+ viz.view_images(
184
184
  [filtered_image],
185
185
  title="Filtered Image with Blob Detection",
186
186
  results=blobs,