I'll just follow up a bit on the collision.
Per tweet and tweet and answer and answer and post:
- launch 5:40 UT (27 March 2019)
- MICROSAT-r 43947, 2019-006A
- over Abdul Kalam Island 5:42 UT
I've put a recent TLE into Skyfield and we can see that the satellite was moving north from the equator towards Abdul Kalam Island, India. According to the image in India's surprise ASAT test of 27 March 2019 the launch was somewhat south over the ocean to meet it.
At 05:42
the altitude was about 281 km and the velocity 7.73 km/s.
MICROSAT-R
1 43947U 19006A 19086.74388517 .07448791 20151+0 12875-1 0 9992
2 43947 96.7526 0.1883 0022976 252.9519 167.8627 16.09438738 9918
Source
# https://celestrak.com/satcat/
TLE = """MICROSAT-R
1 43947U 19006A 19086.74388517 .07448791 20151+0 12875-1 0 9992
2 43947 96.7526 0.1883 0022976 252.9519 167.8627 16.09438738 9918"""
name, L1, L2 = TLE.splitlines()
# https://twitter.com/DutchSpace/status/1110833431523545088
# https://twitter.com/Marco_Langbroek/status/1110861054010105858
# https://sattrackcam.blogspot.com/2019/03/indias-surprise-asat-test-of-27-march.html
# launch 5:40 UT (27 March 2019)
# over 5:42 UT on 27 March 2019
# Abdul Kalam island on the Indian East Coast
# 20.757N, 87.084E
import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Topos, Loader, EarthSatellite
load = Loader('~/Documents/fishing/SkyData') # single instance for big files
ts = load.timescale()
de421 = load('de421.bsp')
earth = de421['earth']
Abdul_Kalam_Island = earth + Topos(latitude_degrees = +20.757,
longitude_degrees = +87.084,
elevation_m = 10.0)
minutes = np.arange(35, 50, 0.1)
times = ts.utc(2019, 3, 27, 5, minutes)
MICROSAT_r = earth + EarthSatellite(L1, L2)
astrometric = Abdul_Kalam_Island.at(times).observe(MICROSAT_r)
alt, az, d = astrometric.apparent().altaz(pressure_mbar=0)
pos_42 = earth.at(ts.utc(2019, 3, 27, 5, 42)).observe(MICROSAT_r).position.km
vel_42 = earth.at(ts.utc(2019, 3, 27, 5, 42)).observe(MICROSAT_r).velocity.km_per_s
r = np.sqrt((pos_42**2).sum())
v = np.sqrt((vel_42**2).sum())
print pos_42
print r
print r - 6378.137
print v
if True:
plt.figure()
plt.subplot(3, 1, 1)
plt.plot(minutes, alt.degrees)
plt.ylabel('elevation (deg)', fontsize=16)
plt.ylim(0, 90)
plt.xlim(35, 50)
plt.subplot(3, 1, 2)
plt.plot(minutes, az.degrees)
plt.ylabel('azimuth (deg)', fontsize=16)
plt.ylim(0, 360)
plt.xlim(35, 50)
plt.subplot(3, 1, 3)
plt.plot(minutes, d.km)
plt.ylabel('range (km)', fontsize=16)
plt.xlabel('time after 05:00 (minutes)', fontsize=16)
plt.ylim(250, 500)
plt.xlim(35, 50)
plt.suptitle('MICROSAT-r vs Abdul Kalam Island, 27-03-2019 UTC', fontsize=16)
plt.show()