Coverage analysis
Per-tile and per-obsid fractional coverage of dark deposits (union of fan + blotch polygons / tile pixel area). Verbatim port of Tom Ihro’s
Calculate_Coverage_v2.ipynb (cells 0–28).
Per-tile coverage
compute_per_tile_coverage
def compute_per_tile_coverage(
version:str='v3.1', fan:pandas.DataFrame | None=None, blotch:pandas.DataFrame | None=None, cache:bool=True,
cache_dir:pathlib.Path | None=None
)->DataFrame:
Per-tile fractional dark-deposit coverage.
Verbatim port of Tom Ihro’s Calculate_Coverage_v2.ipynb cells 0–20. Result has columns [obsid, tile_id, Coverage]; for v3.1 it has ~64 494 rows. Cached as parquet so the (slow) Shapely union runs once per machine.
Per-obsid summary
compute_per_obsid_coverage
def compute_per_obsid_coverage(
per_tile:DataFrame, with_homogeneity:bool=True
)->DataFrame:
Aggregate per-tile coverage to per-obsid summary statistics.
Verbatim port of cells 26–28 of Calculate_Coverage_v2.ipynb: mean, median, std, skew, kurtosis (and optional Homogeneity = mean / median).