Jupyter Notebook - Retrieve Data
SDS Data Retrieval
Get data for a list of PVs which have been stored in the SDS.
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"],
start="2025-06-18 04:57:34.543456789",
end="2025-06-18 04:57:35.523456789"
)
Display data
Simply print the dataframe in its default table format.
df
shape: (14, 31)
| RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_ts | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_stored_at | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_collector | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_ctype | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_pv | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_array | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_id | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_count | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_code | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_ts | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_sds_cycle_id | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_sds_cycle_ts | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_mode | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_state | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_present | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_len | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_energy | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_current | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_beam_dest | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_buffer_size | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_buffer_index | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_array_sampling | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_array_decimation | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_array_size | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_name | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_evr | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_delay | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_code | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_trig_ts | cycle_id | cycle_ts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| datetime[ns, UTC] | datetime[μs, UTC] | str | str | str | list[f32] | u64 | u64 | u64 | datetime[ns, UTC] | u64 | datetime[ns, UTC] | str | str | bool | u32 | u32 | u32 | str | u32 | u32 | f32 | u32 | u32 | str | str | f32 | u64 | datetime[ns, UTC] | i64 | datetime[ns, UTC] |
| 2025-06-18 04:57:34.540612608 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [4.928, 5.028, … 5.008] | 15667114443 | 27329444 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114431 | 2025-06-18 04:57:34.540612608 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 0 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:34.612041216 UTC | 15667114431 | 2025-06-18 04:57:34.540612589 UTC |
| 2025-06-18 04:57:34.612041216 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [4.888, 4.948, … 4.908] | 15667114443 | 27329444 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114432 | 2025-06-18 04:57:34.612041216 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 1 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:34.683469824 UTC | 15667114432 | 2025-06-18 04:57:34.612041157 UTC |
| 2025-06-18 04:57:34.683469824 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [4.968, 4.948, … 4.818] | 15667114443 | 27329446 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114433 | 2025-06-18 04:57:34.683469824 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 2 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:34.754898176 UTC | 15667114433 | 2025-06-18 04:57:34.683469725 UTC |
| 2025-06-18 04:57:34.754898176 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [5.028, 5.008, … 4.978] | 15667114443 | 27329448 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114434 | 2025-06-18 04:57:34.754898176 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 3 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:34.826326784 UTC | 15667114434 | 2025-06-18 04:57:34.754898293 UTC |
| 2025-06-18 04:57:34.826326784 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [4.968, 4.868, … 4.838] | 15667114443 | 27329448 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114435 | 2025-06-18 04:57:34.826326784 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 4 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:34.897755392 UTC | 15667114435 | 2025-06-18 04:57:34.826326861 UTC |
| … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 2025-06-18 04:57:35.183469824 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [4.898, 4.888, … 4.918] | 15667114443 | 27329452 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114440 | 2025-06-18 04:57:35.183469824 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 9 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:35.254898176 UTC | 15667114440 | 2025-06-18 04:57:35.183469702 UTC |
| 2025-06-18 04:57:35.254898176 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [4.788, 4.918, … 4.908] | 15667114443 | 27329454 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114441 | 2025-06-18 04:57:35.254898176 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 10 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:35.326326784 UTC | 15667114441 | 2025-06-18 04:57:35.254898270 UTC |
| 2025-06-18 04:57:35.326326784 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [5.008, 4.978, … 4.978] | 15667114443 | 27329456 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114442 | 2025-06-18 04:57:35.326326784 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 11 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:35.397755392 UTC | 15667114442 | 2025-06-18 04:57:35.326326839 UTC |
| 2025-06-18 04:57:35.397755392 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [5.028, 4.978, … 5.008] | 15667114443 | 27329456 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114443 | 2025-06-18 04:57:35.397755392 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 12 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:35.469184 UTC | 15667114443 | 2025-06-18 04:57:35.397755407 UTC |
| 2025-06-18 04:57:35.469184 UTC | 2025-06-18 05:02:40 UTC | "RFQ-010-FIM-DOD" | "DD" | "RFQ-010:RFS-Cav-110:Fld-Wave_S… | [4.898, 4.958, … 4.958] | 15667114443 | 27329456 | 42 | 2025-06-18 04:57:35.412678656 UTC | 15667114444 | 2025-06-18 04:57:35.469184 UTC | "SlowCommissioning" | "BEAM_PRESENT_YES_FAKE" | false | 0 | 0 | 59300 | "LebtFc" | 14 | 13 | 1e6 | 1 | 8000 | "RFQ-010:RFS-EVR-101" | "DlyGen-6" | -3000.0 | 14 | 2025-06-18 04:57:35.540612608 UTC | 15667114444 | 2025-06-18 04:57:35.469183975 UTC |
Simple calculations
Find the maximum and minimum values in the data array for 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.max()).alias("max_value"),
(pl.col("RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_array").list.min()).alias("min_value"),
).select(
"cycle_id", "cycle_ts", "RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_id","RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_array", "max_value", "min_value"
)
df_partial
shape: (14, 6)
| cycle_id | cycle_ts | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_event_id | RFQ-010:RFS-Cav-110:Fld-Wave_SDS-DODData_data_array | max_value | min_value |
|---|---|---|---|---|---|
| i64 | datetime[ns, UTC] | u64 | list[f32] | f32 | f32 |
| 15667114431 | 2025-06-18 04:57:34.540612589 UTC | 15667114443 | [4.928, 5.028, … 5.008] | 122.668152 | 4.828 |
| 15667114432 | 2025-06-18 04:57:34.612041157 UTC | 15667114443 | [4.888, 4.948, … 4.908] | 122.686546 | 4.658 |
| 15667114433 | 2025-06-18 04:57:34.683469725 UTC | 15667114443 | [4.968, 4.948, … 4.818] | 122.64975 | 4.738 |
| 15667114434 | 2025-06-18 04:57:34.754898293 UTC | 15667114443 | [5.028, 5.008, … 4.978] | 122.769356 | 4.828 |
| 15667114435 | 2025-06-18 04:57:34.826326861 UTC | 15667114443 | [4.968, 4.868, … 4.838] | 122.576141 | 4.708 |
| … | … | … | … | … | … |
| 15667114440 | 2025-06-18 04:57:35.183469702 UTC | 15667114443 | [4.898, 4.888, … 4.918] | 122.695747 | 4.728 |
| 15667114441 | 2025-06-18 04:57:35.254898270 UTC | 15667114443 | [4.788, 4.918, … 4.908] | 122.594543 | 4.728 |
| 15667114442 | 2025-06-18 04:57:35.326326839 UTC | 15667114443 | [5.008, 4.978, … 4.978] | 122.709549 | 4.788 |
| 15667114443 | 2025-06-18 04:57:35.397755407 UTC | 15667114443 | [5.028, 4.978, … 5.008] | 122.599144 | 4.828 |
| 15667114444 | 2025-06-18 04:57:35.469183975 UTC | 15667114443 | [4.898, 4.958, … 4.958] | 5.158 | 4.788 |