Jupyter Notebook - Retrieve Data

SDS & Archiver Data Retrieval

Get data from two sources, specify a time range.

Import modules

Need a data reading function from ops_data_client:

from ops_data_client import get_data
import polars as pl

Get PV data

Using the full PV names, get data from the SDS, which is returned as a Polars Dataframe.

df = get_data(
    pvs=["RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData",
         "PBI-APTM02:Ctrl-ECAT-100:WF-Temp11"],
    start="2025-06-11 04:06:25.925641123",
    end="2025-06-11 04:06:26.782784123456"
)

Display data

Simply print the dataframe in its default table format.

df
shape: (16, 36)
PBI-APTM02:Ctrl-ECAT-100:WF-Temp11_data_arrayPBI-APTM02:Ctrl-ECAT-100:WF-Temp11_severityPBI-APTM02:Ctrl-ECAT-100:WF-Temp11_statusPBI-APTM02:Ctrl-ECAT-100:WF-Temp11_field_valuesPBI-APTM02:Ctrl-ECAT-100:WF-Temp11_data_tscycle_idcycle_tsRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_tsRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_stored_atRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_collectorRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_ctypeRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_pvRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_arrayRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_idRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_countRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_codeRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_tsRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_sds_cycle_idRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_sds_cycle_tsRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_modeRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_stateRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_presentRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_lenRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_energyRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_currentRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_destRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_buffer_sizeRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_buffer_indexRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_array_samplingRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_array_decimationRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_array_sizeRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_nameRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_evrRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_delayRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_codeRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_ts
list[f64]i64i64list[null]datetime[ns, UTC]i64datetime[ns, UTC]datetime[ns, UTC]datetime[μs, UTC]strstrstrlist[f32]u64u64u64datetime[ns, UTC]u64datetime[ns, UTC]strstrboolu32u32u32stru32u32f32u32u32strstrf32u64datetime[ns, UTC]
nullnullnullnullnull156586041722025-06-11 04:06:25.854212373 UTC2025-06-11 04:06:25.854212352 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[4.908, 4.898, … 4.918]1565860418318819282422025-06-11 04:06:26.668351744 UTC156586041722025-06-11 04:06:25.854212352 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"1401e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:25.925640960 UTC
[21.791, 23.152, … 0.0]00[]2025-06-11 04:06:25.925640941 UTC156586041732025-06-11 04:06:25.925640941 UTC2025-06-11 04:06:25.925640960 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[4.898, 4.918, … 4.778]1565860418318819284422025-06-11 04:06:26.668351744 UTC156586041732025-06-11 04:06:25.925640960 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"1411e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:25.997069568 UTC
[20.950001, 23.01, … 0.0]00[]2025-06-11 04:06:25.997069509 UTC156586041742025-06-11 04:06:25.997069509 UTC2025-06-11 04:06:25.997069568 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[5.028, 4.998, … 4.988]1565860418318819284422025-06-11 04:06:26.668351744 UTC156586041742025-06-11 04:06:25.997069568 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"1421e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:26.068498176 UTC
[20.929001, 19.315001, … 0.0]00[]2025-06-11 04:06:26.068498077 UTC156586041752025-06-11 04:06:26.068498077 UTC2025-06-11 04:06:26.068498176 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[4.898, 4.888, … 4.888]1565860418318819284422025-06-11 04:06:26.668351744 UTC156586041752025-06-11 04:06:26.068498176 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"1431e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:26.139926528 UTC
[18.632, 20.610001, … 0.0]00[]2025-06-11 04:06:26.139926646 UTC156586041762025-06-11 04:06:26.139926646 UTC2025-06-11 04:06:26.139926528 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[4.918, 4.828, … 4.878]1565860418318819286422025-06-11 04:06:26.668351744 UTC156586041762025-06-11 04:06:26.139926528 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"1441e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:26.211355136 UTC
[18.878, 22.485001, … 0.0]00[]2025-06-11 04:06:26.639926623 UTC156586041832025-06-11 04:06:26.639926623 UTC2025-06-11 04:06:26.639926528 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[5.018, 4.998, … 4.828]1565860418318819292422025-06-11 04:06:26.668351744 UTC156586041832025-06-11 04:06:26.639926528 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"14111e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:26.711355136 UTC
[18.878, 22.485001, … 0.0]00[]2025-06-11 04:06:26.639926623 UTC156586041832025-06-11 04:06:26.639926623 UTC2025-06-11 04:06:26.639926528 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[4.898, 4.858, … 4.958]1565860418318819292422025-06-11 04:06:26.668351744 UTC156586041832025-06-11 04:06:26.639926528 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"14121e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:26.782783744 UTC
[22.555, 22.573999, … 0.0]00[]2025-06-11 04:06:26.711355191 UTC156586041842025-06-11 04:06:26.711355191 UTC2025-06-11 04:06:26.711355136 UTC2025-06-11 04:10:03 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[5.168, 5.148, … 4.928]1565860418318819294422025-06-11 04:06:26.668351744 UTC156586041842025-06-11 04:06:26.711355136 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"14131e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:26.782783744 UTC
[22.555, 22.573999, … 0.0]00[]2025-06-11 04:06:26.711355191 UTC156586041842025-06-11 04:06:26.711355191 UTC2025-06-11 04:06:26.711355136 UTC2025-06-11 09:33:09 UTC"RFQ-010-FIM-DOD""DD""RFQ-010:RFS-Cav-110:Fld-Wave_S…[5.168, 5.148, … 4.928]1565860418318819294422025-06-11 04:06:26.668351744 UTC156586041842025-06-11 04:06:26.711355136 UTC"Probe""BEAM_PRESENT_YES_FAKE"false0059300"LebtFc"14131e618000"RFQ-010:RFS-EVR-101""DlyGen-6"-3000.0142025-06-11 04:06:26.782783744 UTC
[20.827, 21.809, … 0.0]00[]2025-06-11 04:06:26.782783759 UTC156586041852025-06-11 04:06:26.782783759 UTCnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull

Simple calculations

Find the mean values in the data array for each PV in each cycle, then display just some of the dataframe columns.

df_partial = df.with_columns(
    (pl.col("RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_array").list.mean()).alias("sds_mean_value"),
    (pl.col("PBI-APTM02:Ctrl-ECAT-100:WF-Temp11_data_array").list.mean()).alias("arch_mean_value"),
).select(
      "cycle_id", "cycle_ts", "RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_array","PBI-APTM02:Ctrl-ECAT-100:WF-Temp11_data_array", "sds_mean_value", "arch_mean_value"
)

df_partial
shape: (16, 6)
cycle_idcycle_tsRFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_arrayPBI-APTM02:Ctrl-ECAT-100:WF-Temp11_data_arraysds_mean_valuearch_mean_value
i64datetime[ns, UTC]list[f32]list[f64]f32f64
156586041722025-06-11 04:06:25.854212373 UTC[4.908, 4.898, … 4.918]null4.888259null
156586041732025-06-11 04:06:25.925640941 UTC[4.898, 4.918, … 4.778][21.791, 23.152, … 0.0]4.8546196.180347
156586041742025-06-11 04:06:25.997069509 UTC[5.028, 4.998, … 4.988][20.950001, 23.01, … 0.0]4.9845376.302639
156586041752025-06-11 04:06:26.068498077 UTC[4.898, 4.888, … 4.888][20.929001, 19.315001, … 0.0]4.8819176.740958
156586041762025-06-11 04:06:26.139926646 UTC[4.918, 4.828, … 4.878][18.632, 20.610001, … 0.0]4.8933186.561056
156586041832025-06-11 04:06:26.639926623 UTC[5.018, 4.998, … 4.828][18.878, 22.485001, … 0.0]4.9251446.506083
156586041832025-06-11 04:06:26.639926623 UTC[4.898, 4.858, … 4.958][18.878, 22.485001, … 0.0]4.9113726.506083
156586041842025-06-11 04:06:26.711355191 UTC[5.168, 5.148, … 4.928][22.555, 22.573999, … 0.0]4.9555746.503056
156586041842025-06-11 04:06:26.711355191 UTC[5.168, 5.148, … 4.928][22.555, 22.573999, … 0.0]4.9555746.503056
156586041852025-06-11 04:06:26.782783759 UTCnull[20.827, 21.809, … 0.0]null6.178431