PulseEPR
- class specatalog.models.measurements.PulseEPR(**kwargs)[source]
Pulsed electron paramagnetic resonance (pulsed EPR) measurement.
This subclass of
Measurementrepresents any pulsed EPR experiment, e.g. transient nutations, PELTOR, saturation recovery… This model adds pulsed-EPR-specific parameters such as the experiment type (e.g. Hahn Echo, ESEEM), frequency band, and optional excitation wavelength for optically triggered sequences.The model participates in SQLAlchemy polymorphism using the
"pulse_epr"polymorphic_identity. Any row inmeasurementswheremethod='pulse_epr'is therefore automatically loaded as aPulseEPRinstance.- id
Primary key linked to
measurements.idwith cascading delete.- Type:
int
- pulse_experiment
Type of pulsed EPR sequence used (e.g. Hahn Echo, Rabi, ESEEM).
- Type:
str
- frequency_band
Microwave frequency band of the experiment (e.g. X, Q, W-band). Optional because certain pulsed setups define frequency elsewhere.
- Type:
str or None
- attenuation
Microwave attenuation setting applied during the pulse sequence.
- Type:
str or None
- excitation_wl
Excitation wavelength in nanometres for optically triggered pulsed EPR experiments. Optional and only used for light-induced sequences.
- Type:
float or None
Notes
The tablename is
pulse_epr.All shared measurement metadata (temperature, solvent, operator, timestamps, file path, etc.) are inherited from
Measurement.The
idcorresponds directly to the entry in the mainmeasurementstable via single-table inheritance.Pulse-experiments usually have many metadata that are important. A file containing the metadata (e.g. a .DSC-file) should be saved with the raw data at
/data/Mxy/raw.
Examples
Creating a pulsed EPR measurement:
>>> from measurements import PulseEPR >>> from molecules import Molecule >>> mol = Molecule(name="PDI-TEMPO") >>> m = PulseEPR( ... molecule=mol, ... method="pulse_epr", ... temperature=80.0, ... solvent="Toluene", ... date=date(2025, 4, 12), ... measured_by="Bob", ... path="/data/M21/measurement_M21.h5", ... corrected=False, ... evaluated=False, ... pulse_experiment="HahnEcho", ... frequency_band="X", ... attenuation="20 dB", ... excitation_wl=532.0, ... ) >>> session.add(m) >>> session.commit()
Loading via polymorphism:
>>> m = session.query(Measurement).filter_by(id=21).one() >>> type(m) <class 'models.PulseEPR'>