DEVLOG 3
Day 3 was an absolute sprint to turn raw orbital math into something I could actually use without gaslighting myself over cloud cover. I started the day with a cup of chai and a mission to fix our directional tracking, which quickly snowballed into a massive overhaul of the entire real-time calculation chain… So instead of drowning the codebase in technical jargon, I tried to focus on human-readable data, AND try to make this hour-long loading time a snappy asynchronous platform, (also hyper-local conditions to keep the frontend running smoothly.) Here is the core of what went down: Compass & Routing: Added a degrees_to_cardinal helper that slices the 360° horizon into 8 neat cardinal directions, refactored find_events to log satellite positions at rise, peak, and set, and squashed a dictionary reference bug preventing set_dir from saving to memory—all bundled into a clean frontend payload string via app. py. Live Telemetry Engine: Implemented get_live_telemetry() in predictor.py to pull coordinates instantly from our local stations.txt TLE cache without network lag, translated orbital positions into altitude/azimuth degrees using ts.now(), and added an above-horizon state gatekeeper. Async & Lifecycle Management: Locked the telemetry rendering logic safely inside the frontend. then() promise block to stop the DOM from breaking on undefined data, and built a self-termination loop that fires clearInterval() and refreshes the browser after 3 seconds when a pass ends. Weather & Geometry Matrix: Integrated an async nearest-neighbor matcher to map Open-Meteo hourly cloud cover to the exact minute of the pass peak while using the de421. bsp planetary model to run double-agent geometry checks, ensuring the local sky is dark (sun altitude below -6°) but the asset itself is . is_sunlit(). Visibility Sorting Pipeline: Aligned app.py to route tracking payloads into a rigid 5-tier classification matrix ranging from EXCELLENT (clear overhead passes) down to INVISIBLE (lost in daylight glare or Earth’s shadow) so I never accidentally watch water vapor for 15 minutes again. With the math finally behaving and the data flowing cleanly between files without throwing runtime attribute errors, the tracking engine is officially locked, loaded, and ready for real sky-gazing mischief.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.