# What was the relative velocity of Kosmos-2004 and the ChangZheng rocket stage at their closest aproach?

Yesterday (15th October 2020), Kosmos-2004 and a ChangZheng rocket stage were predicted to pass within 25 metres of each other and the media was quick to report the possibility of a collision. They appear to have safely passed each other. If they had collided the amount of debris would have depended, indirectly, on their impact velocity. So how fast were they travelling relative to each other?

• It's in the article you linked "relative velocity of 14.66km/s" – Organic Marble Oct 16 '20 at 23:11
• @OrganicMarble Doh! How could I miss that??? I was so busy reading the predictions of doom that I must have skimmed over the article describing what actually happened! -1 to me – Dave Gremlin Oct 17 '20 at 10:18
• You got it independently confirmed, with calculations, by a good answer to your question, so remove that -1! – Organic Marble Oct 17 '20 at 11:07

LeoLabs tweet:

We are monitoring a very high risk conjunction between two large defunct objects in LEO. Multiple data points show miss distance <25m and Pc between 1% and 20%. Combined mass of both objects is ~2,800kg.

• Object 1: 19826
• Object 2: 36123
• TCA: Oct 16 00:56UTC
• Event altitude: 991km

COSMOS 2004:
1 19826U 89017A   20289.94725126 +.00000031 +00000-0 +17799-4 0  9999
2 19826 082.9564 008.1177 0029070 239.7148 310.5690 13.72296120584529

CZ-4C R/B:
1 36123U 09072C   20289.93627684 -.00000054 +00000-0 -75953-5 0  9994
2 36123 100.3629 201.1010 0156470 236.9981 239.7964 13.46117612532354


I put those TLEs into Skyfield and for the conjunction I got

### angle: 166.6 degrees

so it was close to 180 degrees, they were coming almost right at each other!

import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Topos, Loader, EarthSatellite

TLEs = """1 19826U 89017A   20289.94725126 +.00000031 +00000-0 +17799-4 0  9999
2 19826 082.9564 008.1177 0029070 239.7148 310.5690 13.72296120584529
1 36123U 09072C   20289.93627684 -.00000054 +00000-0 -75953-5 0  9994
2 36123 100.3629 201.1010 0156470 236.9981 239.7964 13.46117612532354"""
lines = TLEs.splitlines()

ts = load.timescale() # include builtin=True if you want to use older files (you may miss some leap-seconds)
earth = eph['earth']

minutes = np.arange(0, 121, 0.1)

times = ts.utc(2020, 10, 16, 0, minutes)
COSMOS = EarthSatellite(lines[0], lines[1]).at(times)
CZ4C = EarthSatellite(lines[2], lines[3]).at(times)

COSMOS_pos, CZ4C_pos = [x.position.km for x in (COSMOS, CZ4C)]
COSMOS_vel, CZ4C_vel = [x.velocity.km_per_s for x in (COSMOS, CZ4C)]

dv = CZ4C_vel - COSMOS_vel
dpos = CZ4C_pos - COSMOS_pos
rel_speed = np.sqrt((dv**2).sum(axis=0))
distance = np.sqrt((dpos**2).sum(axis=0))

COSMOS_vnorm, CZ4C_vnorm = [v / np.sqrt((v**2).sum(axis=0)) for v in (COSMOS_vel, CZ4C_vel)]
angle = np.arccos((COSMOS_vnorm * CZ4C_vnorm).sum(axis=0))

COSMOS_height, CZ4C_height = [np.sqrt((p**2).sum(axis=0)) - 6378.137 for p in (COSMOS_pos, CZ4C_pos)]

print('max speed: ', rel_speed[40:80].max())
print('max angle: ', (180/np.pi) * angle[40:80].max())

plt.figure()
plt.subplot(4, 1, 1)
plt.plot(minutes, distance)
plt.ylabel('separation  (km)')
plt.ylim(0, None)
plt.xlim(0, 120)

plt.subplot(4, 1, 2)
plt.plot(minutes, rel_speed)
plt.ylabel('relative speed (km/sec)')
plt.ylim(0, None)
plt.xlim(0, 120)

plt.subplot(4, 1, 3)
plt.plot(minutes, (180/np.pi) * angle)
plt.ylabel('angle (deg)')
plt.ylim(0, None)
plt.xlim(0, 120)

plt.subplot(4, 1, 4)
plt.plot(minutes, COSMOS_height)
plt.plot(minutes, CZ4C_height)
plt.ylabel('altitude (km)')
plt.xlabel('minutes since 2020-10-16 00:00 UTC')
plt.xlim(0, 120)
plt.show()

• + 1, great answer, thanks very much. Are those Python modules freely available, they look very useful? – Dave Gremlin Oct 19 '20 at 15:33
• @DaveGremlin I'm confused, I never heard of one that wasn't! I usually add a Skyfield link but it's getting so popular now. It's just the usual pip install. The developer is fantastic and there's quite a community of people expanding its capabilities. They can even pronounce ephemerides! It can pull in TLEs and asteroids and comets and star calatalogs as well as the JPL ephemerides. – uhoh Oct 19 '20 at 15:38