eomatch.finder.sat2insitu.Sat2InSituMUFinder.identify_mu_events

eomatch.finder.sat2insitu.Sat2InSituMUFinder.identify_mu_events#

Sat2InSituMUFinder.identify_mu_events() → List[MatchupEvent][source]#

Identify candidate matchup events between the satellite and in-situ site.

Queries scrappi for the configured satellite collection over the in-situ site’s own registered ROI (resolved via the in-situ collection’s scrappi API, e.g. RadcalnetCallHandler.get_roi_shapely) for the whole start_time-end_time window in the context config, then clusters the returned products into events by time gap (see parse_matchup_events()) – consecutive satellite passes closer together than time_diff_threshold become one event.

platforms/collections in the context config are paired by position (same convention as get_scrappi_queries()): whichever entry lines up with the in-situ collection is taken as the in-situ site name (e.g. "GONA") passed to get_roi_shapely.

If the provider_by_collection config dict has an entry for the satellite collection, the query is tagged with provider=<name>, which scrappi forwards unchanged to eodag’s search() – see to_matchup_set() for the full rationale (pinning a provider, eodag’s fallback-disabling behaviour, silent failure on a misconfigured name). This is the same config entry to_matchup_set() also reads, applied here to this method’s own single broad discovery query.

Raises:

ValueError – if collections does not contain exactly one in-situ collection and one satellite collection, or if no scrappi API is registered for the in-situ collection.

Returns:

list of MatchupEvent objects, one per cluster of satellite products, with a bbox covering the whole cluster; matchup_set is not yet populated (see to_matchup_set()).