Skip to content

feat(tglc): suffix output files with photometry type and expand CLI -…#28

Open
jpdeleon wants to merge 4 commits into
mainfrom
upgrade
Open

feat(tglc): suffix output files with photometry type and expand CLI -…#28
jpdeleon wants to merge 4 commits into
mainfrom
upgrade

Conversation

@jpdeleon

@jpdeleon jpdeleon commented Jun 9, 2026

Copy link
Copy Markdown
Owner

…-fluxtype

  • tql.py: when --pipeline=tglc and flux_type is "aperture" or "psf",
    the output filename's lctype token becomes "tglc_aper" or "tglc_psf"
    (e.g. TIC123_s11_tglc_psf_lc.png / .h5) so aperture and PSF runs of
    the same target/sector don't overwrite each other on disk. SPOC and
    default-fluxtype TGLC stems are unchanged. The gallery filename
    parser (app.py:_parse_tls_filename) reads only the first token after
    s and the standalone lc/sc cadence token, so it continues to
    resolve pipeline=tglc and the correct cadence on the new stems --
    no migration needed.

  • cli/ql.py: --fluxtype now accepts "aperture", "psf", and "auto" in
    addition to "pdcsap" and "sap", so ql --pipeline tglc --fluxtype psf and friends parse without an argparse error. The value passes
    through to TessQuickLook(flux_type=...), which already maps it to
    get_tglc_lc's photometry arg for the local ePSF fallback and to
    select_flux("cal_aper_flux"/"cal_psf_flux") for MAST TGLC HLSPs.

jpdeleon added 4 commits May 25, 2026 14:42
…-fluxtype

- tql.py: when --pipeline=tglc and flux_type is "aperture" or "psf",
  the output filename's lctype token becomes "tglc_aper" or "tglc_psf"
  (e.g. TIC123_s11_tglc_psf_lc.png / .h5) so aperture and PSF runs of
  the same target/sector don't overwrite each other on disk. SPOC and
  default-fluxtype TGLC stems are unchanged. The gallery filename
  parser (app.py:_parse_tls_filename) reads only the first token after
  s<NN> and the standalone lc/sc cadence token, so it continues to
  resolve pipeline=tglc and the correct cadence on the new stems --
  no migration needed.

- cli/ql.py: --fluxtype now accepts "aperture", "psf", and "auto" in
  addition to "pdcsap" and "sap", so `ql --pipeline tglc --fluxtype
  psf` and friends parse without an argparse error. The value passes
  through to TessQuickLook(flux_type=...), which already maps it to
  get_tglc_lc's `photometry` arg for the local ePSF fallback and to
  select_flux("cal_aper_flux"/"cal_psf_flux") for MAST TGLC HLSPs.
Cancellation
- tglc.py: _fit_epsf_series and get_tglc_lc accept an optional
  zero-arg cancel_check; the helper polls it before each cadence
  and raises InterruptedError so the long ePSF loop actually stops
  mid-fit instead of running to completion.
- tql.py: TessQuickLook.__init__ accepts cancel_check, stores it
  on self; _get_tglc_lc_fallback forwards getattr(self,
  "cancel_check", None) so existing callers without the kwarg
  keep working.
- app.py: run_quicklook_background passes
  cancel_check=cancel_event.is_set into TessQuickLook so the GUI
  Cancel button now ends the worker thread within ~1 s instead of
  waiting for the next phase boundary.

Queueing
- index.html: Submit is re-enabled immediately after the /submit
  fetch succeeds, so a second target can be queued while the first
  is still running. connectWs still auto-watches the just-submitted
  job; the queue panel's watch button lets the user switch focus.
- index.html: websocket update branch now also handles
  msg.status === 'queued', setting the header to "Queued: <target>
  (waiting for worker)" instead of leaving the optimistic
  "Running analysis ..." text from connectWs in place.
- app.py: /submit is now settings-aware. Two non-terminal jobs with
  the same target name AND the same (pipeline, sector, fluxtype,
  exptime) signature are rejected as duplicates; the same target
  with different settings (e.g. SPOC vs TGLC) is auto-disambiguated
  to {target}_{pipeline}[_n] so it can run alongside.

Status-bar flicker fix
- index.html: add a .status-bar.queued CSS rule so the bar stays
  visible while the watched job sits in the queue (without it the
  missing-class fallback to base display:none made the bar -- and
  the Cancel/Cancel All buttons inside it -- disappear on every
  ~1.5 s websocket update). setStatus also keeps the Cancel buttons
  shown for queued jobs since the backend's /cancel accepts them.
…LS phase fix

Gallery viewer:
- Smooth panning of zoomed images via translate()-scale() order and
  requestAnimationFrame-batched transform writes
- Arrow-key navigation between thumbnails while the modal is open

Archival image:
- Overplot nearby non-stellar SIMBAD objects within the image FOV,
  labelled by condensed otype (e.g. EclBin); excludes plain stars
- Emit info logs whether or not objects are detected in FOV
- show_simbad flag: CLI -show_simbad (default off), GUI checkbox
  (default on), threaded through TessQuickLook
- Cache DSS cutouts via astropy download_file (~/.astropy/cache)

Periodogram:
- Fix GLS phase model: pin pg.model() frequency to the fold period so
  the folded model closes into a clean sine instead of drifting
…weaks

Summary panel (tql.py):
- Refactor make_summary_info into _summary_sections (structured data) +
  _render_summary_panel (two-column, aligned label/value layout with bold
  headers, dividers, monospace values)
- Match neighbour font size; size row pitch to longest column so nothing
  overflows the bottom edge
- Align Candidate column with the archival panel's DEC ylabel; nudge
  Stellar column left so long Gaia DR2 IDs clear the right edge
- Move Sector row to the end (after Odd-Even)
- Add Contamination row (sqrt(1+CROWDSAP), the factor applied to undilute
  Rp) for SPOC-family pipelines
- 2 sig figs for ExoFOP stellar prior values in the info log

Plot (plot.py):
- 2 sig figs in the archival survey panel title FOV

GUI (base.html, index.html):
- Stop topbar_current block leaking its value as stray text after </html>
- Add a Gallery button below Recent Results
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