Skip to content

Metadata

metadata

One metadata schema for every instrument at NUANCE.

Vendor files describe the same physical quantities in different words and units. Readers translate them into this schema (SI-friendly units in the key names), and keep the untouched vendor block in original_metadata::

instrument:   vendor, model, serial
technique:    SEM | TEM | STEM | FIB | EDS | EELS | AFM | ...
beam:         voltage_kV, current_nA, spot
optics:       magnification, working_distance_mm, hfw_um, camera_length_mm
detector:     name, mode, signal
acquisition:  datetime, dwell_us, frame_integration, line_integration, operator
sample:       name, description, stage {x_mm, y_mm, z_mm, tilt_deg, rotation_deg}
facility:     "NUANCE Center, Northwestern University"

number

number(s: Any) -> Optional[float]

First number in a string ('5.00 kV' -> 5.0, '10.00 K X' -> 10.0).

iso_datetime

iso_datetime(date: Any, time: Any = None) -> Optional[str]

ISO 8601 from a vendor date and time ('12/06/2025' '17:39:19' -> '2025-12-06T17:39:19').

Slashed dates with the year last are read month first, as Thermo Fisher and Hitachi software write them. Returns the input unchanged (as text) if it cannot be parsed, so nothing is lost; the vendor's own value always stays in original_metadata.

summary

summary(md: dict) -> list[str]

Short human-readable lines for the most useful fields.