Skip to content

filewriter: dynamic metadata #88

Open

Description

@Tom-Willemsen

The filewriter must be able to write the 'dynamic' metadata for a run.

These are pieces of metadata which require knowledge from the _events (and/or other) streams to compute. They are 'dynamic' in the sense that they cannot be known at run start.

This includes:

  • raw_data_1/collection_time (because collection_time excludes vetoed/paused time so needs per-frame veto flags)
  • raw_data_1/framelog/events_log
  • raw_data_1/framelog/frame_log
  • raw_data_1/framelog/good_frame_log
  • raw_data_1/framelog/period_log
  • raw_data_1/framelog/proton_charge
  • raw_data_1/framelog/raw_events_log
  • raw_data_1/good_frames
  • raw_data_1/proton_charge
  • raw_data_1/proton_charge_raw
  • raw_data_1/raw_frames
  • raw_data_1/runlog/count_rate
  • raw_data_1/runlog/dae_beam_current
  • raw_data_1/runlog/good_frames
  • raw_data_1/runlog/good_uah_log
  • raw_data_1/runlog/is_running
  • raw_data_1/runlog/is_waiting
  • raw_data_1/runlog/monitor_sum_1
  • raw_data_1/runlog/np_ratio
  • raw_data_1/runlog/period
  • raw_data_1/runlog/period_change_log
  • raw_data_1/runlog/raw_frames
  • raw_data_1/runlog/raw_uah_log
  • raw_data_1/runlog/run_status
  • raw_data_1/runlog/total_counts
  • raw_data_1/runlog/veto_log
  • raw_data_1/total_counts
  • raw_data_1/total_uncounted_counts

Potential differences from existing files

  • raw_data_1/total_uncounted_counts - "uncounted count" may not be a valid concept in datastreaming world. But we can write it as a constant zero instead.

Activity

  1. added this to the March 2027 milestone on Jul 27, 2026
  2. mattclarke commented on Sep 3, 2026

    @mattclarke

    Not entirely sure how to do this in the ESS filewriter at the moment.
    It is almost like doing a post-stopping writing "data" action. i.e.: start writing -> writing streamed data -> stop writing streamed data -> append metadata

  3. Tom-Willemsen commented on Sep 3, 2026

    @Tom-Willemsen
    MemberAuthor

    @mattclarke - thanks - I've written up how we think we'd implement these requirements in #110 - I think I had concluded this would need a number of new writer modules which listen to ev44s and other relevant schemas...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions