Skip to content

Add Pipeline Console dashboard (scripts/dashboard_server.py) - #137

Merged
jakobtfaber merged 2 commits into
dsa110:mainfrom
jakobtfaber:dashboard-console-main
Jul 15, 2026
Merged

jakobtfaber merged 2 commits into
dsa110:mainfrom
jakobtfaber:dashboard-console-main

Conversation

@jakobtfaber

Copy link
Copy Markdown
Contributor

Summary

Test plan

  • PYTHONPATH=. pytest tests/test_dashboard_server.py -q → 25 passed
  • ruff check / ruff format --check clean on dashboard files
  • Live H17 :8766 diagnostics: has_positions=True, /api/sky n_sources=257, /api/date cold ~0.85s / warm ~0.45s, variability canonical_metrics=true

Made with Cursor

jakobtfaber and others added 2 commits July 15, 2026 13:10
Three-page operator console on port 8766, tracer bullet for the live
observability stack (dsa110#48-dsa110#62):

- / (telescope): live sky map (client-side LST meridian, Dec strip,
  A-team/VLA-cal/Sun + flux-limited catalog overlay), antenna liveness
  from DSA110_ANT_STATUS_JSON with bandpass-table fallback, geographic
  array scatter from antpos CSV (x/y, east/north, or lat/lon), data-age
  on every live element.
- /pipeline: per-date stage coverage matrix (ingest->photometry),
  checkpoint/quarantine and QA-gate visibility, artifact viewer
  (traversal-guarded), token-gated control: batch_pipeline launch
  (dry-run default), clear-quarantine, job registry with log tail/kill.
  Fail-closed when DSA110_DASH_TOKEN is unset; no shell passthrough.
- /science: eta-ranked variability table using canonical
  photometry.metrics formulas, per-source lightcurves with error bars,
  epoch-mosaic gallery with QA badges and photometry summaries.

scripts/run_dashboard.sh: H17 launcher (casa6 python, persisted 0600
token, background/foreground). 20 tests in tests/test_dashboard_server.py;
design review + live screenshots in outputs/dashboard-review-2026-07-15/.
- /api/dates: validate the 10-char date prefix in scan_ms/scan_cal so
  verify_* cal tables no longer create phantom dates
- /api/sky: include SQL views in catalog sniffing — the VLA calibrator
  DB exposes per-band flux as the vla_20cm VIEW (236 sources >=2 Jy)
- /api/antennas: sniff Excel-export headers in antpos CSVs (title rows,
  leading blank column, "Station Number") and point run_dashboard.sh at
  DSA110_Station_Coordinates.csv; preload casatools at module init so a
  pandas-first request order can't break the caltable import (CXXABI
  conflict between system and conda libstdc++)
- /api/variability: accept production forced-phot schemas
  (dsa_peak_jyb/dsa_peak_err_jyb + source_id, measured_flux_jy +
  source_name) alongside flux_jy; guard non-finite errors
- perf: thumbnail renders and RMS stats on a stride subsample (peak
  stays full-res); cold thumb 40s -> 1.2s on a 122 MB mosaic

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HuhqkSYeQaF8ar8ZDUwi6i
@jakobtfaber
jakobtfaber merged commit 2b9f310 into dsa110:main Jul 15, 2026
1 check passed
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