eomatch.generate_previews.generate_previews

eomatch.generate_previews.generate_previews#

eomatch.generate_previews.generate_previews(catalogue_path: str, collections: List[str] | None = None, platforms: List[str] | None = None, start_time: datetime | None = None, stop_time: datetime | None = None, bbox: List[float] | None = None, max_pixels: int = 512, overwrite: bool = False, generate_thumbnail: bool = True, generate_overview: bool = True, generate_event_thumbnail: bool = True, generate_event_overview: bool = True, context: EOMatchContext | None = None) → int[source]#

Generate preview thumbnails for matchups and events in a STAC catalogue.

For each matchup item, optionally generates:

  • A side-by-side PNG thumbnail ("thumbnail" asset) showing imagery from each sensor.

  • A georeferenced RGBA GeoTIFF overview ("overview" asset) that STAC Browser renders on the slippy map.

For each matchup event item, optionally generates:

  • A PNG thumbnail ("thumbnail" asset) showing product footprints coloured by collection.

  • A georeferenced RGBA GeoTIFF overview ("overview" asset) with semi-transparent polygon footprints, suitable for overlay on the slippy map.

Only matchup assets for events whose source products have already been downloaded are generated. Event assets are generated whenever a matchup set is present. Assets that already exist are skipped unless overwrite=True. Each asset is saved to the thumbnails/ tree inside the catalogue and the item JSON is updated on disk immediately.

Intended as a periodic job: running it repeatedly on the same catalogue is safe — already-generated items are left untouched.

Uses static "thumbnail"/"overview" keys rather than register_analysis()’s dated-snapshot + :latest convention: a thumbnail is a refreshed view of the same matchup, not a new analysis result to keep a history of, so there is nothing worth accumulating dated copies of — overwrite=True regenerates it in place instead.

Example usage:

from eomatch.generate_previews import generate_previews

n = generate_previews("/path/to/catalogue", max_pixels=256)
n = generate_previews("/path/to/catalogue", generate_overview=True)
Parameters:
  • catalogue_path – path to the root catalog.json of an existing MatchupCatalogue.

  • collections – restrict to one sensor pair, e.g. ["S2_MSI_L1C", "LANDSAT_C2L1"].

  • platforms – return only events that include at least one of these platforms.

  • start_time – lower bound on event time (inclusive).

  • stop_time – upper bound on event time (inclusive).

  • bbox – spatial filter as [lon_min, lat_min, lon_max, lat_max].

  • max_pixels – maximum pixel extent in either spatial dimension of the generated assets.

  • overwrite – if True, regenerate assets even when they already exist.

  • generate_thumbnail – if True (default), generate the side-by-side PNG thumbnail for matchups and register it as a "thumbnail" asset.

  • generate_overview – if True (default), generate a georeferenced RGBA GeoTIFF overview for matchups and register it as an "overview" asset. STAC Browser renders this asset on the slippy map.

  • generate_event_thumbnail – if True (default), generate a polygon footprint PNG thumbnail for events and register it as a "thumbnail" asset.

  • generate_event_overview – if True (default), generate a georeferenced RGBA GeoTIFF polygon overview for events and register it as an "overview" asset.

  • context – optional EOMatchContext supplying the preview.read config; defaults to EOMatchContext().

Returns:

number of assets generated (all asset types combined).