Skip to content

Releases: DataLab-Platform/Sigima

v1.0.0 - First Public Release

28 Oct 14:36
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

The sigima library is part of the DataLab open-source platform.
See DataLab roadmap page for future and past milestones.

sigima 1.0.0

💥 New features and enhancements:

  • Signals to image conversion: New feature to combine multiple signals into a 2D image

    • New computation function signals_to_image() in sigima.proc.signal.arithmetic
    • Takes a list of signals and combines them into an image by stacking Y-arrays
    • Two orientation modes:
      • Rows: Each signal becomes a row in the image (default)
      • Columns: Each signal becomes a column in the image
    • Optional normalization:
      • Supports multiple normalization methods (Z-score, Min-Max, Maximum)
      • Normalizes each signal independently before stacking
      • Useful for visualizing signals with different amplitude ranges
    • Validates that all signals have the same size before combining
    • New parameter class SignalsToImageParam with orientation and normalization settings
    • New enum SignalsToImageOrientation for specifying row/column orientation
    • Comprehensive validation tests for all combinations of parameters
    • Ideal for creating spectrograms, heatmaps, or waterfall displays from signal collections
  • Non-uniform coordinate support for images: Added comprehensive support for non-uniform pixel coordinates

    • ImageObj now supports both uniform and non-uniform coordinate systems:
      • Uniform coordinates: defined by origin (x0, y0) and pixel spacing (dx, dy)
      • Non-uniform coordinates: defined by coordinate arrays (xcoords, ycoords)
    • New methods for coordinate manipulation:
      • set_coords(): Set non-uniform X and Y coordinate arrays
      • is_uniform_coords: Property to check if coordinates are uniform
    • New computation function set_uniform_coords(): Convert non-uniform to uniform coordinates
      • Automatically extracts uniform spacing from non-uniform arrays
      • Handles numerical precision issues from linspace-generated arrays
      • Preserves image data while transforming coordinate system
    • Enhanced calibration() function with polynomial support:
      • Now supports polynomial calibration up to cubic order: dst = a0 + a1*src + a2*src² + a3*src³
      • Parameter class changed from a, b (linear) to a0, a1, a2, a3 (polynomial)
      • Works on X-axis, Y-axis (creating non-uniform coordinates), and Z-axis (data values)
      • Linear calibration is a special case with a2=0, a3=0
      • Automatically handles conversion between uniform and non-uniform coordinate systems
    • Enhanced I/O support:
      • HDF5 format now serializes/deserializes non-uniform coordinates
      • Coordinated text files support non-uniform coordinate arrays
    • All geometric operations updated to handle both coordinate types:
      • Coordinate transformations preserve or create appropriate coordinate system
      • ROI operations work seamlessly with both uniform and non-uniform coordinates
  • DateTime support for signal data: Added comprehensive datetime handling for signal X-axis data

    • Automatic detection and conversion of datetime columns when reading CSV files
      • Detects datetime values in the first or second column (handling index columns)
      • Validates datetime format and ensures reasonable date ranges (post-1900)
      • Converts datetime strings to float timestamps for efficient computation
      • Preserves datetime metadata for proper display and export
    • New SignalObj methods for datetime manipulation:
      • set_x_from_datetime(): Convert datetime objects/strings to signal X data with configurable time units (s, ms, μs, ns, min, h)
      • get_x_as_datetime(): Retrieve X values as datetime objects for display or export
      • is_x_datetime(): Check if signal contains datetime data
    • Enhanced CSV export to preserve datetime format when writing signals with datetime X-axis
    • New constants module (sigima.objects.signal.constants) defining datetime metadata keys and time unit conversion factors
    • Comprehensive unit tests covering datetime conversion, I/O roundtrip, and edge cases
    • Example test data file with real-world temperature/humidity logger data (datetime.txt)
  • New client subpackage: Migrated DataLab client functionality to sigima.client

    • Added sigima.client.remote.SimpleRemoteProxy for XML-RPC communication with DataLab
    • Added sigima.client.base.SimpleBaseProxy as abstract base class for DataLab proxies
    • Included comprehensive unit tests and API documentation
    • Maintains headless design principle (GUI components excluded)
    • Enables remote control of DataLab application from Python scripts and Jupyter notebooks
    • Client functionality is now directly accessible: from sigima import SimpleRemoteProxy
  • New image ROI feature: Added inverse ROI functionality for image ROIs

    • Added inside parameter to BaseSingleImageROI base class, inherited by all image ROI types (PolygonalROI, RectangularROI, CircularROI)
    • When inside=True, ROI represents the region inside the shape (inverted behavior)
    • When inside=False (default), ROI represents the region outside the shape (original behavior)
    • Fully integrated with serialization (to_dict/from_dict) and parameter conversion (to_param/from_param)
    • Signal ROIs (SegmentROI) are unaffected as the concept doesn't apply to 1D intervals
    • Optimal architecture with zero code duplication - all inside functionality implemented once in the base class
    • Individual ROI classes no longer need custom constructors, inheriting directly from base class
  • New image operation:

    • Convolution.
  • New image format support:

    • Coordinated text image files: Added support for reading coordinated text files (.txt extension), similar to the Matris image format.
      • Supports both real and complex-valued image data with optional error images.
      • Automatically handles NaN values in the data.
      • Reads metadata including units (X, Y, Z) and labels from file headers.
  • New image analysis features:

    • Horizontal and vertical projections
      • Compute the horizontal projection profile by summing values along the y-axis (sigima.proc.image.measurement.horizontal_projection).
      • Compute the vertical projection profile by summing values along the x-axis (sigima.proc.image.measurement.vertical_projection).
  • New curve fitting algorithms: Complete curve fitting framework with sigima.tools.signal.fitting module:

    • Core fitting functions: Comprehensive set of curve fitting algorithms for scientific data analysis:
      • linear_fit: Linear regression fitting
      • polynomial_fit: Polynomial fitting with configurable degree
      • gaussian_fit: Gaussian profile fitting for peak analysis
      • lorentzian_fit: Lorentzian profile fitting for spectroscopy
      • voigt_fit: Voigt profile fitting (convolution of Gaussian and Lorentzian profiles)
      • exponential_fit: Single exponential fitting with overflow protection
      • piecewiseexponential_fit: Piecewise exponential (raise-decay) fitting with advanced parameter estimation
      • planckian_fit: Planckian (blackbody radiation) fitting with correct physics implementation
      • twohalfgaussian_fit: Asymmetric peak fitting with separate left/right parameters
      • multilorentzian_fit: Multi-peak Lorentzian fitting for complex spectra
      • sinusoidal_fit: Sinusoidal fitting with FFT-based frequency estimation
      • cdf_fit: Cumulative Distribution Function fitting using error function
      • sigmoid_fit: Sigmoid (logistic) function fitting for S-shaped curves
    • Advanced piecewise exponential (raise-decay) fitting: Enhanced algorithm with:
      • Standard piecewise exponential model: y = a_left*exp(b_left*x) + a_right*exp(b_right*x) + y0
      • Multi-start optimization strategy for robust convergence to global minimum
      • Support for both positive and negative exponential rates (growth and decay components)
      • Comprehensive parameter bounds validation to prevent optimization errors
    • Enhanced asymmetric peak fitting: Advanced twohalfgaussian_fit with:
      • Separate baseline offsets for left and right sides (y0_left, y0_right)
      • Independent amplitude parameters (amp_left, amp_right) for better asymmetric modeling
      • Robust baseline estimation using percentile-based methods
    • Technical features: All fitting functions include:
      • Automatic initial parameter estimation from data characteristics
      • Proper bounds enforcement ensuring optimization stability
      • Comprehensive error handling and parameter validation
      • Consistent dataclass-based parameter structures
      • Full test coverage with synthetic and experimental data validation
  • New common signal/image feature:

    • Added phase (argument) feature to extract the phase information from complex signals or images.
    • Added operation to create complex-valued signal/image from real and imaginary parts.
    • Added operation to create complex-valued signal/image from magnitude and phase.
    • Standard deviation of the selected signals or images (this complements the "Average" feature).
    • Generate new signal or image: Poisson noise.
    • Add noise to the selected signals or images.
      • Gaussian, Poisson or uniform noise can be added.
    • New utility functions to generate file basenames.
    • Deconvolution in the frequency domain.
  • New ROI features:

    • Improved single ROI title handling, using default title based on the index of the ROI when no title is provided.
    • Added combine_with method to ROI objects (SignalROI and ImageROI) to return a new ROI that combines the current ROI with another one (union) and handling duplicate ROIs.
    • Image ROI transformations:
      • Before this change, image...
Read more

v0.2.0 - Preliminary release

07 Jul 17:17

Choose a tag to compare

Bump version to 0.2.0 and update development status to Beta

v0.1.0 - Preliminary release

06 Jul 13:26

Choose a tag to compare

sigima 0.1.0

This first version of the library is the result of the externalization of the signal and image processing features from the DataLab main repository.