sci_task_io
sci_task_io is a cross-language library for reading, writing, validating, and organizing scientific trajectory data.
The repository defines one canonical JSON trajectory contract and provides:
- a Python runtime for trajectory IO, aggregation, processed NPY output, and model discovery
- a Rust runtime for trajectory IO, validation, checkpoint handling, and directory-backed trajectory series loading
Repository Layout
schema/schema.md: human-readable schematrajectory.json.schema: machine-readable JSON schemasignal_label.npy.schema.md: processed NPY payload shapefixtures/contract/: valid and invalid JSON fixtures
python/src/sci_task_io/trajectory/: trajectory APIsrc/sci_task_io/model/: model and model-cluster utilitiesexamples/: runnable examples
rust/src/trajectory/: Rust trajectory modulesexamples/: runnable examples
Trajectory Contract
Canonical JSON files are stored as <series_id>.json.
Top-level shape:
metadata: optional objectscalars: optional scalar key-value objectsignals: required object keyed astrack_1,track_2, ...
Each track contains:
label: non-empty stringtimes: array of time valuessignal: array aligned 1:1 withtimes
Python can also write processed per-label outputs as <signal_label>.npy.
Python API
Top-level imports from sci_task_io:
TrajectorySignalTrackTrajectorySeriesModelModelClusterload_trajectory_jsonsave_trajectory_jsontrajectory_from_payloadvalidate_trajectory_payload
Typical usage:
=
=
=
=
Rust API
Main module:
sci_task_io::trajectory
Important exports:
TrajectorySignalTrackTrajectorySeriesTrajectoryHubload_trajectory_jsonsave_trajectory_jsontrajectory_from_payloadvalidate_trajectory_payload- checkpoint helpers such as
load_latest_checkpointandsync_checkpoint_dirs
Typical usage:
use ;
let mut trajectory = with_track_capacity;
trajectory
.metadata_mut
.insert;
trajectory.push_row?;
trajectory.push_row?;
trajectory.save_json?;
let trajectory = from_json?;
let frequencies = trajectory.track_by_label;
let mut series = from_dir?;
let ids = series.serial_ids?;
Examples
- Python:
python/examples/basic_usage.py - Rust:
rust/examples/dummy_project.rs
Scope
- Python includes model discovery and processed NPY helpers.
- Rust currently does not implement model discovery or NPY processing.