HackASat2020
Appearance
HackASat Challenges Doc I was using
Challenges
[edit]Astronomy, Astrophysics, Astrometry, Astrodynamics, AAAA
[edit]I Like to Watch
[edit]Challenge Info
[edit]We've captured data from a satellite that shows a flag located at the base of the Washington Monument. The image was taken on March 26th, 2020, at 21:54:29 The satellite we used was: REDACT 1 13337U 98067A 20087.38052801 -.00000452 00000-0 00000+0 0 9995 2 13337 51.6460 33.2488 0005270 61.9928 83.3154 15.48919755219337 Use a Google Earth Pro KML file to 'Link' to http://18.191.77.141:6723/cgi-bin/HSCKML.py and 'LookAt' that spot from where the satellite when it took the photo and get us that flag!
Notes
[edit]- TLE Coordinates
- Need this file
- Need to use Skyfield for Python
- Washington Monument is at -77.03527 Longitude and 38.88948 Latitude
Scripts
[edit]- Get Satellite Location at Time
from skyfield.api import EarthSatellite, load
ts = load.timescale()
line1 = "1 13337U 98067A 20087.38052801 -.00000452 00000-0 00000+0 0 9995"
line2 = "2 13337 51.6460 33.2488 0005270 61.9928 83.3154 15.48919755219337"
satellite = EarthSatellite(line1, line2, 'REDACT', ts)
t = ts.utc(2020, 3, 26, 21, 54, 29)
geocentric = satellite.at(t)
print(geocentric.position.km)
subpoint = geocentric.subpoint()
print('Latitude:', subpoint.latitude)
print('Longitude:', subpoint.longitude)
print('Elevation (m):', int(subpoint.elevation.m))
- Something
from skyfield.api import EarthSatellite, Topos, load
ts = load.timescale()
t = ts.utc(2020, 3, 26, 21, 54, 29)
line1 = "1 13337U 98067A 20087.38052801 -.00000452 00000-0 00000+0 0 9995"
line2 = "2 13337 51.6460 33.2488 0005270 61.9928 83.3154 15.48919755219337"
monument = Topos(latitude='38.8894 N', longitude='77.0352 W')
satellite = EarthSatellite(line1, line2, name='REDACT')
geometry = satellite.at(t)
subpoint = geometry.subpoint()
latitude = subpoint.latitude
longitude = subpoint.longitude
elevation = subpoint.elevation
difference = satellite - monument
geometry = difference.at(t)
print(difference)
print('--------------')
alt, az, distance = geometry.altaz()
print('alt: ', alt)
print('az: ', az)
print(int(distance.m), 'm')
References
[edit]- https://developers.google.com/kml/documentation/cameras
- https://rhodesmill.org/skyfield/earth-satellites.html
- https://rhodesmill.org/skyfield/positions.html