Recent Releases of spectrochempy

spectrochempy - SpectroChemPy v.0.8.1

New Features

This version mainly add new functionalities with reading of SPC format files:

  • read_spc() now supports reading SPC files with multiple spectra
  • read_spc() now supports reading SPC files in old format (Spectra Calc® and Lab Calc®)

Bug Fixes

  • New features listed above fix issues #849 and #771.

- Python
Published by github-actions[bot] about 1 year ago

spectrochempy - SpectroChemPy v.0.8.0

New Features

  • Lazy Import Mechanism: SpectroChemPy now uses a lazy import mechanism to improve startup time.

    • Optimized Import Process: When importing SpectroChemPy, only a minimal set of packages and functions is loaded initially.
    • Additional functionality is loaded on demand when first accessed.

This approach does not reduce the overall loading time but significantly improves the initial import speed. It is particularly beneficial for notebook workflows, where the first execution cell runs much faster.

  • Markersize for PCA score and screeplots customizable. (Feature request #841)

example:

```python

... existing code ...

# ScreePlot
prefs = scp.preferences
prefs.lines.markersize = 7
pca.screeplot()

# Score Plot
prefs.lines.markersize = 10
pca.scoreplot(scores, 1, 2)

```

Dependency Updates

  • lazy-loader package is required
  • numpydoc package has been added to required dependency list.

Breaking Changes

  • Global Preferences: SpectroChemPy preferences are now global, so there is no need to store them in NDDataset objects. As a result, the "preferences" attribute has been removed from NDDataset.

This means that old scripts written like the following:

```python

import spectrochempy as scp

... existing code ...

prefs = X.preferences # where X is an NDDataset, and preferences is an attribute of NDDataset prefs.figure.figsize = (7, 3)

... existing code ... ``` should be modified as follows:

```python

import spectrochempy as scp

... existing code ...

prefs = scp.preferences # Preferences are now accessed directly from the "scp" object prefs.figure.figsize = (7, 3)

... existing code ... ``` * Impact of Lazy Loading on Method Calls: Some methods that were previously accessible as class methods are now only available as API or instance methods. This is because class methods are not loaded until the class is instantiated.

For example, the following will no longer work:

```python

NDDataset.read("something") # ❌ This will no longer work ``` Instead, use one of the following:

```python

scp.read("something") # ✅ API method scp.NDDataset().read("something") # ✅ Instance method ``` Code should be updated accordingly.

- Python
Published by github-actions[bot] about 1 year ago

spectrochempy - SpectroChemPy v.0.7.2

New release 0.7.2

These are the changes in SpectroChemPy-0.7.2

New features

  • The readonly attribute of the Meta object now applies to all nested objects.
  • More concise HTML output in Jupyter notebooks with collapsible sections. Use CSS for styling.
  • The merging behavior of NDDataset objects has been improved. Now, several groups of datasets are returned if files are not compatible. Note that merging is the default. To enforce non-merging of compatible files, use the merge keyword set to False in read_* calls.
  • read_opus() has been revised and now uses the brukeropus package developed by Josh Duran (<https://github.com/joshduran/brukeropus>_). It can read most of the spectra types contained in OPUS files, as reference experiments and not only AB type spectra as previously.
  • Import/Export tutorials have been updated to reflect the new brukeropus package.
  • read_dir() (as well as the equivalent read()) has a new keyword argument pattern to filter files to read in a directory.
  • Text output of the plot() method is now suppressed in Jupyter notebooks, i.e.,

.. code-block:: ipython

ds.plot()

will no longer display the text output of the plot method but the plot alone.

Bug fixes

  • Fix the readonly attribute of Meta objects used to contain dataset metadata.

Dependency updates

  • Removed brukeropusreader package dependency.

Breaking changes

  • The new merging behavior of datasets may require some changes in the notebooks and scripts using read_* methods.

Deprecations

  • The open/save dialog box functionality in read_* methods is deprecated and will be removed in version 0.8. This feature has been removed from the documentation.

- Python
Published by github-actions[bot] about 1 year ago

spectrochempy - SpectroChemPy v.0.7.1

What's new in release v0.7.1

Bug fixes

  • Bug #696. Subtraction/Addition of multicoordinates works transparently
  • Bug #827. The git installation in non-developper usage of spectrochempy is no more needed.

- Python
Published by github-actions[bot] over 1 year ago

spectrochempy - SpectroChemPy v.0.7.0

What's new in revision 0.7.0

These are the changes in SpectroChemPy-0.7.0.

New features

  • Improvement of the installation process using pip. One can now install the package using command like pip install spectrochempy[cantera] to install the package with the cantera the cantera dependencies, or pip install -e ".[dev]" to install the package with the development dependencies and in editable mode.
  • Now support installation on the last version (3.10) of Google Colab.
  • Add a show_version script executable from a terminal.
  • Revision/update of the documentation to improve the user experience.

Bug fixes

  • Bug #777. Now scp.show_version()` works as expected

Dependency updates

  • Major Python compatibility updates:

    • Now supports Python 3.13
    • Minimum Python version increased to 3.10
    • Dropped support for Python 3.9 and below
  • New installation options:

    • Updated [dev], [test], and [docs] extras with latest versions
    • All dependencies now specify minimum versions for better compatibility

Breaking changes

  • Minimum Python version requirement increased to 3.10
  • Several core dependencies require major version updates
  • Installation process changes with new dependency groups

- Python
Published by github-actions[bot] over 1 year ago

spectrochempy - SpectroChemPy v.0.6.10

- Python
Published by github-actions[bot] over 1 year ago

spectrochempy - SpectroChemPy v.0.6.9

Pin pint and numpy version for compatibility Fix issue #758 : serialization error for tuple containing a ndarray

- Python
Published by github-actions[bot] almost 2 years ago

spectrochempy - SpectroChemPy v.0.6.8

New features

  • Compatibility with Python 3.12
  • Add the possibility to pass a colormap normalization to the plot method.
  • Add the possibility to use several sets of experimental conditions in ActionMassKinetics class.
  • Add the possibility to read Thermo high speed series files
  • Add Stejskal-Tanner kernel for 2D IRIS
  • Fancy indexing using location now supported.
  • Add an example for NMR processing of a series of CP-MAS spectra.
  • Add an example for processing NMR relaxation data
  • Add an option to read_topspin to create y coordinates of pseudo-2D NMR spectra from a file (e.g. vdlist ).
  • Add option to plot to add markers on curves
  • Add a new method to the Optimize class to perform a least-square fitting. It is based on the scipy.optimize.least_squares function, allowing much faster operation for simple curve fitting
  • Add the possibility to define user-defined functions in the Optimize class.
  • Traceback are now fully displayed when an error occurs in a script.

Bug fixes

  • Sorting coordinates now work with multi-coordinates axis.
  • Fix a bug when concatenating datasets with multi-coordinates axis.
  • Fix a bug in coordset definition for integration methods.
  • Fix coordinates definitions in Analysis methods.
  • Fix a bug in write_csv when the filename was provided as a string (issue #706)
  • Fix issue #716
  • Fix issue #714 : show versions of dependencies now working

Breaking changes

  • Changed the default QP solver (quadprog -> osqp): The new solver is compatible with python 3.11 and later. Fastness and robustness are improved. The quadprog solver can still be used if available
  • Change the default value of the whiten parameter in the FastICA class to unit-variance instead of arbitrary-variance for compatibility with ScikitLearn 1.3 and later
  • Colormap normalization for surface, image and map plot methods has been changed for consistency with matplotlib default. The former behaviour can be obtained by passing a norm parameter to the plot method (see userguide/plotting).

- Python
Published by github-actions[bot] about 2 years ago

spectrochempy - SpectroChemPy v.0.6.7

New features

  • A new reader has been added: read_wire (alias read_wdf) to read data from the .wdf format (WDF) files produced by the ReniShaw WiRe software. This reader is based on thepywdfreader https://github.com/alchem0x2A/py-wdf-reader`_ package.
  • Added an example for NMR processing.
  • Peak finding now handles dimensions other than x (important when data are transposed, or when working on a slice in dimension other than x)
  • Analysis methods now accept complex input data, but work only on the real part of the data.

Bug fixes

  • Fix a bug when slicing dataset with an array or list of index: Multi-coordinates were not correctly handled.
  • Increase the value of the coordinate linearization condition from 0.1% to 1% spacing variation. (linearization was sometimes lost when slicing)
  • Fix a missing correction for non-negative spectra in MCR-ALS.

- Python
Published by github-actions[bot] almost 3 years ago

spectrochempy - SpectroChemPy v.0.6.6

New features

  • ~spectrochempy.plot_multiple method now accept keyword arguments to change the default plot style of the different spectra.
  • BaselineCorrection class has been renamed into ~spectrochempy.Baseline, and there are changes in the way it is now used. It allows to perform baseline correction on a dataset with multiple algorithms. BaselineCorrection is still valid but deprecated.
  • Three new baseline algorithms have been added to the new Baseline processor: ~spectrochempy.rubberband, ~spectrochempy.asls and ~spectrochempy.snip .
  • Filters has been refactored. A new Filter processor class allows to define various filters and apply them to a dataset. See Filtering and Smoothing tutorials and Filter for details. Note: Backward compatibility is ensured with the previous smooth and savgol_filter methods.
  • A whittaker filter has been added to the ~spectrochempy.Filter processor class. See Filtering and Smoothing tutorials and ~spectrochempy.Filter for details. A method is also available: ~spectrochempy.whittaker.
  • A ~spectrochempy.denoise method based on PCA analysis has been added which allows to apply a denoising filter to a 2D dataset.
  • A ~spectrochempy.despike method has been added to the ~spectrochempy.Filter processor class. It allows to remove spikes from a 1D or 2D dataset. This close issues #688.
  • New examples has been added to the gallery

Bug fixes

  • Docs problems fixed (#687).

Deprecations

  • parameters method of Analysis configurables is now deprecated in favor of params.
  • The BaselineCorrection processor has been deprecated in favor of ~spectrochempy.Baseline .
  • abc (and its alias ab) method has been deprecated in favor of ~spectrochempy.basc.
  • savgol_filter method has been deprecated in favor of ~spectrochempy.Filter processor class or the ~spectrochempy.savgol method.

- Python
Published by github-actions[bot] almost 3 years ago

spectrochempy - SpectroChemPy v.0.6.5

Bug fixes

  • issue #664: wrongly defined xaxis for opus file.
  • issue #668: fix bug with fancy indexing of datasets (fix also #663). Both issues were related to the linearization of the coordinates, which was not done correctly in some cases. This is now fixed.

- Python
Published by github-actions[bot] almost 3 years ago

spectrochempy - SpectroChemPy v.0.6.4

What's new in revision 0.6.4.dev

These are the changes in SpectroChemPy-0.6.4.dev. See :ref:release for a full changelog including other versions of SpectroChemPy.

New features

  • add FastICA analysis module.

Bug fixes

  • Issue #643. Conversion from linear to non linear coord was not working properly. This was due to the use of the LinearCoord class which is now deprecated and replaced by Coord.
  • File logging has been removed due to its bad impact on the performance.

Breaking changes

  • The behavior of Coord has been slightly modified. During initialisation of a Coord object, a try is given to convert the data to a linear array, with values evenly spaced. If this is not possible, the data are kept as they are but rounded to a number of significant digits (given by the parameter sigdigits\ ). If the data are linear already, nothing is modified.
  • The rounding of the data is now done in the Coord class automatically to at least 2 decimals everytime the data are modified and during Coord initialisation, unless the parameter bounding is set to False during intialisation.
  • Issue #647. ActionMassKinetics has been optimized and refactored.

Deprecations

  • The LinearCoord class is now deprecated and will be removed in a future version. Use the Coord class instead which performs now an automatic linearization of the data.

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.6.3

What’s new in revision 0.6.3

New features

  • add nnl and pnnls solvers to MCRALS

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.6.2

What's new in revision 0.6.2

These are the changes in SpectroChemPy-0.6.2.

New features

  • PLSRegression (Partial Least Squares regression) method added.

  • read method now handle any url pointing to a spectrochempy readeable file. An url to a compressed (zip) files are also accepted.

Example:

.. code-block:: ipython

  lst = scp.read("https://eigenvector.com/wp-content/uploads/2019/06/corn.mat_.zip")
  # lst contains 7 NDDatasets,, display the last
  lst[-1].plot()
  • Automatically download the github repository spectrochempy_data which contains the files for the examples and tests. The files are downloaded in the directory scp.preferences.datadir. When the program is run for the first time, the availability of the files may take several minutes, depending on the quality of the internet connection.

Bug fixes

  • Documentation information for new releases.

Breaking changes

  • The read_remote method has been removed. Use read instead.
  • The download method has been removed. Use read instead.
  • The copy parameter of Decomposition methods has been removed.

Deprecations

  • The used_components parameter and attribute of PCA, NNMF, EFA is replaced by n_components

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.6.1

Mainly a fix of the last release regarding the docs

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.6.0

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.5.5

What's new in revision 0.5.5

These are the changes in SpectroChemPy-0.5.5. See :ref:release for a full changelog including other versions of SpectroChemPy.

New features

  • PCA score plot labelling (issue #543).
  • Improved loading time
  • Plot2D accept a color argument. In addition to cmap=None, it produces single color 2D plot. It also accept a line style parameters. e.g.:

nd.plot(cmap=None, color='red', ls='dashed')

produces a dashed red stack plot.

Bug fixes

  • Masks handling.
  • Multicoordinates slicing work correctly.
  • Removed some deprecation warnings from numpy library.
  • Pin ipywidgets to avoid runtime errors until ipywidgets is fixed.

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.5.4

Hotfix for documentation and update checking

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.5.3

What's new in revision 0.5.3

These are the changes in SpectroChemPy-0.5.3. See :ref:release for a full changelog including other versions of SpectroChemPy.

New features

  • EFA speed optimization.

Bug fixes

  • many code fixes.
  • fix some examples.
  • code cleaning.

- Python
Published by github-actions[bot] about 3 years ago

spectrochempy - SpectroChemPy v.0.5.2

What's new in revision 0.5.2

These are the changes in SpectroChemPy-0.5.2. See :ref:release for a full changelog including other versions of SpectroChemPy.

New features ~~~~~~~~~~~~

  • Compatibility with matplotlib 3.7
  • Refactoring of the configuration files

Bug fixes ~~~~~~~~~

  • Fix: problems related to a wrong configuration of the logger. If you still have errors or strange behavior in the console log output or in the <HOME/.spectrochempy/logs/spectrochempy.log file, it may be necessary to delete the <HOME/.spectrochempy/logs> and <HOME/.spectrochempy/config> files.

- Python
Published by github-actions[bot] over 3 years ago

spectrochempy - SpectroChemPy v.0.5.1

- Python
Published by github-actions[bot] over 3 years ago

spectrochempy - SpectroChemPy v.0.5.0

- Python
Published by github-actions[bot] over 3 years ago

spectrochempy - SpectroChemPy v.0.4.10

- Python
Published by github-actions[bot] over 3 years ago

spectrochempy - SpectroChemPy v.0.4.9

- Python
Published by github-actions[bot] over 3 years ago

spectrochempy - SpectroChemPy v.0.4.8

- Python
Published by github-actions[bot] over 3 years ago

spectrochempy - SpectroChemPy v.0.4.7

- Python
Published by github-actions[bot] about 4 years ago

spectrochempy - SpectroChemPy v.0.4.6

- Python
Published by github-actions[bot] about 4 years ago

spectrochempy -

- Python
Published by fernandezc about 4 years ago

spectrochempy - SpectroChemPy v.0.4.4

- Python
Published by fernandezc about 4 years ago

spectrochempy - SpectroChemPy v0.4.3

NEW FEATURES

  • Individual test data files can be automatically downloaded from the Github spectrochempy_data repository is not present in the default preferences.datadir. Installing the conda package spectrochempy_data is still possible but not necessary.

- Python
Published by fernandezc about 4 years ago

spectrochempy - SpectroChemPy v.0.4.2

version 0.4.2

NEW FEATURES

  • Concatenate and stack:
    • force_stack keyword in concatenate() now deprecated.
    • stack() method now generates a new dim, even if a dim of size one in present

BUG FIXED:

  • issue #417
  • Transmittance and absorbance units now correctly handled.

- Python
Published by fernandezc about 4 years ago

spectrochempy - SpectroChemPy v.0.4.1

version 0.4.1

BREAKING CHANGES

  • Requires pint >= 0.18

NEW FEATURES

  • Compatibility with Python 3.10
    • Spectrochempy is tested with 3.10, 3.9 version of python, and on Windows and linux platform. Older versions > 3.6 of python or different platforms may still work, but with no guaranty.

BUG FIXED

  • Transmittance and absorbance units now correctly handled.
  • Save dialog selection.

- Python
Published by fernandezc about 4 years ago

spectrochempy - SpectroChemPy v.0.3.3

version 0.3.3

NEW FEATURES

  • Remove the dependency to nmrglue.

  • Improve pip installation (see Issue #402)

  • Make widget as the default backend for matplotlib plots.

  • Add BaselineCorrector() widget.

  • Add download_nist_ir() to download IR spectra from NIST/webbook.

  • Allow extracting background interferogram or spectrum in read_srs().

  • Allow extracting sample and background interferograms in read_spa().

BUGS FIXED

  • Fix bug in read_srs.

  • Fix gettingstarted/overview.py after IRIS refactoring.

- Python
Published by fernandezc about 4 years ago

spectrochempy - SpectroChemPy v.0.3.2

NEW FEATURES

  • Add a log file (rotating)

BUGS FIXED

  • TQDM progress bar

  • Fix #360 : write a dataset with a specified filename do not open a dialog except if the file already exists and if confirm=True is set.

  • read and read_dir now ignore non readable files.

  • read_labspec now ignore non-labspec .txt files.

  • Fix #296 : IRIS and quadprog version.

  • Fix #375 : plotting issues.

- Python
Published by fernandezc over 4 years ago

spectrochempy - Spectrochempy v.0.3.1

Version 0.3.1

NEW FEATURES

  • Added a show_versions method in the API.

  • Improved bug reports and pull request templates. Requests for help are now made in github discussions.

  • Docs API reference has been hopefully improved.

- Python
Published by fernandezc over 4 years ago

spectrochempy - SpectroChemPy v.0.3.0

Version 0.3.0

NEW FEATURES

  • Package refactoring which may break previous behaviour. This is why we updated the minor version number from 0.2 to 0.3.

  • GRAMS/Thermo Galactic .spc file reader.

  • Fitting models updated and tested.

BUGS FIXED

  • Bug in check_updates preventing working without connection.

- Python
Published by fernandezc over 4 years ago

spectrochempy - SpectroChemPy v.0.2.23

- Python
Published by fernandezc over 4 years ago

spectrochempy - 0.2.22

What's Changed

  • Many fix and code cleaning.

- Python
Published by fernandezc over 4 years ago

spectrochempy - 0.2.21

What's Changed

  • FIX: Qt Dialogs This is related to issue #198, as tk dialogs can be replaced by Qt when working with a terminal.

  • FIX: corrected custom exception

  • FIX: handling of the optional Cantera package

  • MAINT: xarray dependency

  • FIX: errors due to units for peakfinding

  • FIX: test find_peaks

  • FIX: NDArray constructor now accept a homogeneous list of quantities as data input. Units are set accordingly

  • DEV: Indexing or slicing a NDArray with quantities is now possible.

  • DEV: add a new decorator allowing removing units for args of functions

  • DEV: mpl Axes are subclassed in order to accept quantities for method arguments

- Python
Published by fernandezc over 4 years ago

spectrochempy - 0.2.21rc1

What's Changed

  • FIX: Qt Dialogs. This is related to issue #198, as tk dialogs can be replaced by Qt when working with a terminal.
  • FIX: corrected custom exception
  • FIX: handling of the optional Cantera package
  • FIX: errors due to units for peakfinding

- Python
Published by fernandezc over 4 years ago

spectrochempy - SpectroChemPy v.0.2.20

What's Changed

  • Fix doc display problems
  • Correction GitHub workflows for Doc building
  • Refactoring workflow

- Python
Published by fernandezc over 4 years ago

spectrochempy - SpectroChemPy v.0.2.18

What's Changed

FIX issue #310 FIX: the order of multicoordinates for a single dimension FIX: integrate methods to avoid code-climate warnings (duplicate code) FIX: Documentation for the integrate methods Documentation improvement FIX: skipping test_sh under windows Some code revision NNMF revision pip only installation

- Python
Published by fernandezc over 4 years ago

spectrochempy - SpectroChemPy v.0.2.17

NEW FEATURES

  • opus file reader: add filenames as labels.

  • Omnic file reader: Documented more .spa header keys.

BUGS FIXED

  • Compatibility with matplotlib 3.5.

  • Datasets were not properly centered in PCA analysis.

  • Comparing dataset with only labels coordinates was failing.

  • Issue #322 fixed : mean and other API reduce methods were sometimes failing.

New Contributors

  • @Mailaender made their first contribution in https://github.com/spectrochempy/spectrochempy/pull/319

- Python
Published by fernandezc over 4 years ago

spectrochempy - SpectroChemPy v.0.2.16

What\'s new

Version 0.2.16

NEW FEATURES

  • IRIS: Added 1D datasets.

  • IRIS: Added kernel function for diffusion .

  • EFA: Added indication of progress.

  • Cantera: Added differential evolution algorithm in cantera utilities.

  • Cantera: Added PFR object in cantera utilities.

  • DOC: Added list of papers citing spectrochempy.

  • Github action workflows to test, build and publish conda package and docs in replacement of Travis CI.

  • Use CodeClimate to show Coverage info

BUGS FIXED

  • IRIS example after modification of readers.

  • IRIS: automatic search of the L-curve corner.

  • MCR-ALS returns the 'soft' concentration matrix.

  • Document building configuration after update of external packages.

  • DOC: fix several broken links.

  • Baseline correction default changed.

  • Compatibility with newest change in Colab

- Python
Published by fernandezc over 4 years ago

spectrochempy - SpectroChemPy v.0.2.15

- Python
Published by fernandezc about 5 years ago

spectrochempy - SpectroChemPy v.0.2.14

- Python
Published by fernandezc over 5 years ago

spectrochempy - SpectroChemPy v.0.2.11

Several bugs corrected.

Sample examples now separated in another package/

- Python
Published by fernandezc over 5 years ago