Data models#
Data from different data formats are represented in memory as a Pydantic models. You can convert between different models and save/load models from file.
NeXus models#
Build an NXxas model instance in steps:
from pynxxas.models import NxXasModel
nxxas_model = NxXasModel(
mode={"name": "transmission"}, element={"symbol": "Fe"}, edge={"name": "K"}
)
nxxas_model.energy = [7, 7.1], "keV"
nxxas_model.intensity = [10, 20]
Create an NXxas model instance from a dictionary and convert back to a dictionary:
data_in = {
"@NX_class": "NXsubentry",
"mode": {"name": "transmission"},
"element": {"symbol": "Fe"},
"edge": {"name": "K"},
"energy": [[7, 7.1], "keV"],
"intensity": [10, 20],
}
nxxas_model = NxXasModel(**data_in)
data_out = nxxas_model.model_dump()