Source code for est.tests.pymca.test_io_with_pymca
import h5py
import numpy
from est.core.io import dump_xas
from est.core.io import read_from_url
from est.tests.data import example_spectra
from est.core.types import XASObject
from est.io.utils.ascii import build_ascii_data_url
[docs]
def test_read_spectrum(filename_cu_from_pymca):
"""Test read function for spectra and configuration"""
res = read_from_url(
spectra_url=build_ascii_data_url(
file_path=filename_cu_from_pymca,
col_name="Column 1",
scan_title=None,
data_slice=None,
),
channel_url=build_ascii_data_url(
file_path=filename_cu_from_pymca,
col_name="Column 2",
scan_title=None,
data_slice=None,
),
)
assert isinstance(res, XASObject)
assert res.n_spectrum == 1
spectrum_0 = res.spectra.data.flat[0]
assert spectrum_0.mu is not None
assert spectrum_0.energy is not None
[docs]
def test_nx_writing(tmpdir):
"""Test that the nx process is correctly store ad the output data"""
energy, spectra = example_spectra(shape=(256, 20, 10))
xas_obj = XASObject(spectra=spectra, energy=energy, dim1=20, dim2=10)
h5_file = str(tmpdir / "output_file.h5")
dump_xas(h5_file, xas_obj)
with h5py.File(h5_file, "r") as hdf:
assert "scan1" in hdf.keys()
assert "data" in hdf["scan1"].keys()
assert "absorbed_beam" in hdf["scan1"].keys()
assert "monochromator" in hdf["scan1"].keys()
loaded_xas_obj = XASObject.from_file(h5_file, configuration_path=None)
numpy.testing.assert_allclose(loaded_xas_obj.energy, xas_obj.energy)
numpy.testing.assert_allclose(
loaded_xas_obj.absorbed_beam(), xas_obj.absorbed_beam()
)