Skip to content

feat: pst-convert, JSON output format and Interactive Track Explorer#102

Merged
mwyau merged 8 commits intomainfrom
feat/pst-convert
Mar 23, 2026
Merged

feat: pst-convert, JSON output format and Interactive Track Explorer#102
mwyau merged 8 commits intomainfrom
feat/pst-convert

Conversation

@mwyau
Copy link
Copy Markdown
Owner

@mwyau mwyau commented Mar 23, 2026

Overview

This PR introduces the pst-convert utility, a new JSON Hybrid Index output format, and a highly interactive, WebGL-powered Storm Track Explorer.

Key Changes

  • pst-convert CLI: A specialized tool to convert tracking data between IMILAST, Hodges, JSON, and standalone HTML formats.
  • JSON Hybrid Index Format: Implemented a flat, Struct-of-Arrays (SoA) JSON format optimized for fast GPU-based rendering.
  • Interactive Track Explorer: Added a responsive HTML/JS explorer with real-time filtering, dual-handle time sliders, and global projections.
  • Documentation Refactor: Standardized all documentation filenames to lowercase and updated internal links for consistency.
  • Build & Cleanup: Restricted builds to x86-64 for shtns compatibility and removed legacy tracking data generation scripts.

Verification

  • `uv run ruff check .` passes.
  • `uv run pytest` passes.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 23, 2026

Codecov Report

❌ Patch coverage is 2.10526% with 186 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.09%. Comparing base (f62b7ab) to head (463739d).
⚠️ Report is 9 commits behind head on main.

Files with missing lines Patch % Lines
src/pystormtracker/io/json.py 0.00% 114 Missing ⚠️
src/pystormtracker/convert.py 0.00% 67 Missing ⚠️
src/pystormtracker/models/tracks.py 25.00% 3 Missing ⚠️
src/pystormtracker/io/imilast.py 60.00% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #102      +/-   ##
==========================================
- Coverage   66.53%   61.09%   -5.45%     
==========================================
  Files          22       24       +2     
  Lines        2059     2249     +190     
==========================================
+ Hits         1370     1374       +4     
- Misses        689      875     +186     
Flag Coverage Δ
integration 55.93% <2.10%> (-4.97%) ⬇️
unit 57.00% <2.10%> (-5.07%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/pystormtracker/io/imilast.py 97.01% <60.00%> (-2.99%) ⬇️
src/pystormtracker/models/tracks.py 91.92% <25.00%> (-1.05%) ⬇️
src/pystormtracker/convert.py 0.00% <0.00%> (ø)
src/pystormtracker/io/json.py 0.00% <0.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mwyau mwyau changed the title feat: pst-convert, JSON output and Storm Track Explorer feat: pst-convert, JSON output format and Storm Track Explorer Mar 23, 2026
- Rename documentation files to lowercase for consistency
- Update toctree and markdown links to reflect lowercase filenames
- Refine 'Open in New Tab' link in interactive explorer
- Fix ruff linting errors in convert.py and io modules
- Mandate 'uv' usage in GEMINI.md
- Remove obsolete generate_track_json.py
@mwyau mwyau changed the title feat: pst-convert, JSON output format and Storm Track Explorer feat: pst-convert, JSON output format and Interactive Track Explorer Mar 23, 2026
@mwyau mwyau merged commit 40b3c66 into main Mar 23, 2026
14 checks passed
@mwyau mwyau deleted the feat/pst-convert branch March 23, 2026 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant