uvex_transients.surveys.base.SurveySchedule.compute_pair_count_curve#
- SurveySchedule.compute_pair_count_curve(timescales: Quantity, minimum_factor: float | None = None, maximum_factor: float | None = None, start_time: Time | None = None, end_time: Time | None = None, nside: int | None = None, order: str | None = None, pairs: str = 'all') Quantity[source]#
Compute sensitive sky area over a sequence of transient timescales.
The fast, curve-friendly counterpart to
compute_pair_counts(): the (expensive, HEALPix-footprint-rasterizing) per-pixel visit times are computed once and reused for every timescale, rather than redoing that rasterization inside a loop the way an exact interval-union control-time curve would.Each timescale still re-scans every observed pixel (via
_pixel_pair_count()/_pixel_pair_count_consecutive(), selected bypairs), so cost scales as O(n_timescales * n_observed_pixels * log(visits per pixel)) – no repeated rasterization, and no O(n^2) blowup with the number of repeated full-sky passes, but also no way to get a timescale “for free” the way a precomputed, timescale-independent statistic could. If this loop itself becomes the bottleneck for very fine timescale grids on a very deep multi-pass survey, the per-pixel loop can be vectorized away too (encoding pixel id and time into one sortable key so the whole sky is searched in a single vectorized pass) – not done here since it adds real complexity that isn’t needed until it is.- Parameters:
timescales (
Quantity) – Sequence of characteristic transient timescales.minimum_factor (
float, optional) – Bounds of the qualifying pair-separation window, relative to each timescale. Either may be None (the default) to useconfig["surveys.cadence.minimum_factor"]/config["surveys.cadence.maximum_factor"].maximum_factor (
float, optional) – Bounds of the qualifying pair-separation window, relative to each timescale. Either may be None (the default) to useconfig["surveys.cadence.minimum_factor"]/config["surveys.cadence.maximum_factor"].start_time (
Time, optional) – Optional survey interval to restrict the calculation to.end_time (
Time, optional) – Optional survey interval to restrict the calculation to.nside (
int, optional) – HEALPix resolution parameter, or None to useconfig["healpix.default_nside"].order (
str, optional) – HEALPix ordering scheme, either"nested"or"ring", or None to useconfig["healpix.default_order"].pairs (
str) – Which pairs of observations to include:"all"for every unique pair, or"consecutive"for only pairs of temporally-adjacent visits.
- Returns:
Sensitive sky area (see
compute_pair_counts()) for each input timescale.- Return type: