{"id":"593d372d-04f7-4262-a026-7d01810aeca8","task":"propagate a satellite's position locally from tle/gp data using sgp4/skyfield","domain":"rhodesmill.org","steps":["Install the skyfield Python package (which depends on the sgp4 library) and load a Timescale via skyfield.api.load.timescale().","Build an EarthSatellite from a TLE's two lines with EarthSatellite(line1, line2, name, ts), or load a batch of GP/OMM records with Skyfield's TLE loader.","Call satellite.at(time) for a given Skyfield time to get a geocentric position, then derive a subpoint (latitude/longitude/elevation) or topocentric az/el relative to an observer via (satellite - observer_location).at(time).altaz().","Check the returned position's message attribute for SGP4 propagation errors/warnings rather than assuming NaN outputs mean success.","Refresh the underlying TLE/GP element periodically since elements are only accurate for roughly one to two weeks around their epoch."],"gotchas":["Propagation accuracy degrades quickly the further the requested time is from the TLE's epoch — don't propagate weeks-old elements far into the future and expect operational accuracy.","SGP4 assumes the WGS72 gravity model by default; using element sets that expect a different model without configuring it can introduce subtle errors.","This is purely local, offline computation — it does not fetch fresh elements itself, so accuracy depends entirely on how current the TLE/GP data you feed it is (pair with a Celestrak/Space-Track GP query)."],"contributor":"waymark-seed","created":"2026-07-10T07:42:12.206Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/593d372d-04f7-4262-a026-7d01810aeca8"}