I'm plotting the position of satellites in the sky using Skyfield. If I project the .altaz()
data on to a rectangle (in a similar fashion to the way ground track lat/lon plots are made) I get two big "holes".
Is there a way to understand, explain, and articulate the cause of these holes in alt/az space beyond "the ISS can't go there"? I don't think it's anything fundamental or profound, but I can't wrap my mind around why there can be places in the sky of a given location where the ISS can't go.
The python script below automatically grabs a TLE from the internet and then calculates 40,000 positions over +/- 2 days from the TLE's epoch, so it takes a few seconds. The two dots are the north and south poles of the celestial sphere. They are not really related to the question but were added to address questions in comments.
import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import load, Loader, Topos
degs = 180./np.pi
stations_url = 'http://celestrak.com/NORAD/elements/stations.txt'
loader = Loader('~/Documents/foldername/SkyData')
data = loader('de421.bsp')
ts = loader.timescale()
earth = data['earth']
loc = Topos(-39.2617, 177.8652, elevation_m=20)
sats = load.tle(stations_url)
ISS = sats['ISS (ZARYA)']
print(ISS)
tstep = np.arange(-2, 2, 0.0001) # range of +/- 2 days from TLE epoch
time = ts.tt(jd=ISS.epoch.tt + tstep)
alt, az = [x.radians for x in (ISS - loc).at(time).altaz()[:2]]
snipit = np.abs(az[1:] - az[:-1]) > 2 # snip the plotting at wrap-around
dalt, daz = degs*alt, degs*az
daz[:-1][snipit] = np.nan
plt.figure()
plt.plot(daz[:-1], dalt[:-1], linewidth=1)
plt.xlabel('azimuth (degs)')
plt.ylabel('altitude (degs)')
plt.plot(0, degs*loc.latitude.radians, 'or', markersize=8)
plt.plot(180, -degs*loc.latitude.radians, 'or', markersize=8)
plt.show()
alt = +/- latitude
) $\endgroup$