research · sioslab
Gemini Planet Imager 2.0
SIOSLab, Dr. Dmitry Savransky · Cornell · Fall 2025 · several merged PRs
Instrument-control software for a real exoplanet imager: porting the calibration subsystem from legacy proprietary IDL to Python.
Overview
The GPI 2.0 upgrade rewrites the instrument’s control software from proprietary IDL into Python, organized as one class per hardware assembly — calibration, cameras, coronagraph, pointing, shutters — over a shared RPC backend. I focused on the CAL (calibration) subsystem: porting its alignment-and-centering routine and CAL commands, linting, and fixing defects surfaced during migration.
Design decisions 04
- The CAL routine was ported line-by-line with explicit accounting: every executable IDL line maps to a documented Python translation, so a reviewer can confirm no behavior was silently dropped in the migration.
- Deferred operations fail loudly instead of silently: not-yet-ported routines raise
NotImplementedError or emit runtime warnings at their original call sites, so missing functionality is visible during a run rather than quietly skipped and corrupting a calibration.
- The calibration math keeps its exact numerical behavior — same RPC command identifiers, 3-sigma outlier rejection, 30 mas sanity threshold, 10-sample/1 s tip-tilt cadence — rather than being “improved” during the port, to avoid silent scientific regressions.
- A legacy assumption the new pipeline never exercises is hard-coded and documented instead of ported as a dead conditional branch; legacy bookkeeping calls remain as warning-emitting stubs so call sites stay intact for future work.
Python · IDL · RPC · pytest
listed under research →