Defense: We need clean Anti-Satellite Weapons! Part 2: Intro to Asat Code Tutorials
Note: This is the second post of a multi-part series.
Welcome, to Part 2 of the Anti-Anti-Satellite Weapons Test Rant. I’m only against “destructive” tests, which generate orbit-polluting debris, though. I am all for the other types. As if it wasn’t obvious from the first post in this series, Defense: We need clean Anti-Satellite Weapons! (Part 1).
So. We’re here. THIS IS THE EXCITING PART! This is where keyboard meets code. I can hardly wait! We’ll do our own analysis of the debris that’s still stuck in Earth’s orbit from these destructive Anti-Satellite tests. We’ll see how to programmatically access debris data from cURL, C#, Node.js, and Unreal Engine 5. So, skip to the end of the post and pick your platform!
Oh, we’ll also build a 3D map that displays live updates of the debris orbits! It will look a little something like this:
Ready? Let’s bounce! The rest of this post is just filler, so skip it.
Gratuitous charts!
A few gratuitous charts sans commentary just to kick things off. You can ignore them. They’re just here to make the post look professional n stuff.
Prior destructive Anti-Satellite tests
To date, destructive Anti-Satellite tests have been conducted by Russia, India, China, and USA. Oh, and the USA also intentionally dumped 350 million pieces of debris in 1963, as we’ll see shortly.
Name | Who | Designator | Launched | Destroyed | Cataloged | Remaining |
---|---|---|---|---|---|---|
Kosmos 1408 | Russia | 1982-092A | 16-Sep-82 | 15-Nov-21 | 1500+ | 299 |
Microsat-R | India | 2019-006A | 24-Jan-19 | 27-Mar-19 | 25 | 1 |
USA 193 | USA | 2006-057A | 14-Dec-06 | 21-Feb-08 | 24 | 0 |
FENGYUN 1C | China | 1999-025A | 10-May-99 | 11-Jan-07 | 3438 | 2867 |
USA 19 | USA | 1986-069A | 5-Sep-86 | 5-Sep-86 | 13 | 0 |
USA 19 R/B | USA | 1986-069B | 5-Sep-86 | 5-Sep-86 | 5 | 0 |
P-78 (SOLWIND) | USA | 1979-017A | 24-Feb-79 | 13-Sep-85 | 285 | 0 |
The data above is a combination of data from online sources and directly querying Space-Track.org, a “Satellite Catalog”.
As you can see, most of the satellite weapons came from these two very destructive tests:
2007 Chinese anti-satellite missile test: Fengyun 1C
2021 Russian anti-satellite missile test: Kosmos 1408
One of them generates a LOT more near-miss emergency alerts for satellite operators than the other. Find out which one for yourself by writing code, in the tutorials that follow :).
Getting Data
Welcome to Space-Track.org. Please tread lightly here.
A Satellite Catalog (SatCat) contains information about objects in Earth’s orbit. The data is generated by radar tracking stations, then categorized and cataloged by some (presumably) very smart analysts. Thanks to many people’s hard work, it’s simple for us to query a SatCat for orbital debris created by the tests cited above.
We’ll get live data from Space-Track.org, which is operated by the U.S. Strategic Command.
If it sounds a bit serious, it is.
Air Force Maj. Gen. David D. Thompson, U.S. Strategic Command’s director of plans and policy at Offutt Air Force Base, Nebraska, said the release of new high-quality positional information on space debris of an unknown origin will help owner-operators better protect their satellites from these objects and ultimately create less space debris.
“We run a predictive program that shows where the objects are, where they will be in the future, and the potential for these objects to run into each other,” Thompson said.
Officials Expand Space-tracking Website
U.S. Department of Defense
If you adhere to the User Agreement you can obtain credentials to query the SatCat.
We’re going to query the SatCat from 4 different platforms, looking both at orbital data and at collision near-miss alerts. And, because many of these tutorials turn out WAY too long, they’ll be split into sub-tutorial posts (per platform).
Platform 1: REST API, Http, and cURL
The Space-Track.org service exposes its database to queries via a REST API. If REST APIs are new to you, that’s fine, you don’t really need to know much to succeed at this.
Initially, we’re going to use a tool called ‘cURL’. cURL allows the user to make http calls from the command line which is example what we need.
Link:
Sub-Tutorial 1: Querying SatCat by cURL
Platform 2: C# Data Analysis
Querying the SatCat from a c# app
While it’s fun querying the SatCat from cURL we can’t do a lot with the data.
The good news is we have even more power when we query the SatCat from an application authored in a programming language, such as C#.
Link:
Sub-Tutorial 2: Querying SatCat from C#
Platform 3: Node.js Web Service
There are times when you need a service, to talk to some other service. This is one of those times, because you can’t go spamming Space-Track.org every time a user wants data. And, you also can’t build your username and password into a client app.
The solution is to build your own service, which queries Space-Track.org and caches the result for a time period. And, that’s exactly what you’re going to do in this tutorial. That, and build a web page that displays a live list of emergency satellite collision alerts.
Link:
Sub-Tutorial 3: Querying SatCat in NodeJS
Platform 4: Unreal Engine 5 C++, Http, and JSON
We’re going to use Unreal Engine’s HTTP and JSON modules to create an interesting little visualization.
Along the way we’re going to learn:
- How to send HTTP requests from within Unreal Engine
- How to parse a server’s response (JSON)
- How to query a “Satellite Catalog” database operated by the U.S. Strategic Command
- How to get a list of active space debris objects associated with space weapons testing (with orbital data)
- How to compute a position from orbital data
- Where to find test data, and how to switch over to live data from the U.S. Strategic Command servers
Link:
Sub-Tutorial 4: Querying SatCat from Unreal Engine 5