Ground-Track Coverage Tool
Given any TLE, produce ground track + coverage + country-overflight table.
The brief
Build a Python tool that, given any TLE as input, outputs (1) the 24-hour ground track as a GeoJSON LineString with timestamped vertices, (2) a coverage polygon assuming a 1000-km swath sensor, (3) a country-overflight table listing each country overflown with total dwell time in seconds. The country mapping must use the Natural Earth admin-0 boundary dataset (provided). Visualize the ground track on a Folium map, color-coded by altitude.
From Hawaiʻi — what this capstone asks of you
The Pacific is one ocean, but most country-overflight tables cut it down the middle. As you build the dwell-time tool, try a Pacific-centric projection (`+proj=merc +lon_0=180`). Run your tool against the ISS and ask: how many minutes per day does the ISS spend over the Pacific Ocean, vs. over land? Most people are surprised at the answer.
Rubric
- Tool runs from CLI: `python coverage_tool.py --tle path/to/tle.txt`
- Ground track GeoJSON is correctly geodesic (no straight-line shortcuts across the pole)
- Country dwell table is consistent with the ground track (per-country dwell ≤ total propagation time)
- Coverage polygon area is consistent with 1000-km swath × ground-track length
- Folium HTML map renders correctly with altitude-colored ground track
Deliverable
Python project (CLI + library) + sample outputs for ISS, Hubble, and a Starlink satellite
Dataset
https://github.com/ops-sketch/academy-labs/tree/main/capstones/02-coverage-tool
Earned credential
Successful completion of this capstone (all rubric items met) mints the Certified Orbital Analyst certificate at /academy/verify/{certId}/.