VS Code extension for visualizing Argo float ocean monitoring data — depth & velocity time-series charts.

Features
- 🗂️ TreeView Navigation — browse devices → dates → profiles in a three-level hierarchy
- 📈 Dual Y-Axis Chart — depth (left) and vertical velocity (right) plotted against time
- ⚡ High Performance — handles 100k+ data points with uPlot's GPU-grade rendering
- 🧵 Worker Thread — CSV parsing & downsampling run off the UI thread, zero lag
- 🔍 Zoom & Pan — interactive time-range exploration with crosshair tooltip
- 💾 Weighted LRU Cache — 5 profiles / 64 MB in-memory, fast profile switching
- 📁 Auto-Discovery — automatically detects Argo data directories in your workspace
Quick Start
- Open a folder containing Argo device data (or set
argoMonitor.dataRootin settings). - The Argo Devices view appears in the Explorer sidebar.
- Expand a device → date → click a profile to open the chart.
Data Directory Structure
{dataRoot}/
{deviceId}/ # numeric folder, e.g. 6001
{date}/ # 6-digit YYMMDD, e.g. 260716
CSV/
Argo2_{date}_{profileNum}_level_type2_interval1.csv
DAT/
TXT/
NC/
Settings
| Setting | Type | Default | Description |
|---|---|---|---|
argoMonitor.dataRoot |
string |
"" |
Root path to your Argo data directory |
If left empty, the extension auto-detects the data root from your workspace folders.
Chart Controls
| Action | Gesture |
|---|---|
| Zoom | Scroll wheel / pinch |
| Pan | Click + drag |
| Crosshair | Hover over the chart |
| Toggle series | Click legend items |
| Reset view | Double-click the chart |
Technical Details
| Component | Technology |
|---|---|
| Chart engine | uPlot v1.6 |
| CSV parser | PapaParse v5 |
| Encoding | iconv-lite (GBK → UTF-8) |
| Worker | Node.js worker_threads |
| Bundler | esbuild |
| Language | TypeScript 5.5 |
Downsampling Algorithm
Min/Max pixel-bucket downsampling preserves signal extrema:
- Binary search the visible time range
- Partition into pixel-width buckets
- Capture min & max for both depth and velocity per bucket
- Merge, sort, deduplicate extreme indices
- Preserve boundary points and NaN gap markers
- Output ≈ 2–4× chart width data points
Performance
| Scenario | Target |
|---|---|
| 100k pts cold load → first render | < 1 sec |
| Cache hit → first render | < 250 ms |
| Zoom query → chart update | < 100 ms |
| Extension host blocking | < 50 ms |
Requirements
- VS Code
^1.90.0
Known Limitations (MVP)
- Depth and velocity only — temperature, salinity, and sensor diagnostics planned for future releases
- No multi-profile overlay yet
- No automatic file watching (manual refresh via toolbar button)
- In-memory cache only (disk cache planned)
License
MIT