Import Data in SpectroChemPy

This tutorial shows how to import data in SpectroChemPy (SCPy) .

First, let’s import spectrochempy as scp in the current namespace, so that all spectrochempy commands will be called as scp.method(<method parameters>) .

[1]:
import spectrochempy as scp
  SpectroChemPy's API - v.0.8.2.dev7
©Copyright 2014-2025 - A.Travert & C.Fernandez @ LCS

Generic read command

To read a file containing spectrocopic data or similar, the read method can be used. This method will try to guess the file format based on the file extension.

[2]:
X = scp.read("wodger.spg")
Running on GitHub Actions
MPL Configuration directory: /home/runner/.config/matplotlib
Stylelib directory: /home/runner/.config/matplotlib/stylelib

The above command will extract the data from the file wodger.spg and store it in a NDDataset object named X. To display information about the dataset, simply type X in a cell and run it.

[3]:
X
[3]:
NDDataset: [float64] a.u. (shape: (y:2, x:5549))[wodger]
Summary
name
:
wodger
author
:
runner@fv-az2211-104
created
:
2025-04-27 01:45:33+00:00
description
:
Omnic title: wodger.spg
Omnic filename: /home/runner/work/spectrochempy/spectrochempy/docs/sources/userguide/importexport/wodger.spg
history
:
2025-04-27 01:45:33+00:00> Imported from spg file
/home/runner/work/spectrochempy/spectrochempy/docs/sources/userguide/importexport/wodger.spg.
2025-04-27 01:45:33+00:00> Sorted by date
Data
title
:
absorbance
values
:
...
[[ 2.005 2.003 ... 1.826 1.831]
[ 1.983 1.984 ... 1.698 1.704]] a.u.
shape
:
(y:2, x:5549)
Dimension `x`
size
:
5549
title
:
wavenumbers
coordinates
:
[ 6000 5999 ... 650.9 649.9] cm⁻¹
Dimension `y`
size
:
2
title
:
acquisition timestamp (GMT)
coordinates
:
[1.468e+09 1.468e+09] s
labels
:
...
[[ vz0470.spa, Wed Jul 06 21:40:37 2016 (GMT+02:00) 2016-07-06 19:43:13+00:00]
[ vz0468.spa, Wed Jul 06 21:20:38 2016 (GMT+02:00) 2016-07-06 19:23:14+00:00]]

In this case, the data were in an OMNIC file format, and the read method guessed it correctly using the file name extension. The read method can also read other file formats, such as OPUS, JCAMP-DX, CSV, MATLAB, TOPSPIN, etc. or even a directory.

Using a specific reader

Instead of using the generic read method, you can also use a specific reader, such as read_omnic, read_opus, read_csv, read_jcamp, etc. These methods are more specific and will only read the file format they are. For example, read_omnic will only read OMNIC files.

The following table lists the available file readers in SCPy along with the corresponding file formats and extensions they support:

Reader

File Formats

Extensions

read_omnic,read_spa,read_spg,read_srs

Thermo Scientific/Nicolet OMNIC files

.spa, .spg, .srs

read_opus

Bruker OPUS files

.0, .1, .000, …

read_csv

Comma-Separated Values (CSV) files

.csv

read_jcamp, read_dx

JCAMP-DX spectral data files

.dx, .jdx

read_matlab,read_mat

MATLAB files

.mat, .dso

read_topspin

Bruker TopSpin NMR files

fid, ser, 1r, 1i, 2rr…

read_labspec

LABSPEC6 spectral data files

.txt

read_wire,read_wdf

Renishaw Wire files

.wdf

read_scp

SpectroChemPy-specific files

.scp

read_soc,read_ddr,read_hdr,read_sdr

Surface Optics Corporation files

.ddr, .hdr, .sdr

read_galactic

Galactic spectral files

.spc

read_quadera

Pfeiffer Vacuum QUADERA mass spectrometer files

.txt

read

Generic reader (automatically detects format)

read_dir

Reads all supported files in a directory

read_zip

Reads files from a ZIP archive

.zip

read_carroucell

Reads files from a carrousel experiment directory

The read_dir function scans a directory and reads all supported files, returning a list of NDDataset objects.

Other reader functions return either a single NDDataset or multiple NDDataset objects, depending on the file type and content.

Further details on specific cases are provided below. See the section Reading directories.

Using relative or absolute pathnames

In the above examples, the file wodger.spg was read from the current working directory.

If the file is located in another directory, the full path to the file can be provided. For example:

X = scp.read('/users/Brian/s/Life/wodger.spg')

or, for Windows:

X = scp.read(r'C:\users\Brian\s\Life\wodger.spg')

Notes:

  • The path separator is a backslash \ on Windows, but in many contexts, backslash is also used as an escape character to represent non-printable characters. To avoid problems, either it has to be escaped itself, a double backslash \\, or one can also use raw string literals to represent Windows paths. These are string literals that have an r prepended to them. In raw string literals, the \\ represents a literal backslash: r'C:\users\Brian'.

  • In python, the slash / is used as the path separator in all systems (Windows, Linux, OSX, …). So it can be used in all cases. For exemple:

    X = scp.read('C:/users/Brian/s/Life/wodger.spg')
    
  • The use of relative pathnames is a good practice. SpectroChemPy readers use relative paths. If the given path is not absolute, then SpectroChemPy will search relative to the current directory or to a directory specified using the directorykeywords.

    For example:

    X = scp.read('wodger.spg', directory='C:/users/Brian/s/Life')
    X = scp.read('Life/wodger.spg', directory='C:\\users\\Brian\\s')
    
  • The os or pathlib modules can be used to work with pathnames. See the section Good practice:Use of os or pathlib packages.

  • The preferences.datadir variable can be used to set a default directory where to look for data. See the section Another default search directory: datadir.

Good practices

Use relative paths

As path are system dependent, it is a good practice to use relative pathnames in scripts and notebooks.

If, for instance, Brian has a project organised in a folder (s ) with a directory dedicated to input data (Life ) and a notebook for preprocessing (welease.ipynb ) as illustrate below:

C:\users
|    +-- Brian
|    |    +-- s
|    |    |   +-- Life
|    |    |   |   +-- wodger.spg
|    |    |   +-- welease.ipynb

Then running this project in John’s Linux computer (e.g. in /home/john/s_copy ) will certainly result in execution errors if absolute paths are used in the notebook:

OSError: Can't find this filename C:\users\Brian\s\life\wodger.spg

Fortunately, SpectroChemPy readers use relative paths. If the given path is not absolute, then SpectroChemPy will search in the current directory. Hence, the opening of the spg file from scripts in welease.ipynb can be made by the command:

X = scp.read('Life/wodger.spg')

or:

X = scp.read('wodger.spg', directory='Life')

Use os or pathlib packages

In python, working with pathnames is classically done with dedicated modules such as os or pathlib python modules. With os we mention the following methods that can be particularly useful:

import os
os.getcwd()              # returns the absolute path of the current working directory
                         # preferences.datadir
os.path.expanduser("~")  # returns the home directory of the user
os.path.join('path1','path2','path3', ...)
                         # intelligently concatenates path components
                         # using the system separator (`/` or `\\` )

Using Pathlib is even simpler:

from pathlib import Path
Path.cwd()               # returns the absolute path of the current working directory
Path.home()              # returns the home directory of the user
Path('path1') / 'path2' / 'path3' / '...'   # intelligently concatenates path
components

The interested readers will find more details on the use of these modules here:

Another default search directory: datadir

Spectrochempy also comes with the definition of a second default directory path where to look at the data: the datadir directory. It is defined in the variable preferences.datadir which is imported at the same time as spectrochempy. By default, datadir points in the ‘$HOME/.spectrochempy/tesdata’ directory.:

[4]:
DATADIR = scp.preferences.datadir
DATADIR
[4]:
PosixPath('/home/runner/.spectrochempy/testdata')

DATADIR is already a pathlib object and so can be used easily

[5]:
scp.read_omnic(DATADIR / "wodger.spg")
[5]:
NDDataset: [float64] a.u. (shape: (y:2, x:5549))[wodger]
Summary
name
:
wodger
author
:
runner@fv-az2211-104
created
:
2025-04-27 01:45:33+00:00
description
:
Omnic title: wodger.spg
Omnic filename: /home/runner/.spectrochempy/testdata/wodger.spg
history
:
2025-04-27 01:45:33+00:00> Imported from spg file /home/runner/.spectrochempy/testdata/wodger.spg.
2025-04-27 01:45:33+00:00> Sorted by date
Data
title
:
absorbance
values
:
...
[[ 2.005 2.003 ... 1.826 1.831]
[ 1.983 1.984 ... 1.698 1.704]] a.u.
shape
:
(y:2, x:5549)
Dimension `x`
size
:
5549
title
:
wavenumbers
coordinates
:
[ 6000 5999 ... 650.9 649.9] cm⁻¹
Dimension `y`
size
:
2
title
:
acquisition timestamp (GMT)
coordinates
:
[1.468e+09 1.468e+09] s
labels
:
...
[[ vz0470.spa, Wed Jul 06 21:40:37 2016 (GMT+02:00) 2016-07-06 19:43:13+00:00]
[ vz0468.spa, Wed Jul 06 21:20:38 2016 (GMT+02:00) 2016-07-06 19:23:14+00:00]]

It can be set to another pathname permanently (i.e., even after computer restart) by a new assignment:

scp.preferences.datadir = 'C:/users/Brian/s/Life'

This will change the default value in the SCPy preference file located in the hidden folder .spectrochempy/ at the root of the user home directory.

Finally, by default, the import functions used in Spectrochempy will search the data files using this order of precedence:

  1. try absolute path

  2. try in current working directory

  3. try in datadir

  4. if none of these works: generate an OSError (file or directory not found)

Reading directories

The read_dir function is designed to read an entire directory, create NDDatasets for each file, and finally merge all compatible datasets. Let’s see an example:

  • Here is a list of the files presents in DATADIR/irdata/subdir/

[6]:
folder = DATADIR / "irdata" / "subdir"
[str(item.relative_to(DATADIR)) for item in folder.glob("*.*")]
[6]:
['irdata/subdir/7_CZ0-100_Pd_102.SPA',
 'irdata/subdir/TGAIR-unreadable.srs',
 'irdata/subdir/7_CZ0-100_Pd_101.SPA',
 'irdata/subdir/7_CZ0-100_Pd_104.SPA',
 'irdata/subdir/7_CZ0-100_Pd_103.SPA']
  • Now read all files in the DATADIR/irdata/subdir/ directory (i.e.,, four .spa files and one .srs file). Any file in unknown format will be ignored silently:

[7]:
scp.read_dir(folder)
[7]:
List (len=2, type=NDDataset)
    0: NDDataset: [float64] a.u. (shape: (y:335, x:1868))[dd_6.6_19039_538]
    Summary
    name
    :
    dd_6.6_19039_538
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:33+00:00
    description
    :
    Concatenation of 1 datasets:
    ( dd_6.6_19039_538 )
    history
    :
    2025-04-27 01:45:33+00:00> Created by concatenate
    2025-04-27 01:45:33+00:00> Merged from several files
    Data
    title
    :
    absorbance
    values
    :
    ...
    [[-0.007524 -0.0003661 ... 8.291e-05 9.239e-05]
    [-0.009306 -0.002252 ... 0.0001051 0.000107]
    ...
    [ 0.02474 0.02814 ... 0.002962 0.002967]
    [ 0.02663 0.02899 ... 0.002907 0.002916]] a.u.
    shape
    :
    (y:335, x:1868)
    Dimension `x`
    size
    :
    1868
    title
    :
    wavenumbers
    coordinates
    :
    [ 4000 3998 ... 401.1 399.2] cm⁻¹
    Dimension `y`
    size
    :
    335
    title
    :
    Time
    coordinates
    :
    [ 0.26 0.52 ... 86.76 87.02] min
    labels
    :
    ...
    [ Verknüpftes Spektrum bei 0,260 Min.
    ˜Ë
    ÁØsúË
    t/ä
    /ä
    /ä



    ±½˜@
    —‹ö»Îö¿¹·j»D€»t4»*
    †»Ý©S»£°»ýóɺ-êÒº¿p»“¢»

    »[ýéºùH|»
    »Íu»ä䩺LÊкsöþºvÐmºÎG4ºC঺˜Ôͺ™Õ
    ºšŠ¹¶:»ñ&Rº*
    Ò:Ý¿9WÅEºÓo
    ºB'ƺP|_º)ïQ9Ժ܂ìº-˜‚ºÁrï¹ç
    ±ºð¹¯ºqHºIKº Verknüpftes Spektrum bei 0,519 Min.
    ˜Ë
    ÁØsúË
    t/ä
    /ä
    /ä



    î˜@
    y¼—“»¾¯^¹‰¸:¸4꺗=x»ØÃ1»¼-øºÿɺÓź[L»×

    »£Êp»Õ­@»¤’(»ë𢹱w 9•5ºÍ9ÔºÓ೺Ou€ºÔ
    ܹ—–Šºm¼BºâÞå7ÛÍ9Mƒº’,ºJq:ò49 jZºLÛº¬ëºŸÃi¹;ý:ì) º)vº¡€ê¹xÕ½·?³º©ëÁºÀ
    ºó(
    ¹ ...
    Verknüpftes Spektrum bei 86,756 Min.
    ˜Ë
    ÁØsúË
    t/ä
    /ä
    /ä



    ã!—@
    š¡Ê r <«><­
    é;òÙ;™\
    <â½Ä;²˜;ÿÐæ;¤ññ;°Í¹;¡´Š;ÛYÎ;˜?å;Þ¦ò;²ø§;hAe;°TÉ;ó÷Ì;dK’;úºY;ÛýÀ;j8•;ïkª;#GŒ;€¸Û;Öþ”;
    Verknüpftes Spektrum bei 87,016 Min.
    ˜Ë
    ÁØsúË
    t/ä
    /ä
    /ä



    0+—@
    +1Ú<9}í<†„ B <µ‘*<;µÖ;ÓÆ" <½²ò;ç<àP<ãâ;‡4Å;vüö;ÑMà;·S‘;M†;HÃà;¾cö;M¶ü;C‡ƒ;Ö[#;3Ó;*Ûæ;6–;ýH€;R±Ã;ÍNš;í­;j7Œ;oŽÚ;ú;]
    1: NDDataset: [float64] a.u. (shape: (y:4, x:5549))[7_CZ0-100 Pd_104]
    Summary
    name
    :
    7_CZ0-100 Pd_104
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:33+00:00
    description
    :
    Concatenation of 1 datasets:
    ( 7_CZ0-100 Pd_104 )
    history
    :
    2025-04-27 01:45:33+00:00> Created by concatenate
    2025-04-27 01:45:33+00:00> Merged from several files
    Data
    title
    :
    absorbance
    values
    :
    ...
    [[ 1.544 1.543 ... 2.1 2.091]
    [ 1.552 1.553 ... 2.161 2.109]
    [ 1.461 1.46 ... 2.087 2.088]
    [ 1.448 1.447 ... 2.071 2.065]] a.u.
    shape
    :
    (y:4, x:5549)
    Dimension `x`
    size
    :
    5549
    title
    :
    wavenumbers
    coordinates
    :
    [ 6000 5999 ... 650.9 649.9] cm⁻¹
    Dimension `y`
    size
    :
    4
    title
    :
    acquisition timestamp (GMT)
    coordinates
    :
    [1.544e+09 1.544e+09 1.544e+09 1.544e+09] s
    labels
    :
    ...
    [[ 2018-11-30 07:10:57+00:00 2018-11-30 07:22:52+00:00 2018-11-30 07:34:49+00:00 2018-11-30 07:46:44+00:00]
    [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_101.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_102.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_103.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]

The above command have read all files in the DATADIR/irdata/subdir/ directory and merged them into two groups of compatible NDDatasets:

  • a first NDDataset object (id: 0, shape [335,1868]) comes from the single .srs file.

  • a second NDDataset object (id: 1, shape [335,1868]) comes from the merging of four .spa files.

Merging compatible NDDataset is the default behavior of read_dir (or equivalently read). If you want to read the files separately, you can use the merge=False keyword:

[8]:
scp.read_dir(folder, merge=False)
[8]:
List (len=5, type=NDDataset)
    0: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_101]
    Summary
    name
    :
    7_CZ0-100 Pd_101
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:33+00:00
    description
    :
    # Omnic name: 7_CZ0-100 Pd_101
    # Filename: 7_CZ0-100_Pd_101.SPA
    history
    :
    2025-04-27 01:45:33+00:00> Imported from spa file(s)
    2025-04-27 01:45:33+00:00> Data processing history from Omnic :
    ------------------------------------
    Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:03:45 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.544 1.543 … 2.1 2.091]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:10:57+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_101.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>1: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_102]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_102</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_102<br/> # Filename: 7_CZ0-100_Pd_102.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:12:56 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.552 1.553 … 2.161 2.109]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:22:52+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_102.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>2: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_103]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_103</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_103<br/> # Filename: 7_CZ0-100_Pd_103.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:24:51 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.461 1.46 … 2.087 2.088]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:34:49+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_103.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>3: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_104]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_104</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_104<br/> # Filename: 7_CZ0-100_Pd_104.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:36:47 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.448 1.447 … 2.071 2.065]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:46:44+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>4: NDDataset: [float64] a.u. (shape: (y:335, x:1868))[dd_6.6_19039_538]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> dd_6.6_19039_538</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div>Dataset from omnic srs file.</div></div></div></details></div> <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[-0.007524 -0.0003661 … 8.291e-05 9.239e-05]<br/> [-0.009306 -0.002252 … 0.0001051 0.000107]<br/> …<br/> [ 0.02474 0.02814 … 0.002962 0.002967]<br/> [ 0.02663 0.02899 … 0.002907 0.002916]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:335, x:1868)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1868</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 4000 3998 … 401.1 399.2] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 335</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> Time</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 0.26 0.52 … 86.76 87.02] min</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [ Verknüpftes Spektrum bei 0,260 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> ±½˜@<br/> —‹ö»Îö¿¹·j»D€»t4»*<br/> †»Ý©S»£°»ýóɺ-êÒº¿p»“¢»<br/><br/> »[ýéºùH|»<br/> »Íu»ä䩺LÊкsöþºvÐmºÎG4ºC঺˜Ôͺ™Õ<br/> ºšŠ¹¶:»ñ&Rº*<br/> Ò:Ý¿9WÅEºÓo<br/> ºB’ƺP|_º)ïQ9Ժ܂ìº-˜‚ºÁrï¹ç<br/> ±ºð¹¯ºqHºIKº Verknüpftes Spektrum bei 0,519 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> î˜@<br/> y¼—“»¾¯^¹‰¸:¸4꺗=x»ØÃ1»¼-øºÿɺÓź[L»×<br/><br/> »£Êp»Õ­@»¤’(»ë𢹱w 9•5ºÍ9ÔºÓ೺Ou€ºÔ<br/> ܹ—–Šºm¼BºâÞå7ÛÍ9Mƒº’,ºJq:ò49 jZºLÛº¬ëºŸÃi¹;ý:ì) º)vº¡€ê¹xÕ½·?³º©ëÁºÀ<br/> ºó(<br/> ¹ …<br/> Verknüpftes Spektrum bei 86,756 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> ã!—@<br/> š¡Ê<L„æ<䑍<#n<­˜„<gž<³­U<èx”<sw<œ¿`<Z=<­§;6G<åO/<ñÈ÷;*ß<<br/> r<lf<br/> <«><­<br/> é;òÙ;™<br/> <â½Ä;²˜;ÿÐæ;¤ññ;°Í¹;¡´Š;ÛYÎ;˜?å;Þ¦ò;²ø§;hAe;°TÉ;ó÷Ì;dK’;úºY;ÛýÀ;j8•;ïkª;#GŒ;€¸Û;Öþ”;<br/> Verknüpftes Spektrum bei 87,016 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> 0+—@<br/> +1Ú<9}í<†„<I0ž<­·¦<ú2ž<¬Çe<Nï<|„î;32_<VK-<Gú;<br/> B <µ‘*<;µÖ;ÓÆ”<ss<«<7<br/> <½²ò;ç<àP<ãâ;‡4Å;vüö;ÑMà;·S‘;M†;HÃà;¾cö;M¶ü;C‡ƒ;Ö[#;3Ó;*Ûæ;6–;ýH€;R±Ã;ÍNš;í­;j7Œ;oŽÚ;ú;]</div></details></div></details></div></div> </details></div>

    As expected the result is a list of 5 NDDataset objects, one for each file in the directory.

Additional options for reading directories

The read_dir/read function has additional options to control the behavior of the reading process:

  • recursive: if True, the function will scan the directory recursively and read all supported files in all subdirectories.

  • pattern: a string or a list of strings that can be used to filter the files to be read. Only files whose name matches the pattern will be read.

Let’s see an example with the recursive option:

First we list files in all directories under DATADIR/irdata/subdir/:

[9]:
[str(item.relative_to(DATADIR)) for item in folder.glob("**/*.*")]
[9]:
['irdata/subdir/7_CZ0-100_Pd_102.SPA',
 'irdata/subdir/TGAIR-unreadable.srs',
 'irdata/subdir/7_CZ0-100_Pd_101.SPA',
 'irdata/subdir/7_CZ0-100_Pd_104.SPA',
 'irdata/subdir/7_CZ0-100_Pd_103.SPA',
 'irdata/subdir/1-20/7_CZ0-100_Pd_3.SPA',
 'irdata/subdir/1-20/7_CZ0-100_Pd_5.SPA',
 'irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA',
 'irdata/subdir/20-50/7_CZ0-100_Pd_21.SPA']

the ìrdata/subdir/directory contains two subdirectory1-20and20-50with two additional.spa` files.

Now we read all files (a total of 9) in the DATADIR/irdata/subdir/ directory and its subdirectories:

[10]:
scp.read_dir(folder, recursive=True, merge=False)
[10]:
List (len=9, type=NDDataset)
    0: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_3]
    Summary
    name
    :
    7_CZ0-100 Pd_3
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:33+00:00
    description
    :
    # Omnic name: 7_CZ0-100 Pd_3
    # Filename: 7_CZ0-100_Pd_3.SPA
    history
    :
    2025-04-27 01:45:33+00:00> Imported from spa file(s)
    2025-04-27 01:45:33+00:00> Data processing history from Omnic :
    ------------------------------------
    Acquisition échantillon

    <br/> Background acquis le Jeu Nov 29 17:13:06 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.245 1.245 … 1.311 1.307]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-29 16:23:05+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_3.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>1: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_4]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_4</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_4<br/> # Filename: 7_CZ0-100_Pd_4.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Jeu Nov 29 17:25:03 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.245 1.245 … 1.302 1.299]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-29 16:35:00+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>2: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_5]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_5</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_5<br/> # Filename: 7_CZ0-100_Pd_5.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Jeu Nov 29 17:36:59 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.236 1.235 … 1.3 1.296]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-29 16:46:56+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_5.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>3: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_21]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_21</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_21<br/> # Filename: 7_CZ0-100_Pd_21.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Jeu Nov 29 20:48:01 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.234 1.233 … 1.291 1.288]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-29 19:58:01+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/20-50/7_CZ0-100_Pd_21.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>4: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_101]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_101</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_101<br/> # Filename: 7_CZ0-100_Pd_101.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:03:45 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.544 1.543 … 2.1 2.091]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:10:57+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_101.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>5: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_102]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_102</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_102<br/> # Filename: 7_CZ0-100_Pd_102.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:12:56 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.552 1.553 … 2.161 2.109]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:22:52+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_102.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>6: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_103]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_103</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_103<br/> # Filename: 7_CZ0-100_Pd_103.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:24:51 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.461 1.46 … 2.087 2.088]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:34:49+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_103.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>7: NDDataset: [float64] a.u. (shape: (y:1, x:5549))[7_CZ0-100 Pd_104]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> 7_CZ0-100 Pd_104</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:33+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div># Omnic name: 7_CZ0-100 Pd_104<br/> # Filename: 7_CZ0-100_Pd_104.SPA</div></div></div> <div class=”scp-output section”><div class=”attr-name”> history</div><div>:</div><div class=”attr-value”> <div>2025-04-27 01:45:33+00:00> Imported from spa file(s)<br/> 2025-04-27 01:45:33+00:00> Data processing history from Omnic :<br/> ————————————<br/> Acquisition échantillon

    <br/> Background acquis le Ven Nov 30 08:36:47 2018 (GMT+01:00) <br/> Format Final : Absorbance <br/> Résolution: 4,000 de 649,9207 à 5999,7134 <br/> Roue de validation: 0 <br/> Roue porte écran atténuation: Vide <br/> Numéro Série du banc:ALK1100494</div></div></div></details></div>

    <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[ 1.448 1.447 … 2.071 2.065]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:1, x:5549)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 5549</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 6000 5999 … 650.9 649.9] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> acquisition timestamp (GMT)</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[1.544e+09] s</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [[ 2018-11-30 07:46:44+00:00]<br/> [ /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]</div></details></div></details></div></div> <div class=’scp-output section’><div class=’scp-output’><details><summary>8: NDDataset: [float64] a.u. (shape: (y:335, x:1868))[dd_6.6_19039_538]</summary><div class=”scp-output section”><details><summary>Summary</summary> <div class=”scp-output section”><div class=”attr-name”> name</div><div>:</div><div class=”attr-value”> dd_6.6_19039_538</div></div> <div class=”scp-output section”><div class=”attr-name”> author</div><div>:</div><div class=”attr-value”> runner@fv-az2211-104</div></div> <div class=”scp-output section”><div class=”attr-name”> created</div><div>:</div><div class=”attr-value”> 2025-04-27 01:45:34+00:00</div></div> <div class=”scp-output section”><div class=”attr-name”> description</div><div>:</div><div class=”attr-value”> <div>Dataset from omnic srs file.</div></div></div></details></div> <div class=”scp-output section”><details><summary> Data </summary> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> absorbance</div></div> <div class=”scp-output section”><div class=”attr-name”> values</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’numeric’> [[-0.007524 -0.0003661 … 8.291e-05 9.239e-05]<br/> [-0.009306 -0.002252 … 0.0001051 0.000107]<br/> …<br/> [ 0.02474 0.02814 … 0.002962 0.002967]<br/> [ 0.02663 0.02899 … 0.002907 0.002916]] a.u.</div> <div class=”scp-output section”><div class=”attr-name”> shape</div><div>:</div><div class=”attr-value”> (y:335, x:1868)</div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `x`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 1868</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> wavenumbers</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 4000 3998 … 401.1 399.2] cm⁻¹</div></div></div></details></div> <div class=”scp-output section”><details><summary> Dimension `y`</summary> <div class=”scp-output section”><div class=”attr-name”> size</div><div>:</div><div class=”attr-value”> 335</div></div> <div class=”scp-output section”><div class=”attr-name”> title</div><div>:</div><div class=”attr-value”> Time</div></div> <div class=”scp-output section”><div class=”attr-name”> coordinates</div><div>:</div><div class=”attr-value”> <div class=’numeric’>[ 0.26 0.52 … 86.76 87.02] min</div></div></div> <div class=”scp-output section”><div class=”attr-name”> labels</div><div>:</div><div class=”attr-value”> … </div></div> <div class=’label’> [ Verknüpftes Spektrum bei 0,260 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> ±½˜@<br/> —‹ö»Îö¿¹·j»D€»t4»*<br/> †»Ý©S»£°»ýóɺ-êÒº¿p»“¢»<br/><br/> »[ýéºùH|»<br/> »Íu»ä䩺LÊкsöþºvÐmºÎG4ºC঺˜Ôͺ™Õ<br/> ºšŠ¹¶:»ñ&Rº*<br/> Ò:Ý¿9WÅEºÓo<br/> ºB’ƺP|_º)ïQ9Ժ܂ìº-˜‚ºÁrï¹ç<br/> ±ºð¹¯ºqHºIKº Verknüpftes Spektrum bei 0,519 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> î˜@<br/> y¼—“»¾¯^¹‰¸:¸4꺗=x»ØÃ1»¼-øºÿɺÓź[L»×<br/><br/> »£Êp»Õ­@»¤’(»ë𢹱w 9•5ºÍ9ÔºÓ೺Ou€ºÔ<br/> ܹ—–Šºm¼BºâÞå7ÛÍ9Mƒº’,ºJq:ò49 jZºLÛº¬ëºŸÃi¹;ý:ì) º)vº¡€ê¹xÕ½·?³º©ëÁºÀ<br/> ºó(<br/> ¹ …<br/> Verknüpftes Spektrum bei 86,756 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> ã!—@<br/> š¡Ê<L„æ<䑍<#n<­˜„<gž<³­U<èx”<sw<œ¿`<Z=<­§;6G<åO/<ñÈ÷;*ß<<br/> r<lf<br/> <«><­<br/> é;òÙ;™<br/> <â½Ä;²˜;ÿÐæ;¤ññ;°Í¹;¡´Š;ÛYÎ;˜?å;Þ¦ò;²ø§;hAe;°TÉ;ó÷Ì;dK’;úºY;ÛýÀ;j8•;ïkª;#GŒ;€¸Û;Öþ”;<br/> Verknüpftes Spektrum bei 87,016 Min.<br/> ˜Ë<br/> ÁØsúË<br/> t/ä<br/> /ä<br/> /ä<br/><br/><br/><br/> 0+—@<br/> +1Ú<9}í<†„<I0ž<­·¦<ú2ž<¬Çe<Nï<|„î;32_<VK-<Gú;<br/> B <µ‘*<;µÖ;ÓÆ”<ss<«<7<br/> <½²ò;ç<àP<ãâ;‡4Å;vüö;ÑMà;·S‘;M†;HÃà;¾cö;M¶ü;C‡ƒ;Ö[#;3Ó;*Ûæ;6–;ýH€;R±Ã;ÍNš;í­;j7Œ;oŽÚ;ú;]</div></details></div></details></div></div> </details></div>

    and we allow merging them:

    [11]:
    
    scp.read_dir(folder, recursive=True)
    
    [11]:
    
    List (len=2, type=NDDataset)
      0: NDDataset: [float64] a.u. (shape: (y:335, x:1868))[dd_6.6_19039_538]
      Summary
      name
      :
      dd_6.6_19039_538
      author
      :
      runner@fv-az2211-104
      created
      :
      2025-04-27 01:45:34+00:00
      description
      :
      Concatenation of 1 datasets:
      ( dd_6.6_19039_538 )
      history
      :
      2025-04-27 01:45:34+00:00> Created by concatenate
      2025-04-27 01:45:34+00:00> Merged from several files
      Data
      title
      :
      absorbance
      values
      :
      ...
      [[-0.007524 -0.0003661 ... 8.291e-05 9.239e-05]
      [-0.009306 -0.002252 ... 0.0001051 0.000107]
      ...
      [ 0.02474 0.02814 ... 0.002962 0.002967]
      [ 0.02663 0.02899 ... 0.002907 0.002916]] a.u.
      shape
      :
      (y:335, x:1868)
      Dimension `x`
      size
      :
      1868
      title
      :
      wavenumbers
      coordinates
      :
      [ 4000 3998 ... 401.1 399.2] cm⁻¹
      Dimension `y`
      size
      :
      335
      title
      :
      Time
      coordinates
      :
      [ 0.26 0.52 ... 86.76 87.02] min
      labels
      :
      ...
      [ Verknüpftes Spektrum bei 0,260 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      ±½˜@
      —‹ö»Îö¿¹·j»D€»t4»*
      †»Ý©S»£°»ýóɺ-êÒº¿p»“¢»

      »[ýéºùH|»
      »Íu»ä䩺LÊкsöþºvÐmºÎG4ºC঺˜Ôͺ™Õ
      ºšŠ¹¶:»ñ&Rº*
      Ò:Ý¿9WÅEºÓo
      ºB'ƺP|_º)ïQ9Ժ܂ìº-˜‚ºÁrï¹ç
      ±ºð¹¯ºqHºIKº Verknüpftes Spektrum bei 0,519 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      î˜@
      y¼—“»¾¯^¹‰¸:¸4꺗=x»ØÃ1»¼-øºÿɺÓź[L»×

      »£Êp»Õ­@»¤’(»ë𢹱w 9•5ºÍ9ÔºÓ೺Ou€ºÔ
      ܹ—–Šºm¼BºâÞå7ÛÍ9Mƒº’,ºJq:ò49 jZºLÛº¬ëºŸÃi¹;ý:ì) º)vº¡€ê¹xÕ½·?³º©ëÁºÀ
      ºó(
      ¹ ...
      Verknüpftes Spektrum bei 86,756 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      ã!—@
      š¡Ê r <«><­
      é;òÙ;™\
      <â½Ä;²˜;ÿÐæ;¤ññ;°Í¹;¡´Š;ÛYÎ;˜?å;Þ¦ò;²ø§;hAe;°TÉ;ó÷Ì;dK’;úºY;ÛýÀ;j8•;ïkª;#GŒ;€¸Û;Öþ”;
      Verknüpftes Spektrum bei 87,016 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      0+—@
      +1Ú<9}í<†„ B <µ‘*<;µÖ;ÓÆ" <½²ò;ç<àP<ãâ;‡4Å;vüö;ÑMà;·S‘;M†;HÃà;¾cö;M¶ü;C‡ƒ;Ö[#;3Ó;*Ûæ;6–;ýH€;R±Ã;ÍNš;í­;j7Œ;oŽÚ;ú;]
      1: NDDataset: [float64] a.u. (shape: (y:8, x:5549))[7_CZ0-100 Pd_104]
      Summary
      name
      :
      7_CZ0-100 Pd_104
      author
      :
      runner@fv-az2211-104
      created
      :
      2025-04-27 01:45:34+00:00
      description
      :
      Concatenation of 1 datasets:
      ( 7_CZ0-100 Pd_104 )
      history
      :
      2025-04-27 01:45:34+00:00> Created by concatenate
      2025-04-27 01:45:34+00:00> Merged from several files
      Data
      title
      :
      absorbance
      values
      :
      ...
      [[ 1.245 1.245 ... 1.311 1.307]
      [ 1.245 1.245 ... 1.302 1.299]
      ...
      [ 1.461 1.46 ... 2.087 2.088]
      [ 1.448 1.447 ... 2.071 2.065]] a.u.
      shape
      :
      (y:8, x:5549)
      Dimension `x`
      size
      :
      5549
      title
      :
      wavenumbers
      coordinates
      :
      [ 6000 5999 ... 650.9 649.9] cm⁻¹
      Dimension `y`
      size
      :
      8
      title
      :
      acquisition timestamp (GMT)
      coordinates
      :
      [1.544e+09 1.544e+09 ... 1.544e+09 1.544e+09] s
      labels
      :
      ...
      [[ 2018-11-29 16:23:05+00:00 2018-11-29 16:35:00+00:00 ... 2018-11-30 07:34:49+00:00 2018-11-30 07:46:44+00:00]
      [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_3.SPA
      /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA ...
      /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_103.SPA
      /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]

    As the 8 .spa files are compatible, they are merged into a single NDDataset object. The .srs file is read separately.

    Specific reader can equivalently read folder recursively:

    [12]:
    
    scp.read_omnic(folder, recursive=True)
    
    [12]:
    
    List (len=2, type=NDDataset)
      0: NDDataset: [float64] a.u. (shape: (y:335, x:1868))[dd_6.6_19039_538]
      Summary
      name
      :
      dd_6.6_19039_538
      author
      :
      runner@fv-az2211-104
      created
      :
      2025-04-27 01:45:34+00:00
      description
      :
      Concatenation of 1 datasets:
      ( dd_6.6_19039_538 )
      history
      :
      2025-04-27 01:45:34+00:00> Created by concatenate
      2025-04-27 01:45:34+00:00> Merged from several files
      Data
      title
      :
      absorbance
      values
      :
      ...
      [[-0.007524 -0.0003661 ... 8.291e-05 9.239e-05]
      [-0.009306 -0.002252 ... 0.0001051 0.000107]
      ...
      [ 0.02474 0.02814 ... 0.002962 0.002967]
      [ 0.02663 0.02899 ... 0.002907 0.002916]] a.u.
      shape
      :
      (y:335, x:1868)
      Dimension `x`
      size
      :
      1868
      title
      :
      wavenumbers
      coordinates
      :
      [ 4000 3998 ... 401.1 399.2] cm⁻¹
      Dimension `y`
      size
      :
      335
      title
      :
      Time
      coordinates
      :
      [ 0.26 0.52 ... 86.76 87.02] min
      labels
      :
      ...
      [ Verknüpftes Spektrum bei 0,260 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      ±½˜@
      —‹ö»Îö¿¹·j»D€»t4»*
      †»Ý©S»£°»ýóɺ-êÒº¿p»“¢»

      »[ýéºùH|»
      »Íu»ä䩺LÊкsöþºvÐmºÎG4ºC঺˜Ôͺ™Õ
      ºšŠ¹¶:»ñ&Rº*
      Ò:Ý¿9WÅEºÓo
      ºB'ƺP|_º)ïQ9Ժ܂ìº-˜‚ºÁrï¹ç
      ±ºð¹¯ºqHºIKº Verknüpftes Spektrum bei 0,519 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      î˜@
      y¼—“»¾¯^¹‰¸:¸4꺗=x»ØÃ1»¼-øºÿɺÓź[L»×

      »£Êp»Õ­@»¤’(»ë𢹱w 9•5ºÍ9ÔºÓ೺Ou€ºÔ
      ܹ—–Šºm¼BºâÞå7ÛÍ9Mƒº’,ºJq:ò49 jZºLÛº¬ëºŸÃi¹;ý:ì) º)vº¡€ê¹xÕ½·?³º©ëÁºÀ
      ºó(
      ¹ ...
      Verknüpftes Spektrum bei 86,756 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      ã!—@
      š¡Ê r <«><­
      é;òÙ;™\
      <â½Ä;²˜;ÿÐæ;¤ññ;°Í¹;¡´Š;ÛYÎ;˜?å;Þ¦ò;²ø§;hAe;°TÉ;ó÷Ì;dK’;úºY;ÛýÀ;j8•;ïkª;#GŒ;€¸Û;Öþ”;
      Verknüpftes Spektrum bei 87,016 Min.
      ˜Ë
      ÁØsúË
      t/ä
      /ä
      /ä



      0+—@
      +1Ú<9}í<†„ B <µ‘*<;µÖ;ÓÆ" <½²ò;ç<àP<ãâ;‡4Å;vüö;ÑMà;·S‘;M†;HÃà;¾cö;M¶ü;C‡ƒ;Ö[#;3Ó;*Ûæ;6–;ýH€;R±Ã;ÍNš;í­;j7Œ;oŽÚ;ú;]
      1: NDDataset: [float64] a.u. (shape: (y:8, x:5549))[7_CZ0-100 Pd_104]
      Summary
      name
      :
      7_CZ0-100 Pd_104
      author
      :
      runner@fv-az2211-104
      created
      :
      2025-04-27 01:45:34+00:00
      description
      :
      Concatenation of 1 datasets:
      ( 7_CZ0-100 Pd_104 )
      history
      :
      2025-04-27 01:45:34+00:00> Created by concatenate
      2025-04-27 01:45:34+00:00> Merged from several files
      Data
      title
      :
      absorbance
      values
      :
      ...
      [[ 1.245 1.245 ... 1.311 1.307]
      [ 1.245 1.245 ... 1.302 1.299]
      ...
      [ 1.461 1.46 ... 2.087 2.088]
      [ 1.448 1.447 ... 2.071 2.065]] a.u.
      shape
      :
      (y:8, x:5549)
      Dimension `x`
      size
      :
      5549
      title
      :
      wavenumbers
      coordinates
      :
      [ 6000 5999 ... 650.9 649.9] cm⁻¹
      Dimension `y`
      size
      :
      8
      title
      :
      acquisition timestamp (GMT)
      coordinates
      :
      [1.544e+09 1.544e+09 ... 1.544e+09 1.544e+09] s
      labels
      :
      ...
      [[ 2018-11-29 16:23:05+00:00 2018-11-29 16:35:00+00:00 ... 2018-11-30 07:34:49+00:00 2018-11-30 07:46:44+00:00]
      [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_3.SPA
      /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA ...
      /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_103.SPA
      /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]

    Let’s see an example with the pattern option:

    We read all files in the DATADIR/irdata/subdir/ directory and its subdirectories, but only those with the .spa extension and whose name contains the string 4:

    [13]:
    
    scp.read_dir(folder, recursive=True, pattern="*4*")
    
    [13]:
    
    NDDataset: [float64] a.u. (shape: (y:2, x:5549))[7_CZ0-100 Pd_104]
    Summary
    name
    :
    7_CZ0-100 Pd_104
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:34+00:00
    description
    :
    Concatenation of 2 datasets:
    ( 7_CZ0-100 Pd_4, 7_CZ0-100 Pd_104 )
    history
    :
    2025-04-27 01:45:34+00:00> Created by concatenate
    2025-04-27 01:45:34+00:00> Merged from several files
    Data
    title
    :
    absorbance
    values
    :
    ...
    [[ 1.245 1.245 ... 1.302 1.299]
    [ 1.448 1.447 ... 2.071 2.065]] a.u.
    shape
    :
    (y:2, x:5549)
    Dimension `x`
    size
    :
    5549
    title
    :
    wavenumbers
    coordinates
    :
    [ 6000 5999 ... 650.9 649.9] cm⁻¹
    Dimension `y`
    size
    :
    2
    title
    :
    acquisition timestamp (GMT)
    coordinates
    :
    [1.544e+09 1.544e+09] s
    labels
    :
    ...
    [[ 2018-11-29 16:35:00+00:00 2018-11-30 07:46:44+00:00]
    [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]

    The above pattern “*4*” match only two files which are then merged and returned as a single NDDataset object.

    This pattern option is obviously interesting to select only a type of extension:

    [14]:
    
    scp.read_dir(folder, recursive=True, pattern="*.spa")
    
    [14]:
    
    NDDataset: [float64] a.u. (shape: (y:8, x:5549))[7_CZ0-100 Pd_104]
    Summary
    name
    :
    7_CZ0-100 Pd_104
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:34+00:00
    description
    :
    Concatenation of 8 datasets:
    ( 7_CZ0-100 Pd_3, 7_CZ0-100 Pd_4, 7_CZ0-100 Pd_5, 7_CZ0-100 Pd_21, 7_CZ0-100 Pd_101, 7_CZ0-100 Pd_102, 7_CZ0-100 Pd_103, 7_CZ0-100 Pd_104 )
    history
    :
    2025-04-27 01:45:34+00:00> Created by concatenate
    2025-04-27 01:45:34+00:00> Merged from several files
    Data
    title
    :
    absorbance
    values
    :
    ...
    [[ 1.245 1.245 ... 1.311 1.307]
    [ 1.245 1.245 ... 1.302 1.299]
    ...
    [ 1.461 1.46 ... 2.087 2.088]
    [ 1.448 1.447 ... 2.071 2.065]] a.u.
    shape
    :
    (y:8, x:5549)
    Dimension `x`
    size
    :
    5549
    title
    :
    wavenumbers
    coordinates
    :
    [ 6000 5999 ... 650.9 649.9] cm⁻¹
    Dimension `y`
    size
    :
    8
    title
    :
    acquisition timestamp (GMT)
    coordinates
    :
    [1.544e+09 1.544e+09 ... 1.544e+09 1.544e+09] s
    labels
    :
    ...
    [[ 2018-11-29 16:23:05+00:00 2018-11-29 16:35:00+00:00 ... 2018-11-30 07:34:49+00:00 2018-11-30 07:46:44+00:00]
    [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_3.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA ...
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_103.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]
    [15]:
    
    scp.read(folder, recursive=True, pattern="*.spa")  # equivalent
    
    [15]:
    
    NDDataset: [float64] a.u. (shape: (y:8, x:5549))[7_CZ0-100 Pd_104]
    Summary
    name
    :
    7_CZ0-100 Pd_104
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:34+00:00
    description
    :
    Concatenation of 8 datasets:
    ( 7_CZ0-100 Pd_3, 7_CZ0-100 Pd_4, 7_CZ0-100 Pd_5, 7_CZ0-100 Pd_21, 7_CZ0-100 Pd_101, 7_CZ0-100 Pd_102, 7_CZ0-100 Pd_103, 7_CZ0-100 Pd_104 )
    history
    :
    2025-04-27 01:45:34+00:00> Created by concatenate
    2025-04-27 01:45:34+00:00> Merged from several files
    Data
    title
    :
    absorbance
    values
    :
    ...
    [[ 1.245 1.245 ... 1.311 1.307]
    [ 1.245 1.245 ... 1.302 1.299]
    ...
    [ 1.461 1.46 ... 2.087 2.088]
    [ 1.448 1.447 ... 2.071 2.065]] a.u.
    shape
    :
    (y:8, x:5549)
    Dimension `x`
    size
    :
    5549
    title
    :
    wavenumbers
    coordinates
    :
    [ 6000 5999 ... 650.9 649.9] cm⁻¹
    Dimension `y`
    size
    :
    8
    title
    :
    acquisition timestamp (GMT)
    coordinates
    :
    [1.544e+09 1.544e+09 ... 1.544e+09 1.544e+09] s
    labels
    :
    ...
    [[ 2018-11-29 16:23:05+00:00 2018-11-29 16:35:00+00:00 ... 2018-11-30 07:34:49+00:00 2018-11-30 07:46:44+00:00]
    [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_3.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA ...
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_103.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]
    [16]:
    
    scp.read_omnic(folder, recursive=True, pattern="*4.spa")  # equivalent
    
    [16]:
    
    NDDataset: [float64] a.u. (shape: (y:2, x:5549))[7_CZ0-100 Pd_104]
    Summary
    name
    :
    7_CZ0-100 Pd_104
    author
    :
    runner@fv-az2211-104
    created
    :
    2025-04-27 01:45:34+00:00
    description
    :
    Concatenation of 2 datasets:
    ( 7_CZ0-100 Pd_4, 7_CZ0-100 Pd_104 )
    history
    :
    2025-04-27 01:45:34+00:00> Created by concatenate
    2025-04-27 01:45:34+00:00> Merged from several files
    Data
    title
    :
    absorbance
    values
    :
    ...
    [[ 1.245 1.245 ... 1.302 1.299]
    [ 1.448 1.447 ... 2.071 2.065]] a.u.
    shape
    :
    (y:2, x:5549)
    Dimension `x`
    size
    :
    5549
    title
    :
    wavenumbers
    coordinates
    :
    [ 6000 5999 ... 650.9 649.9] cm⁻¹
    Dimension `y`
    size
    :
    2
    title
    :
    acquisition timestamp (GMT)
    coordinates
    :
    [1.544e+09 1.544e+09] s
    labels
    :
    ...
    [[ 2018-11-29 16:35:00+00:00 2018-11-30 07:46:44+00:00]
    [ /home/runner/.spectrochempy/testdata/irdata/subdir/1-20/7_CZ0-100_Pd_4.SPA
    /home/runner/.spectrochempy/testdata/irdata/subdir/7_CZ0-100_Pd_104.SPA]]

    This way the “.srs” file is ignored.

Reading files from a ZIP archive

The read_zip function is designed to read files from a ZIP archive. It can be used to read a single file or all files in the archive. As usual, by default all files are merged. The merge keyword can be used to read the files separately.

[17]:
scp.read(
    "https://eigenvector.com/wp-content/uploads/2019/06/corn.mat_.zip", merge=False
)
 The mat file contains an array of strings named 'information' which will not be converted to NDDataset
[17]:
List (len=7, type=NDDataset)
    0: NDDataset: [float64] unitless (shape: (y:3, x:700))[m5nbs]
    Summary
    name
    :
    m5nbs
    author
    :
    *unknown*
    created
    :
    2025-04-27 01:45:35+00:00
    history
    :
    2025-04-27 01:45:35+00:00> M5nbs.axisscale{2,1}=freqs; %class double 1x700
    2025-04-27 01:45:35+00:00> Imported by spectrochempy.
    Data
    title
    :
    values
    :
    ...
    [[ 0.134 0.132 ... 0.09665 0.09771]
    [ 0.1374 0.1354 ... 0.09898 0.09999]
    [ 0.1437 0.1416 ... 0.1037 0.1048]]
    shape
    :
    (y:3, x:700)
    Dimension `x`
    size
    :
    700
    title
    :
    coordinates
    :
    [ 1100 1102 ... 2496 2498]
    Dimension `y`
    size
    :
    3
    title
    :
    index
    coordinates
    :
    [ 0 1 2]
    1: NDDataset: [float64] unitless (shape: (y:4, x:700))[mp5nbs]
    Summary
    name
    :
    mp5nbs
    author
    :
    *unknown*
    created
    :
    2025-04-27 01:45:35+00:00
    history
    :
    2025-04-27 01:45:35+00:00> Mp5nbs.axisscale{2,1}=freqs; %class double 1x700
    2025-04-27 01:45:35+00:00> Imported by spectrochempy.
    Data
    title
    :
    values
    :
    ...
    [[ 0.06679 0.0645 ... 0.03636 0.03724]
    [ 0.06031 0.05819 ... 0.02807 0.02892]
    [ 0.06189 0.05965 ... 0.03215 0.03299]
    [ 0.06115 0.05901 ... 0.03013 0.03099]]
    shape
    :
    (y:4, x:700)
    Dimension `x`
    size
    :
    700
    title
    :
    coordinates
    :
    [ 1100 1102 ... 2496 2498]
    Dimension `y`
    size
    :
    4
    title
    :
    index
    coordinates
    :
    [ 0 1 2 3]
    2: NDDataset: [float64] unitless (shape: (y:4, x:700))[mp6nbs]
    Summary
    name
    :
    mp6nbs
    author
    :
    *unknown*
    created
    :
    2025-04-27 01:45:35+00:00
    history
    :
    2025-04-27 01:45:35+00:00> Mp6nbs.axisscale{2,1}=freqs; %class double 1x700
    2025-04-27 01:45:35+00:00> Imported by spectrochempy.
    Data
    title
    :
    values
    :
    ...
    [[ 0.05404 0.0524 ... 0.02147 0.02236]
    [ 0.05388 0.05223 ... 0.02187 0.02277]
    [ 0.05238 0.05069 ... 0.02207 0.02295]
    [ 0.05311 0.05144 ... 0.02195 0.02284]]
    shape
    :
    (y:4, x:700)
    Dimension `x`
    size
    :
    700
    title
    :
    coordinates
    :
    [ 1100 1102 ... 2496 2498]
    Dimension `y`
    size
    :
    4
    title
    :
    index
    coordinates
    :
    [ 0 1 2 3]
    3: NDDataset: [float64] unitless (shape: (y:80, x:4))[propvals]
    Summary
    name
    :
    propvals
    author
    :
    *unknown*
    created
    :
    2025-04-27 01:45:35+00:00
    history
    :
    2025-04-27 01:45:35+00:00> Propvals.label{2,1}=proplbls; %class char 4x8
    2025-04-27 01:45:35+00:00> Imported by spectrochempy.
    Data
    title
    :
    values
    :
    ...
    [[ 10.45 3.687 8.746 64.84]
    [ 10.41 3.72 8.658 64.85]
    ...
    [ 10.59 3.176 8.132 65.21]
    [ 10.98 3.328 8.428 64.85]]
    shape
    :
    (y:80, x:4)
    Dimension `x`
    size
    :
    4
    title
    :
    labels
    :
    [ Moisture Oil Protein Starch ]
    Dimension `y`
    size
    :
    80
    title
    :
    index
    coordinates
    :
    [ 0 1 ... 78 79]
    4: NDDataset: [float64] unitless (shape: (y:80, x:700))[m5spec]
    Summary
    name
    :
    m5spec
    author
    :
    *unknown*
    created
    :
    2025-04-27 01:45:35+00:00
    history
    :
    2025-04-27 01:45:35+00:00> M5spec.axisscale{2,1}=freqs; %class double 1x700
    2025-04-27 01:45:35+00:00> Imported by spectrochempy.
    Data
    title
    :
    values
    :
    ...
    [[ 0.04449 0.04438 ... 0.7309 0.7306]
    [ 0.0465 0.04635 ... 0.7275 0.727]
    ...
    [ 0.05944 0.05932 ... 0.7362 0.7357]
    [ 0.05009 0.04993 ... 0.7289 0.7282]]
    shape
    :
    (y:80, x:700)
    Dimension `x`
    size
    :
    700
    title
    :
    coordinates
    :
    [ 1100 1102 ... 2496 2498]
    Dimension `y`
    size
    :
    80
    title
    :
    index
    coordinates
    :
    [ 0 1 ... 78 79]
    5: NDDataset: [float64] unitless (shape: (y:80, x:700))[mp5spec]
    Summary
    name
    :
    mp5spec
    author
    :
    *unknown*
    created
    :
    2025-04-27 01:45:35+00:00
    history
    :
    2025-04-27 01:45:35+00:00> Mp5spec.axisscale{2,1}=freqs; %class double 1x700
    2025-04-27 01:45:35+00:00> Imported by spectrochempy.
    Data
    title
    :
    values
    :
    ...
    [[-0.01244 -0.01251 ... 0.6849 0.6844]
    [-0.01419 -0.01425 ... 0.6924 0.6919]
    ...
    [0.005116 0.00504 ... 0.6979 0.6976]
    [-0.003701 -0.003818 ... 0.7128 0.7121]]
    shape
    :
    (y:80, x:700)
    Dimension `x`
    size
    :
    700
    title
    :
    coordinates
    :
    [ 1100 1102 ... 2496 2498]
    Dimension `y`
    size
    :
    80
    title
    :
    index
    coordinates
    :
    [ 0 1 ... 78 79]
    6: NDDataset: [float64] unitless (shape: (y:80, x:700))[mp6spec]
    Summary
    name
    :
    mp6spec
    author
    :
    *unknown*
    created
    :
    2025-04-27 01:45:35+00:00
    history
    :
    2025-04-27 01:45:35+00:00> Mp6spec.axisscale{2,1}=freqs; %class double 1x700
    2025-04-27 01:45:35+00:00> Imported by spectrochempy.
    Data
    title
    :
    values
    :
    ...
    [[ -0.0227 -0.0228 ... 0.6747 0.6741]
    [-0.02192 -0.02206 ... 0.6826 0.6822]
    ...
    [-0.006796 -0.006888 ... 0.6899 0.6891]
    [-0.01526 -0.01538 ... 0.7028 0.7021]]
    shape
    :
    (y:80, x:700)
    Dimension `x`
    size
    :
    700
    title
    :
    coordinates
    :
    [ 1100 1102 ... 2496 2498]
    Dimension `y`
    size
    :
    80
    title
    :
    index
    coordinates
    :
    [ 0 1 ... 78 79]