How penn-electric-racing/per-data-analyzer works
PER-Data-Analyzer is an in-house telemetry log parsing and analysis library. Its main workflow loads a CSV into an Analyzer, parses signals into per-variable time-series data, optionally preprocesses and searches that data, then exposes plotting and analysis results. It also supports multi-run collections, live CDP access, and remote log retrieval. The excerpts establish the CSV, Analyzer, search, plotting, and remote-download links; unsampled utility and collection internals are represented without speculative wiring.
Main entry points: analyzer.py Analyzer API · data_instance.py Data Instance · single_run_data.py Single Run Data · server.py Remote Loader
Components 23
Log Ingestion
- CSV Parser
perda/analyzer/csv.py - Analyzer API
perda/analyzer/analyzer.py - Remote Loader
perda/server.py - Run Collections
perda/analyzer/run_collection.py
Telemetry Data
- Single Run Data
perda/core_data_structures/single_run_data.py - Data Instance
perda/core_data_structures/data_instance.py - Preprocessing
perda/utils/preprocessing.py - Alignment and Joins
perda/core_data_structures/joins.py - Resampling
perda/core_data_structures/resampling.py
Analysis Tools
- Signal Search
perda/utils/search.py - Search Indexes
perda/core_data_structures/search_indexes.py - Signal Analysis
perda/utils/signal_processing.py - Frequency Analysis
perda/utils/frequency_analysis.py - GPS Analysis
perda/utils/gps_analysis.py - Data Summary
perda/utils/data_summary.py
Access and Output
- Plot API
perda/analyzer/analyzer.py - Signal Plotters
perda/plotting/data_instance_plotter.py - Subplot Builder
perda/plotting/subplots.py - Live Analyzer
perda/live/live_analyzer.py - CDP Client
perda/live/cdp_client.py
Other components
- Analyst
- Data Server
- S3 Log Bucket
Connections 25
- Analyst → Analyzer API: loads log
- Analyzer API → CSV Parser: parses CSV
- CSV Parser → Single Run Data: builds data
- CSV Parser → Data Instance: builds signals
- Analyzer API → Preprocessing: applies steps
- Preprocessing → Single Run Data: transforms data
- Single Run Data → Search Indexes: stores indexes
- Analyzer API → Signal Search: searches signals
- Signal Search → Search Indexes: uses index
- Signal Search → Single Run Data: reads signals
- Analyzer API → Plot API: plots data
- Plot API → Signal Plotters: renders signals
- Plot API → Subplot Builder: builds subplots
- Signal Plotters → Data Instance: reads series
- Subplot Builder → Data Instance: reads series
- Run Collections → Single Run Data: manages runs
- Data Instance → Alignment and Joins: aligns series
- Data Instance → Resampling: resamples series
- Analyst → Remote Loader: requests log
- Remote Loader → Data Server: authenticates
- Remote Loader → S3 Log Bucket: downloads log
- Remote Loader → Analyzer API: loads download
- Analyst → Live Analyzer: uses live data
- Live Analyzer → CDP Client: requests data
- CDP Client → Data Server: communicates