Skip to content

metadata

merge_metadata(*metadata)

Merge Metadata for a series of SpectraContainers

Source code in mmg_toolbox/xas/metadata.py
def merge_metadata(*metadata: Metadata) -> Metadata:
    """
    Merge Metadata for a series of SpectraContainers
    """
    if len(metadata) == 0:
        return Metadata()

    first = metadata[0]
    return Metadata(
        filename = '',
        beamline = first.beamline,
        scan_no = 0,
        start_date_iso = min(m.start_date_iso for m in metadata),
        end_date_iso = max(m.end_date_iso for m in metadata),
        cmd = first.cmd,
        count_time = first.count_time,
        pol = first.pol,
        pol_angle = first.pol_angle,
        sample_name = first.sample_name,
        temp = sum(m.temp for m in metadata) / len(metadata),
        mag_field = sum(m.mag_field for m in metadata) / len(metadata),
        pitch = sum(m.pitch for m in metadata) / len(metadata),
    )

merge_xas_metadata(*metadata)

Merge Metadata for a series of SpectraContainers

Source code in mmg_toolbox/xas/metadata.py
def merge_xas_metadata(*metadata: XasMetadata) -> XasMetadata:
    """
    Merge Metadata for a series of SpectraContainers
    """
    if len(metadata) == 0:
        return XasMetadata()

    first = metadata[0]
    return XasMetadata(
        filename='',
        beamline=first.beamline,
        scan_no=0,
        start_date_iso=min(m.start_date_iso for m in metadata),
        end_date_iso=max(m.end_date_iso for m in metadata),
        cmd=first.cmd,
        count_time=first.count_time,
        pol=first.pol,
        pol_angle=first.pol_angle,
        sample_name=first.sample_name,
        temp=sum(m.temp for m in metadata) / len(metadata),
        mag_field=sum(m.mag_field for m in metadata) / len(metadata),
        pitch=sum(m.pitch for m in metadata) / len(metadata),
        default_mode=first.default_mode,
        element=first.element,
        edge=first.edge,
        energy=first.energy,
        monitor=first.monitor,
        raw_signals=first.raw_signals
    )