graph LR
DataFrameOrchestrator["DataFrameOrchestrator"]
SingleShotProcessor["SingleShotProcessor"]
HDF5Reader["HDF5Reader"]
DataFlattener["DataFlattener"]
DataFrameAggregator["DataFrameAggregator"]
DataFrameOrchestrator -- "Delegates processing for each file" --> SingleShotProcessor
DataFrameOrchestrator -- "Aggregates results" --> DataFrameAggregator
SingleShotProcessor -- "Reads raw HDF5 data" --> HDF5Reader
SingleShotProcessor -- "Transforms nested data" --> DataFlattener
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
The top-level entry point (get_dataframe_from_shots) that manages the entire workflow. It iterates over a list of file paths, delegates the processing of each file, and aggregates the results into a single, unified DataFrame for the application.
Related Classes/Methods:
The main worker (get_dataframe_from_shot) for an individual data file. It orchestrates the extraction and transformation of data from a single HDF5 file into a pandas Series, which is a row in the final DataFrame.
Related Classes/Methods:
The data extraction component (get_nested_dict_from_shot). It interfaces directly with the HDF5 file format, reading the raw, hierarchical data and metadata into a nested Python dictionary. It also handles type conversions, such as parsing timestamps.
Related Classes/Methods:
A critical transformation utility (flatten_dict). It converts the nested dictionary from the HDF5Reader into a flat, single-level dictionary. This structure is essential for creating a tabular pandas Series/DataFrame.
Related Classes/Methods:
The final assembly component (concat_with_padding). It merges the individual Series/DataFrames from each shot into one master DataFrame. Its key function is to ensure structural consistency by padding missing columns, guaranteeing a well-formed dataset.
Related Classes/Methods: