uvex_transients.surveys.base.SurveySchedule.get_observations_of#
- SurveySchedule.get_observations_of(coord: SkyCoord, start_time: Time | None = None, end_time: Time | None = None) QTable[source]#
Return the
"observe"rows whose footprint covers a sky position.Useful for checking whether – and when – the survey observed a given position, e.g. to evaluate detectability of a simulated transient.
As a performance optimization, candidate rows are first narrowed down with a cheap angular-separation pre-filter using
bounding_radius, then confirmed with a single, vectorized exact containment test (m4opt.fov.contains()): rather than rotatinginstrument_fovout to each candidate pointing and testingcoordagainst each rotated copy in a loop (which rebuilds a WCS – the dominant cost – once per candidate row),coordis transformed into each candidate’s own local pointing frame and tested against the single, unrotatedinstrument_fovall at once. This is the same geometric test, just inverted to build one WCS per call instead of one per candidate row.- Parameters:
coord (
SkyCoord) – Scalar sky position to test.start_time (
Time, optional) – Optional time window to restrict the search to (seeget_rows_between_times()). Must be given together. If both are None (the default), every"observe"row in the schedule is considered.end_time (
Time, optional) – Optional time window to restrict the search to (seeget_rows_between_times()). Must be given together. If both are None (the default), every"observe"row in the schedule is considered.
- Returns:
The subset of
tablewhose observed footprint containscoord, in chronological order. Empty if there is no such row.- Return type:
QTable- Raises:
ValueError – If
coordis not scalar, or exactly one ofstart_time/end_timeis given.