eomatch.finder.sat2sat.Sat2SatMUFinder

eomatch.finder.sat2sat.Sat2SatMUFinder#

class eomatch.finder.sat2sat.Sat2SatMUFinder(*args: Any, **kwargs: Any)[source]#

Finder for collocated pairs of satellite image products.

Wraps the full satellite-to-satellite matchup discovery pipeline:

  1. Run orbitx (or load a cached NetCDF) to obtain crossover events.

  2. Filter events against the spatial/temporal bounds in the context config.

  3. Convert each event to a MatchupEvent.

  4. For each event, query scrappi per platform, check geometric overlap, and build Matchup objects.

  5. Return the full list of MatchupEvent objects, each carrying its MatchupSet.

Example usage:

from eomatch import EOMatchContext
from eomatch.finder.sat2sat import Sat2SatMUFinder

ctx = EOMatchContext("my_config.yaml")
finder = Sat2SatMUFinder(context=ctx)
events = finder.finder()
__init__(context: dict | str | None = None) None#

Initialise the finder.

Parameters:

contextEOMatchContext (or a dict/path accepted by the parent BaseProcessor) supplying runtime configuration. Defaults to EOMatchContext().

Methods

__init__([context])

Initialise the finder.

all_products_overlap(products)

Return True if every pair of products in products has a non-empty geometric intersection.

filter_events(data)

Filter a list of raw orbitx events against the bounds in the context config.

filter_overlapping_products(productitem, ...)

Return the subset of productitemset whose geometry overlaps productitem.

finder()

Run the full matchup discovery pipeline.

get_orbitx_ds()

Return an orbitx matchup dataset, either from a cached NetCDF or by running the propagator.

has_products(product_array)

Return True if product_array is non-None and non-empty.

run_scrappi(query[, context])

Execute a single scrappi query and return the matching products.

to_matchup_event(events)

Convert raw orbitx event dicts to MatchupEvent objects.

to_matchup_set(mu_events)

Query scrappi for each event and build per-event MatchupSet objects.