Inspiration
We talked to the Peraton Engineers and told them we would like to do something space related and they gave us the idea to work with something related to satellites and time.
What it does
Time-to-image, not a pass list. The headline is one answer: the earliest pass likely to produce a usable image, plus the probability of getting one within 24, 48 and 72 hours. Any point or area. Click the globe, type coordinates, search a place name, or draw a polygon. Areas report what percentage of the region each pass actually images. Honest probabilities. A model trained on a year of real forecasts versus observed outcomes, validated on cities it never saw in training. Explains itself. Every pass says what limits it: night, clouds, light, geometry or coverage. Degrades instead of failing. No internet means cloud forecasts fall back to historical averages for that location, and the app keeps working. Shows its own staleness. A badge reports how old the orbit data is, because SGP4 predictions drift after about a week.
How we built it
We used an agent workflow along with Gemini to follow the workflow along several different APIs
Challenges we ran into
Making the percentage mean what it says took a year of real forecasts compared against what actually happened. We also had to stop double-counting: two satellites 20 minutes apart see the same clouds, so they're one chance, not two.
Accomplishments that we're proud of
Proud of beating the weather forecast in predicting if a satellites pass was good or not.
What we learned
How to use sckit-learn to train a model. How to use CesiunJS to draw a globe and satellite,js for orbit propagation in the browser.
What's next for Clear Shot
Commercial satellites that can be pointed, where the same scoring picks a window to buy. More weather inputs than cloud cover alone: ensemble spread, cloud layers, haze. Saved targets with alerts when a good window opens. Linking each past pass to the actual public image it produced.
Built With
- cesiunjs
- fastapi
- javascript
- python
- satellitejs
- scikit-learn
Log in or sign up for Devpost to join the conversation.