Convert tabular CSV data to MCAP format with support for ROS2 and JSON schemas
Project description
Tabular2MCAP
Convert tabular data (CSV, Parquet) to MCAP format with support for ROS2 and JSON schemas, enabling seamless integration with robotics workflows, data visualization in Foxglove Studio, and playback of sensor and navigation data.
Please ⭐ if this helps you today!
Features
- Multi-Format Support: Convert to ROS2 or JSON messages with support for standard message types (e.g.,
sensor_msgs/msg/NavSatFix,geometry_msgs/msg/TransformStamped,foxglove.LocationFix, and more) - Configuration-Driven: YAML-based mapping with Jinja2 templates for flexible data transformation
- Batch Processing: Process multiple files and directories with a single command
Quick Start
Installation
pip install tabular2mcap
Basic Usage
tabular2mcap \
-i /path/to/data/directory \
-o output.mcap \
-c config.yaml \
-f converter_functions.yaml
Configuration System
The tool uses YAML configuration files to define how CSV files should be processed. These are:
config.yaml: Defines file patterns and converter function mappingsconverter_functions.yaml: Contains Jinja2 templates for data transformation
Example Configurations
JSON Format:
# config.yaml
writer_format: "json"
file_mappings:
- file_pattern: 'data.csv'
converter_functions:
- function_name: "row_to_foxglove_location_fix"
schema_name: "foxglove.LocationFix"
topic_suffix: "LocationFix"
ROS2 Format:
# config.yaml
writer_format: "ros2"
tabular_mappings:
- file_pattern: '**/data.csv'
converter_functions:
- function_name: "row_to_nav_sat_fix"
schema_name: "sensor_msgs/msg/NavSatFix"
topic_suffix: "NavSatFix"
Tutorial
For detailed instructions on adding support for new types of CSV data, see the Tutorial in the documentation.
Contributing
See CONTRIBUTING.md for development setup, testing, and contribution guidelines.
Supported By
This project is supported by Alloy - Search all your robot data in plain english. Alloy provides a platform to unify image, time-series, and log search for robotics teams.
License
GNU General Public License v3.0 - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tabular2mcap-0.1.4.tar.gz.
File metadata
- Download URL: tabular2mcap-0.1.4.tar.gz
- Upload date:
- Size: 75.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d8d62ecfcb408f6a49f827f3a93d5c86c34c578f516ec8907b7e5b3c3279f1a
|
|
| MD5 |
4b3f548125937c964d8cd8bbd0611b3d
|
|
| BLAKE2b-256 |
39779eb91b3bbde9670171820cb80fde83f077c1c63940caff81ef61484b64ac
|
Provenance
The following attestation bundles were made for tabular2mcap-0.1.4.tar.gz:
Publisher:
publish.yml on alloyrobotics/tabular2mcap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tabular2mcap-0.1.4.tar.gz -
Subject digest:
6d8d62ecfcb408f6a49f827f3a93d5c86c34c578f516ec8907b7e5b3c3279f1a - Sigstore transparency entry: 651514365
- Sigstore integration time:
-
Permalink:
alloyrobotics/tabular2mcap@b62b7468d441c6f19597aabb737ea27ba8143961 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/alloyrobotics
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b62b7468d441c6f19597aabb737ea27ba8143961 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file tabular2mcap-0.1.4-py3-none-any.whl.
File metadata
- Download URL: tabular2mcap-0.1.4-py3-none-any.whl
- Upload date:
- Size: 102.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73b758fde95043f299514cee99c9e38189f0bbcae96c9f88f614a8f39365de76
|
|
| MD5 |
587b7f61e503602597e4e601d0b219f2
|
|
| BLAKE2b-256 |
580ba6cfa09c35a2b67e372c08960a99913a702ce079884a2cc78d4331a3c0e4
|
Provenance
The following attestation bundles were made for tabular2mcap-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on alloyrobotics/tabular2mcap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tabular2mcap-0.1.4-py3-none-any.whl -
Subject digest:
73b758fde95043f299514cee99c9e38189f0bbcae96c9f88f614a8f39365de76 - Sigstore transparency entry: 651514366
- Sigstore integration time:
-
Permalink:
alloyrobotics/tabular2mcap@b62b7468d441c6f19597aabb737ea27ba8143961 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/alloyrobotics
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b62b7468d441c6f19597aabb737ea27ba8143961 -
Trigger Event:
workflow_dispatch
-
Statement type: