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.
- sigima-1.1.0/MANIFEST.in +4 -0
- {sigima-1.0.4/sigima.egg-info → sigima-1.1.0}/PKG-INFO +8 -6
- {sigima-1.0.4 → sigima-1.1.0}/doc/api/index.rst +4 -0
- sigima-1.1.0/doc/api/viz.rst +166 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/conf.py +10 -1
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/README.txt +2 -2
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/convolution.py +11 -11
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/coordinate_systems.py +1 -1
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/datetime_signals.py +1 -1
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/roi_grid.py +7 -6
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/zero_padding.py +5 -5
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/getting_started/image_creation.py +6 -5
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/getting_started/signal_creation.py +7 -6
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/blob_detection.py +5 -5
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/fabry_perot.py +6 -6
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/laser_beam.py +9 -10
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/spectrum_analysis.py +9 -11
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/api/index.po +6 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/coordinate_systems.po +4 -4
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/getting_started/image_creation.po +2 -2
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/getting_started/signal_creation.po +2 -2
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/index.po +2 -3
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/gitworkflow.po +11 -11
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/release_1.00.po +91 -1
- sigima-1.1.0/doc/locale/fr/LC_MESSAGES/release_notes/release_1.01.po +93 -0
- sigima-1.1.0/doc/locale/fr/LC_MESSAGES/remote_example.po +33 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/requirements.po +18 -8
- sigima-1.1.0/doc/locale/fr/LC_MESSAGES/simple_example.po +35 -0
- sigima-1.1.0/doc/locale/fr/LC_MESSAGES/user_guide/getting_started.po +108 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/index.po +6 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/installation.po +18 -8
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/overview.po +9 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/release_1.00.md +44 -0
- sigima-1.1.0/doc/release_notes/release_1.01.md +31 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/requirements.rst +11 -5
- sigima-1.1.0/doc/simple_example.ipynb +126 -0
- sigima-1.1.0/doc/user_guide/getting_started.rst +66 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/index.rst +8 -1
- {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/overview.rst +7 -0
- {sigima-1.0.4 → sigima-1.1.0}/pyproject.toml +8 -5
- {sigima-1.0.4 → sigima-1.1.0}/requirements.txt +7 -5
- {sigima-1.0.4 → sigima-1.1.0}/sigima/__init__.py +1 -1
- {sigima-1.0.4 → sigima-1.1.0}/sigima/client/stub.py +74 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/config.py +20 -0
- sigima-1.1.0/sigima/locale/fr/LC_MESSAGES/sigima.mo +0 -0
- sigima-1.1.0/sigima/locale/fr/LC_MESSAGES/sigima.po +1606 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/base.py +129 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/object.py +114 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/roi.py +47 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/common.py +6 -6
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/geometry.py +12 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/table.py +12 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/shape.py +27 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/object.py +52 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/roi.py +14 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/validation.py +2 -2
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/scalar_unit_test.py +28 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/guiutils.py +8 -8
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/binning_unit_test.py +4 -7
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/centroid_unit_test.py +4 -7
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/contour_unit_test.py +6 -43
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/enclosingcircle_unit_test.py +6 -19
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/fft2d_unit_test.py +2 -2
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/hough_circle_unit_test.py +6 -13
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/offset_correction_unit_test.py +3 -4
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/peak2d_unit_test.py +4 -6
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/spectrum2d_unit_test.py +1 -1
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/analysis_unit_test.py +4 -6
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/fft1d_unit_test.py +1 -1
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/fitting_unit_test.py +5 -1
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/fwhm_unit_test.py +4 -6
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/__init__.py +9 -11
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/crossing_times_unit_test.py +7 -7
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/plateau_detection_unit_test.py +2 -2
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/pulse_unit_test.py +8 -8
- sigima-1.1.0/sigima/tests/vistools/__init__.py +43 -0
- sigima-1.1.0/sigima/tests/viz/__init__.py +3 -0
- sigima-1.1.0/sigima/tests/viz/viz_api_unit_test.py +163 -0
- sigima-1.1.0/sigima/tests/viz/viz_mpl_unit_test.py +388 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/detection.py +17 -14
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/geometry.py +8 -5
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/preprocessing.py +57 -0
- sigima-1.1.0/sigima/viz/__init__.py +409 -0
- sigima-1.1.0/sigima/viz/viz_mpl.py +790 -0
- sigima-1.0.4/sigima/tests/vistools.py → sigima-1.1.0/sigima/viz/viz_plotpy.py +234 -54
- {sigima-1.0.4 → sigima-1.1.0/sigima.egg-info}/PKG-INFO +8 -6
- {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/SOURCES.txt +18 -2
- {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/requires.txt +7 -5
- sigima-1.0.4/MANIFEST.in +0 -3
- {sigima-1.0.4 → sigima-1.1.0}/LICENSE +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/README.md +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/DataLab-Banner.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/DataLab-Title.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/DataLab.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/Sigima-Frontpage.png +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/Sigima-Title.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/codra.png +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/favicon.ico +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/_static/pypi.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/api/client.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/api/config.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/api/objects.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/api/params.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/api/proc.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/api/tools.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/contribute_code.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/dependencies.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/environment.md +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/gitworkflow.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/guidelines.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/contributing/index.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/README.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/features/datalab_client.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/getting_started/README.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/examples/use_cases/README.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/images/Sigima-Banner.png +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/images/Sigima-Banner.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/images/Sigima.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/images/logos/cea.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/images/logos/codra.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/images/logos/nlnet.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/index.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/convolution.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/datalab_client.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/datetime_signals.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/index.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/roi_grid.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/features/zero_padding.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/getting_started/index.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/blob_detection.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/convolution.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/fabry_perot.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/index.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/laser_beam.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/auto_examples/use_cases/spectrum_analysis.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/contribute_code.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/dependencies.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/environment.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/guidelines.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/contributing/index.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/index.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/index.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/release_0.01.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/release_notes/release_0.02.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/locale/fr/LC_MESSAGES/user_guide/features.po +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/index.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/release_0.01.md +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/release_notes/release_0.02.md +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/remote_example.ipynb +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/features.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/doc/user_guide/installation.rst +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/setup.cfg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/client/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/client/base.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/client/remote.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/client/utils.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/logo/Sigima.svg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/annotations.json +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/exponential_fit.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/gaussian_fit.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/piecewiseexponential_fit.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/polynomial_fit.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_fitting/twohalfgaussian_fit.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/bandwidth.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/boxcar.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/datetime.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/dynamic_parameters.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/fw1e2.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/fwhm.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/multiple_curves.csv +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/noised_saw.mat +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/oscilloscope.csv +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/other/other2/recursive2.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/other/recursive1.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol_dx_dy.csv +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/paracetamol_dy.csv +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/pulse1.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/pulse2.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/simple.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/spectrum.mca +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/square2.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/curve_formats/step.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/fabry-perot1.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/fabry-perot2.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/flower.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/NF 180338201.scor-data +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/binary_image.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/binary_image.png +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/centroid_test.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/complex_image.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/complex_ref_image.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image2.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image_no_unit_no_label.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image_with_nan.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/coordinated_text/image_with_unit.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.csv +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.png +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/fiber.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/gaussian_spot_with_noise.npy +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/laser_spot_array.png +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/mr-brain.dcm +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/noised_gaussian.mat +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/sif_reader/nd_lum_image_no_glue.sif +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/sif_reader/raman1.sif +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/tiling.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/uint16.tiff +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/image_formats/uint8.tiff +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_13.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_18.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_23.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_30.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_35.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_40.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_45.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_50.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_55.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_60.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_65.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_70.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_75.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/data/tests/laser_beam/TEM00_z_80.jpg +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/enums.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/base.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/basename.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/converters.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/objmeta.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/common/textreader.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/convenience.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/enums.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/ftlab.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/base.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/formats.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/image/funcs.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/base.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/formats.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/io/signal/funcs.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/image/creation.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/scalar/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/constants.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/objects/signal/creation.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/params.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/base.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/decorator.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/arithmetic.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/base.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/detection.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/edges.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/exposure.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/extraction.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/filtering.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/fourier.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/geometry.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/mathops.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/measurement.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/morphology.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/noise.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/preprocessing.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/restoration.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/threshold.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/image/transformations.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/analysis.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/arithmetic.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/base.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/extraction.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/features.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/filtering.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/fitting.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/fourier.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/mathops.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/processing.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/signal/stability.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/proc/title_formatting.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/annotations_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/arithmeticparam_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/basename_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/client_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/converters_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/decorator_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/examples_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/func_name_injection_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/kernel_normalization_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/roi_basic_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/roi_geometry_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/scalar_builder_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/shape_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/stat_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/title_formatting_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/tools_coordinates_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/transformations_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/validation_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/common/worker_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/conftest.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/data.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/env.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/helpers.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/blob_detection_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/check_2d_array_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/convolution_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/datatype_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/detection_roi_h5_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/edges_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/exposure_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/filtering_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/geometry_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/imageobj_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/morphology_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/noise_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/operation_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/peak2d_limits_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/profile_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/projections_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/restoration_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi2dparam_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi_advanced_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi_coords_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/roi_grid_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/image/threshold_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/addnewformat_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/annotations_io_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/convenience_funcs_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/coordinated_text_format_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/datetime_csv_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/imageio_formats_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/ioregistry_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/objmeta_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/readobj_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/io/readwriteobj_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/check_1d_arrays_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/convolution_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/datetime_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/filters_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/noise_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/offset_correction_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/operation_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/peakdetection_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/processing_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/pulse/pulse_features_roi_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/replace_x_by_other_y_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/roi_advanced_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/signalobj_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/stability_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tests/signal/uncertainty_unit_test.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/checks.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/coordinates.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/datatypes.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/exposure.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/extraction.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/image/fourier.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/__init__.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/dynamic.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/features.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/filtering.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/fitting.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/fourier.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/interpolation.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/peakdetection.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/pulse.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/scaling.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/stability.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/tools/signal/windowing.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima/worker.py +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/dependency_links.txt +0 -0
- {sigima-1.0.4 → sigima-1.1.0}/sigima.egg-info/top_level.txt +0 -0
sigima-1.1.0/MANIFEST.in
ADDED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sigima
|
|
3
|
-
Version: 1.0
|
|
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
|
|
63
|
-
Requires-Dist: SciPy
|
|
64
|
-
Requires-Dist: scikit-image
|
|
65
|
-
Requires-Dist: pandas
|
|
66
|
-
Requires-Dist: PyWavelets
|
|
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
|
-
"
|
|
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
|
|
7
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
183
|
+
viz.view_images(
|
|
184
184
|
[filtered_image],
|
|
185
185
|
title="Filtered Image with Blob Detection",
|
|
186
186
|
results=blobs,
|