import math
#Variable Declaration
Pss=-90 #Location of geostationary satellite(degrees)
PE=-100 #Longitude of the earth station antenna(degrees)
LE=35 #Latitude of the earth station antenna(degrees)
#Calculation
B=PE-Pss #Angle between planes containing a and c(degrees)
b=math.acos(math.cos(B)*math.cos(LE)) #Angle of plane containing b(radians)
A=math.asin(math.sin(abs(B*3.142/180))/math.sin(b)) #Angle between planes containing b and c (radians)
A=A*180/3.142 #Converting A into degrees
#LE>0 and B<0 by observation
Az=round(180-A,2) #Azimuth angle(degrees)
#Result
print "The azimuth angle for the given earth station antenna is", Az,"degrees"
#Variable Declaration
R=6371 #Radius of earth (km)
aGSO= 42164 #Circumference of earth(km)
b=0.632 #values of b from Example 3.1 (radians)
#Calculation
import math
d=math.sqrt(R**2+aGSO**2-2*R*aGSO*math.cos(b)) #Range of earth station antenna (km)
El=math.acos(aGSO*math.sin(b)/d)*180/math.pi #Elevation angle(degrees)
d=round(d)
El=round(El)
#Results
print "The range of earth station antenna is", d,"km"
print "Elevation angle is", El,"degrees"
import math
#Variable Declaration
LE=49 #Latitude of earth station(degrees)
aGSO=42164 #Circumference of earth(km)
R=6371 #Radius of earth(km)
#Calculation
d=(R**2+aGSO**2-2*R*aGSO*math.cos(LE*3.142/180))**0.5 #Range of earth station antenna
El0=math.acos(aGSO*math.sin(LE*3.142/180)/d) #Elevation angle(radians)
El0=El0*180/3.142 #Converting El0 to degrees
delta=round(90-El0-LE) #Angle of tilt required for polar mount
#Results
print "The Angle of tilt required for polar mount is", delta,"degrees"
import math
#Variable Declaration
LE=48.42 #Latitude of earth station(degrees)
PE=-89.26 #Longitute of earth station(degrees)
Elmin=5 #Minimum angle of elevation(degrees)
aGSO=42164 #Circumference of earth(km)
R=6371 #Radius of earth(km)
#Calculation
Smin=90+Elmin
S=math.asin(R*math.sin(Smin*3.142/180)/aGSO)*180/math.pi #Angle subtended at the satellite(degrees)
b=180-Smin-S #Angle of plane containing b(degrees)
B=math.acos(math.cos(b*3.142/180)/math.cos(LE*3.142/180))*180/math.pi#Angle between the planes containing a and c(degrees)
#Results
print "The satellite limit east of the earth station is at", round(PE+B),"Degrees approximately"
print "The satellite limit west of the earth station is at", round(PE-B),"Degrees approximately"
import math
#Variable Declaration
y=2000 #year
d=223.153 #day
n=1.002716 #mean motion(1/day)
w=272.5299 #rate of regression of nodes(degrees)
e=0.000352 #Eccentricity
W=247.9161 #Rate of regression of line of apsides(degrees)
M=158.0516 #Mean Anomaly at given time
JD00=2451543.5 #Julian days for Jan 0.0 2000
#Calculation
JD=JD00+d #Julian days for given day
JDref=2415020 #Reference Julian days
JC=36525
T=round((JD-JDref)/JC,4) #Time in julian Centuries
UT=d-223 #Universal Time, fraction of the day
GST=(99.6910+36000.7689*T+0.004*T**2)*3.142/180 #GST(radians)
UT=2*math.pi*UT #Universal time converted to fraction of earth rotation (radians)
GST=(GST+UT)*180/3.1421
GST=(math.fmod(GST,360))#using fmod multiplr revolutions are removed (degrees)
GST=round(GST,3)
v=M+2*e*M #True Anomaly(degrees)
Pssmean=W+w+M-GST #longitude for INTELSAT(degrees)
Pssmean=math.fmod(Pssmean,360) #fmod removes multiple revolutions
Pss=w+W+v-GST#longitude for INTELSAT(degrees)
Pss=math.fmod(Pss,360)#fmod removes multiple revolutions
#Results
print "The longitude of INTELSAT 805 is", round(Pss,3),"Degrees"
print "The average longitude of INTELSAT 805 is", round(Pssmean,3),"Degrees"