Skip to main content

fpm_rs/measurements/
metadata.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Serialize, Deserialize)]
4pub struct FrameMetadata {
5    pub frame_index: usize,
6    pub illumination_index: Option<usize>,
7    /// Frame index in the original acquisition before subsetting or reordering.
8    #[serde(default)]
9    pub original_frame_index: Option<usize>,
10    /// Illumination index in the original acquisition before subsetting.
11    #[serde(default)]
12    pub original_illumination_index: Option<usize>,
13    pub exposure_time: f64,
14    pub weight: f64,
15    pub label: Option<String>,
16}
17
18impl FrameMetadata {
19    pub fn new(frame_index: usize) -> Self {
20        Self {
21            frame_index,
22            illumination_index: Some(frame_index),
23            original_frame_index: Some(frame_index),
24            original_illumination_index: Some(frame_index),
25            exposure_time: 1.0,
26            weight: 1.0,
27            label: None,
28        }
29    }
30}