Spectro-Electrochemistry¶
Spectro-Electrochemsitry (S-EC) can refer to (i) a broad range of in-situ techniques
hyphenating electrochemistry to some kind of spectrometry (see e.g.
Lozeman et al, 2020
) or (ii) more specifically,
the combination of electrochemistry and visible-light spectroscopy. In ixdat, we
use the latter meaning.
S-EC data is organized in a SpectroECMeasurement, which inherits from ECMeasurement
(see Electrochemistry) and uses a SpectrumSeries (see Spectra)
for managing the 2-D data array formed by the sequential spectra (see Figure).
To this, the class adds delta optical density (dOD) calculations. Methods
such as calc_dOD, get_dOD_spectrum, and track_wavelength take as
an optional argument a specification of the time/potential/spectrum index to
use as the reference for optical density calculation. If not provided, the
object’s reference_spectrum is used, which itself can be set by the
set_reference_spectrum method.
The data structure is the same whether the experiment is done as a slow potential scan with adsorption vs potential in mind, or as a potential jump or release with time-resolved behavior in mind.
Plots of S-EC are made by the SECPlotter. These are either heat plots
(plot_measurement and plot_vs_potential) or coplotted cross-sections (plot_waterfall
and plot_wavelengths). Exporting SEC data results in a master file with
the EC data and any tracked wavelengths and two auxiliary files with (i) the
spectrum series and (ii) the reference spectrum.
A jupyter notebook tutorial for S-EC is available.
Fitting of spectroelectrochemistry data is not yet supported in ixdat.
The spectroelectrochemistry module¶
-
class
ixdat.techniques.spectroelectrochemistry.SpectroECMeasurement(*args, **kwargs)[source]¶ -
calc_dOD(V_ref=None, t_ref=None, index_ref=None)[source]¶ Calculate the optical density with respect to a reference
Provide at most one of V_ref, t_ref, or index. If none are provided the default reference spectrum (self.reference_spectrum) will be used.
Parameters: - V_ref (float) – The potential at which to get the reference spectrum
- t_ref (float) – The time at which to get the reference spectrum
- index_ref (int) – The index of the reference spectrum
Return Field: the delta optical density spanning time and wavelength
-
exporter¶ The default plotter for SpectroECMeasurement is SECExporter
-
get_dOD_spectrum(V=None, t=None, index=None, V_ref=None, t_ref=None, index_ref=None)[source]¶ Return the delta optical density Spectrum given a point and reference point.
Provide exactly one of V, t, and index, and at most one of V_ref, t_ref, and index_ref. For V and V_ref to work, the potential in the measurement must be monotonically increasing.
Parameters: - V (float) – The potential at which to get the spectrum.
- t (float) – The time at which to get the spectrum
- index (int) – The index of the spectrum
- V_ref (float) – The potential at which to get the reference spectrum
- t_ref (float) – The time at which to get the reference spectrum
- index_ref (int) – The index of the reference spectrum
Return Spectrum: The dOD spectrum. The data is (spectrum.x, spectrum.y)
-
get_spectrum(V=None, t=None, index=None, name=None)[source]¶ Return the Spectrum at a given potential V, time t, or index
Exactly one of V, t, and index should be given. If V (t) is out of the range of self.v (self.t), then first or last spectrum will be returned.
Parameters: - V (float) – The potential at which to get the spectrum. Measurement.v must be monotonically increasing for this to work.
- t (float) – The time at which to get the spectrum
- index (int) – The index of the spectrum
- name (str) – Optional. name to give the new spectrum if interpolated
Return Spectrum: The spectrum. The data is (spectrum.x, spectrum.y)
-
plotter¶ The default plotter for SpectroECMeasurement is SECPlotter
-
reference_spectrum¶ The spectrum which will by default be used to calculate dOD
-
set_reference_spectrum(spectrum=None, t_ref=None, V_ref=None)[source]¶ Set the spectrum used as the reference when calculating dOD.
Parameters: - spectrum (Spectrum or str) – If a Spectrum is given, it becomes the reference spectrum. The string “reference” can be given to make the reference spectrum become (via the reference_spectrum property) one that the measurement was loaded with (evt. for definition of wavelengths).
- t_ref (float) – The time (with respect to self.tstamp) to use as the reference spectrum
- V_ref (float) – The potential to use as the reference spectrum. This will only work if the potential is monotonically increasing.
-
spectra¶ The Field that is the spectra of the SEC Measurement
-
spectrum_series¶ The SpectrumSeries that is the spectra of the SEC Measurement
-
track_wavelength(wl, width=10, V_ref=None, t_ref=None, index_ref=None)[source]¶ Return and cache a ValueSeries for the dOD for a specific wavelength.
- The cacheing adds wl_str to the SECMeasurement’s data series, where
- wl_str = “w” + int(wl) This is dOD. The raw is also added as wl_str + “_raw”.
- So, to get the raw counts for a specific wavelength, call this function and
- then use __getitem__, as in: sec_meas[wl_str + “_raw”]
- If V_ref, t_ref, or index_ref are provided, they specify what to reference dOD
- to. Otherwise, dOD is referenced to the SECMeasurement’s reference_spectrum.
Parameters: - wl (float) – The wavelength to track in [nm]
- width (float) – The width around wl to average. For example, if wl=400 and width = 20, the spectra will be averaged between 390 and 410 nm to get the values. Defaults to 10. To interpolate at the exact wavelength rather than averaging, specify width=0.
- V_ref (float) – The potential at which to get the reference spectrum
- t_ref (float) – The time at which to get the reference spectrum
- index_ref (int) – The index of the reference spectrum
Returns ValueSeries: The dOD value of the spectrum at wl.
-
wavelength¶ A DataSeries with the wavelengths for the SEC spectra
-
wl¶ A numpy array with the wavelengths in [nm] for the SEC spectra
-