Skip to content

Tier scheduler fixes and new detection logics#460

Merged
dsavransky merged 5 commits intomasterfrom
tierScheduler_fixes
Apr 21, 2026
Merged

Tier scheduler fixes and new detection logics#460
dsavransky merged 5 commits intomasterfrom
tierScheduler_fixes

Conversation

@MDamiano
Copy link
Copy Markdown
Collaborator

  • Tiered Scheduler bug fixes (ported from Coro only scheduler);
  • New keyword prom_stop_dets' (boolean) allows to remove an sInd' from the revisit list upon promotion regardless of the value of 'max_successful_dets'. Can be used in the JSON containing input parameters.
  • New keyword disable_dets' (boolean) allows to set 'max_successful_dets' to 0 forcing 'choose_next_telescope_target' to return None. Therefore it sets sInd' equal to `occ_sInd' at every iteration forcing the scheduler to perform characterization observations only.

MDamiano and others added 5 commits February 9, 2026 16:10
`SurveySimulation.scheduleRevisit()` in the prototype assumed `self.revisit_wait` was always a scalar day quantity. On this branch, `tieredScheduler` now falls back to the prototype implementation, but its `revisit_wait` is stored as a per-target quantity array. That caused `t_rev.to_value(u.day)` to be array-valued and NumPy to raise when building `np.array([sInd, ...])`.

This change makes the prototype compatible with both expected forms of `self.revisit_wait`:
- scalar `Quantity` from the prototype / scalar schedulers
- per-target `Quantity` arrays from schedulers like `tieredScheduler`

Implementation:
- if `self.revisit_wait` is array-like, select `self.revisit_wait[sInd]`
- store the revisit row using a plain float day value

This preserves existing prototype behavior while restoring compatibility with schedulers that use per-star revisit waits.

Other relevant schedulers, i.e., coroOnlyScheduler and JSscheduler still use their own implementation of scheduleRevisit, that overrides the prototype. That is why we do not see a failure for those schedulers. JSscheduler uses the exact same logic as the prototype and uses a scalar for revisit_wait. coroOnlyScheduler uses a simplified version of the scheduleRevisit function and revisit_wait is an array that stores the time per star.
@dsavransky dsavransky merged commit e04cd29 into master Apr 21, 2026
2 checks 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.

2 participants