Panels¶
The Zelos App provides various panel types for viewing and analyzing your data in different ways. Each panel type is designed for specific use cases and offers unique features.
Available Panels¶
Table Panel¶
View and manage signal data in a tabular format. Features include:
- Multi-signal grouping and expansion
- Real-time filtering and sorting
Panel Features¶
All panels in the Zelos App share some common features:
- Drag and drop data from the tree
- Resize and rearrange within the workspace
- Save all panels into a reusable and sharable layout
- Export panel data in various formats
Usage¶
To add a panel to your workspace:
- Click the "+ Add Panel" button in your workspace
- Select the desired panel type
- Drag data from the tree into the panel
Panels can be:
- Configured through their respective settings
- Resized by dragging their edges
- Moved by dragging their title bar
Layouts
Save your panel arrangements in layouts to quickly switch between different views of your data.
Panel Export Feature¶
The panel export feature allows you to save your panel data in different formats for analysis in external tools or sharing with team members.
How to Export Panel Data¶
- Navigate to the panel you want to export data from
- Click the export icon in the top-right corner of the panel
- Select "Export Data" from the dropdown menu
- Choose your preferred export format (CSV or JSON)
- Select a location to save the exported file
- Click "Save"
Export Formats¶
The panel export feature supports the following formats:
CSV Format¶
CSV exports provide a tabular representation of your data. The first row contains headers (timestamp and signal identifiers), following rows contain corresponding values. The timestamp is in unix format (seconds since epoch).
Example CSV Export:
timestamp,vcan0/vehicle_status.temperature,vcan0/system_diagnostics.code
1746210309.190321,24.5,1200
1746210309.190324,24.6,1201
1746210309.191392,24.7,1202
1746210309.191400,24.8,1203
1746210309.191402,24.9,5044
1746210309.191404,25.0,5045
1746210309.192464,25.1,5046
1746210309.192469,25.2,5047
1746210309.192472,25.3,5048
Empty Cells
Empty cells in the CSV indicate that no data was recorded for that signal at that specific timestamp.
JSON Format¶
JSON exports provide a structured representation of your data, including metadata about the panel, time range, and signals. The timestamp is in unix format (seconds since epoch).
Example JSON Export:
{
"metadata": {
"panel": {
"id": "91f08fdc-bc67-48b6-b2ab-70f08851523d",
"title": "example",
"type": "PLOT"
},
"timeRange": {
"start": "2025-05-02T18:25:14.000Z",
"end": "2025-05-02T18:25:44.000Z"
},
"signals": [
"vcan0/vehicle_status.temperature",
"vcan0/system_diagnostics.code"
],
"exportedAt": "2025-05-02T18:25:44.409Z"
},
"data": {
"timestamps": [1746210309.190321, 1746210309.190324, 1746210309.191392, 1746210309.191400, 1746210309.191402],
"values": {
"vcan0/vehicle_status.temperature": [24.5, 24.6, 24.7, 24.8, 24.9],
"vcan0/system_diagnostics.code": [1200, 1201, 1202, 1203, 5044]
}
}
}
Working with Exported Data¶
There are multiple ways to analyze your exported data depending on your needs and toolset. Whether you prefer spreadsheet applications or programming languages, both export formats allow for flexible analysis options.
Working with CSV Data¶
Use pandas to easily open and analyze CSV exports:
import pandas as pd
# Read the CSV file
df = pd.read_csv('panel_export.csv')
# Display basic information
print(f"Time range: {df['timestamp'].min()} to {df['timestamp'].max()}")
print(f"Number of data points: {len(df)}")
# Basic analysis
temp_column = 'vcan0/vehicle_status.temperature'
print(f"Average temperature: {df[temp_column].mean():.2f}°C")
# Find when temperature exceeded a threshold
high_temps = df[df[temp_column] > 25.0]
if not high_temps.empty:
print(f"Temperature exceeded 25°C at {len(high_temps)} timestamps")
Working with JSON Data¶
The JSON format includes metadata and is easy to work with programmatically:
import json
import pandas as pd
# Load the JSON file
with open('panel_export.json', 'r') as f:
data = json.load(f)
# Print export metadata
print(f"Panel type: {data['metadata']['panel']['type']}")
print(f"Export time range: {data['metadata']['timeRange']['start']} to {data['metadata']['timeRange']['end']}")
# Convert to DataFrame for analysis
df = pd.DataFrame({
'timestamp': data['data']['timestamps'],
'temperature': data['data']['values']['vcan0/vehicle_status.temperature'],
'code': data['data']['values']['vcan0/system_diagnostics.code']
})
# Basic analysis
print(f"Temperature statistics:")
print(f" Min: {df['temperature'].min()}°C")
print(f" Max: {df['temperature'].max()}°C")
print(f" Avg: {df['temperature'].mean():.2f}°C")
# Sample of the DataFrame
print("\nFirst 3 records:")
print(df.head(3))
Troubleshooting Export Issues¶
Missing Data¶
If your exported data contains empty cells (in CSV) or incomplete arrays (in JSON):
- Check that the signals were active during the selected time range
- Verify that your panel is displaying the expected data before exporting
- Consider adjusting the time range to capture more data points
Large File Sizes¶
When exporting very large datasets:
- Consider narrowing the time range before exporting
- Export specific signals rather than all signals at once
- If needed, use the JSON format which may be more efficient for sparse data