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 spectraread_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-loaderpackage is requirednumpydocpackage 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
NDDatasetobjects. As a result, the"preferences"attribute has been removed fromNDDataset.
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
readonlyattribute 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
mergekeyword set to False inread_*calls. read_opus()has been revised and now uses thebrukeropuspackage 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
brukeropuspackage. read_dir()(as well as the equivalentread()) has a new keyword argumentpatternto 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
readonlyattribute ofMetaobjects used to contain dataset metadata.
Dependency updates
- Removed
brukeropusreaderpackage 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 thecanteradependencies, orpip 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_versionscript 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.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
plotmethod. - Add the possibility to use several sets of experimental conditions
in
ActionMassKineticsclass. - 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_topspinto createycoordinates 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
Optimizeclass to perform a least-square fitting. It is based on thescipy.optimize.least_squaresfunction, allowing much faster operation for simple curve fitting - Add the possibility to define user-defined functions in the
Optimizeclass. - 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_csvwhen 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
whitenparameter in theFastICAclass tounit-varianceinstead ofarbitrary-variancefor compatibility with ScikitLearn 1.3 and later - Colormap normalization for
surface,imageandmapplot methods has been changed for consistency with matplotlib default. The former behaviour can be obtained by passing anormparameter to theplotmethod (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(aliasread_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_multiplemethod now accept keyword arguments to change the default plot style of the different spectra.BaselineCorrectionclass 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.BaselineCorrectionis still valid but deprecated.- Three new baseline algorithms have been added to the new Baseline processor:
~spectrochempy.rubberband,~spectrochempy.aslsand~spectrochempy.snip. - Filters has been refactored. A new
Filterprocessor class allows to define various filters and apply them to a dataset. SeeFiltering and Smoothingtutorials andFilterfor details. Note: Backward compatibility is ensured with the previoussmoothandsavgol_filtermethods. - A
whittakerfilter has been added to the~spectrochempy.Filterprocessor class. SeeFiltering and Smoothingtutorials and~spectrochempy.Filterfor details. A method is also available:~spectrochempy.whittaker. - A
~spectrochempy.denoisemethod based on PCA analysis has been added which allows to apply a denoising filter to a 2D dataset. - A
~spectrochempy.despikemethod has been added to the~spectrochempy.Filterprocessor 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
parametersmethod of Analysis configurables is now deprecated in favor ofparams.- The
BaselineCorrectionprocessor has been deprecated in favor of~spectrochempy.Baseline. abc(and its aliasab) method has been deprecated in favor of~spectrochempy.basc.savgol_filtermethod has been deprecated in favor of~spectrochempy.Filterprocessor class or the~spectrochempy.savgolmethod.
- 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
FastICAanalysis 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
datato 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 parametersigdigits\ ). If the data are linear already, nothing is modified. - The rounding of the data is now done in the
Coordclass automatically to at least 2 decimals everytime thedataare modified and during Coord initialisation, unless the parameterboundingis set toFalseduring intialisation. - Issue #647. ActionMassKinetics has been optimized and refactored.
Deprecations
- The
LinearCoordclass is now deprecated and will be removed in a future version. Use theCoordclass 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.readmethod 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_datawhich 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_remotemethod has been removed. Usereadinstead. - The
downloadmethod has been removed. Usereadinstead. - The
copyparameter ofDecompositionmethods has been removed.
Deprecations
- The
used_componentsparameter and attribute ofPCA,NNMF,EFAis replaced byn_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.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.logfile, 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 v0.4.3
NEW FEATURES
- Individual test data files can be automatically downloaded from the Github
spectrochempy_datarepository is not present in the defaultpreferences.datadir. Installing the conda packagespectrochempy_datais 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_stackkeyword 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
pipinstallation (see Issue #402)Make
widgetas 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.
readandread_dirnow ignore non readable files.read_labspecnow 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_versionsmethod 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 - 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.11
Several bugs corrected.
Sample examples now separated in another package/
- Python
Published by fernandezc over 5 years ago