Spacebook: AGI's near Real-Time satellite viewer
apps.agi.com
apps.agi.com
Operational satellites by mission:
total 2154
Communications 740
Scientific 592
Navigation 135
Technology Development 109
Earth Observation 99
Surveillance 58
Engineering 20
Weather 13
Not Recorded 8
Early Warning 3
Search and Rescue 1
Space Station Flight 1The sum of all mission-detailed satellites is lower than the total (even thought there’s a « no recorded » line
There’s a grand total of 58 surveillance satellites around the earth today ? Yeah... I think there’s a few missing
If it catches your fancy, I have also found termtrack to be a great way to fill in a corner of a tmux window.
They build an open-source WebGL-based competitor to Google Maps' engine.
Patrick Cozzi, the driving force behind the technology is one of both the smartest and nicest people I've met during my career.
If you want to see how long it takes for satellite orbits to decay in LEO, check this out. Illustrates how quickly some of these satellites would reenter without station keeping.
Total objects: 17,642
Status non-operational: 15,389
Yikes?Concerning rules, there is some progress, because nobody wants a Kessler syndrome, too much is at stake. For instance, European satellites are launched only if they naturally deorbit in less than 25 years (for LEO, of course. Above a certain height, atmospheric drag is too weak).
https://docs.fcc.gov/public/attachments/FCC-18-159A1.pdf
The FCC hasn't proscribed exactly what these look like (that's implementation), but electrodynamic tethers would seem likely.
Also, Israel always launches in a retrograde orbit, since they have neighbors to the east who would react too well to what looks for all intents and purposes like a missile launch, or to expended rocket stages dropped on their heads. For that reason, Israel launches retrograde over the Mediterranean.
Even neglecting a retrograde orbit, though, just a slight difference in inclination is enough to totally ruin your day. Even if you're only off by one degree, if you're travelling at 7.8 km/s your closing perpendicular velocity at the node crossing is 7800*sin(1 degree) = 136 m/s. That's almost 500 km/h, plenty fast enough to ruin your day.
Data is not "real time" for each satellite in any sense. But since satellites follow orbits, it's enough to have recent state, and you can extrapolate where they are. The data comes from places like NORAD, and has a standardized format called a "Two line element set". https://en.wikipedia.org/wiki/Two-line_element_set
Here is the current state of the international space station for example as described in a TLE:
ISS (ZARYA)
1 25544U 98067A 19238.30917157 .00002323 00000-0 48072-4 0 9991
2 25544 51.6438 13.4147 0007728 328.5901 233.9236 15.50389701186137
It's mostly opaque but we can see near the end of the second line that at the current orbit means it does around 15.5 orbits per day.
When I implemented my app, I just grabbed some data from a public link with up to date TLE's. Such as this one, for the 100 brightest satellites is a good start for a simple visualization app.https://www.celestrak.com/NORAD/elements/visual.txt
Once you have the TLE for a satellite which describes where it was a while ago, you need a function that gives you the current state vector for the satellite, given the time delta since the known state. Far from earth this can be done approximately with simple orbital mechanics, but close to earth you need to account for athmospheric drag and also the uneven or "bumpy" gravitational field. At some point someone devised a set of algorithms for this called the simplified perturbations models in 1988 https://en.wikipedia.org/wiki/Simplified_perturbations_model...
Basically current_state = SGP4(old_state, time_since_old_state)
Luckily, these functions were released together with a Fortran implementation, so porting it to whatever language you want is fairly straight forward. Here is an example port of SGP4 to python https://github.com/brandon-rhodes/python-sgp4/blob/master/sg...
I am guessing that space is pretty big even in low earth orbit and so probabilities are small even with thousands of objects. But even so, if you are spending millions of dollars, you would want to have some idea rather than just keeping your fingers crossed.
Or is it just a bunch of random tracking efforts with duplication and incompletion?
I've been working on my own website using the space-track.org API to show you when/where/how to see satellites in the sky with your naked eyes from your own backyard. Hopefully launching soon.
The vast majority of this data comes from the United States Strategic Command's Space Surveillance Network, which provides orbit information in SGP4 format for public use:
https://en.wikipedia.org/wiki/United_States_Space_Surveillan...
Based on a cursory understanding of the AGI STK, these satellite positions are calculated from ephemeris data which are updated on a regular basis (e.g. weekly). https://en.wikipedia.org/wiki/Ephemeris
(although I believe the celestrak data comes from space-track, correct me if I'm wrong)
The satellite positions are then estimated using an algorithm such as sgp4 implemented in quite a few languages:
* https://github.com/joshuaferrara/go-satellite (<-- disclaimer: this is mine)
* https://github.com/brandon-rhodes/python-sgp4
* https://github.com/shashwatak/satellite-js
Check out Dr. Kelso's (he works for AGI now) original work here in Pascal, plus a few links to C++ works: https://celestrak.com/software/tskelso-sw.php