eomatch.finder.base.BaseMUFinder.all_products_within_time_diff

eomatch.finder.base.BaseMUFinder.all_products_within_time_diff#

BaseMUFinder.all_products_within_time_diff(products: list[scrappi.ProductItem], threshold: float) → bool[source]#

Return True if every pair of products has time ranges no more than threshold seconds apart.

Products are treated as intervals ([start_time, stop_time]), not instants – two overlapping ranges always pass (a gap of zero) regardless of how wide either range is. This matters whenever one product is a genuinely wide window rather than a near-instantaneous pass – e.g. a satellite overpass (a few minutes) against a RadCalNet daily file (a multi-hour daylight recording window, see scrappi.api.radcalnet_api_client.RadcalnetCallHandler._daylight_window_hours): what matters is whether the satellite’s moment falls within (or near) that window, not the raw difference between the two products’ start times, which is large even for a satellite pass squarely in the middle of the window.

Parameters:
  • products – list of ProductItem objects to check.

  • threshold – maximum allowed gap between any pair, in seconds.

Returns:

True if every pair’s time gap is within threshold.