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.

A plurality of junk in orbit is Breakup Debris (47.4%)
Deliberate attempts are only 28.9% of debris creation events
Deliberate attempts (such as ASAT tests) are the top cause of debris that remains in orbit (42.8%). This also counts self-destructs.

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, 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 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, 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 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.

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#.

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 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 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.

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

Sub-Tutorial 4: Querying SatCat from Unreal Engine 5

Comments are disabled. To share feedback, please send email, or join the discussion on Discord.