add pypredict.groundtrack()
This commit is contained in:
parent
adf46fbf3b
commit
cd376bf3bb
26
pypredict.py
26
pypredict.py
|
@ -1,9 +1,11 @@
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
class missingSatellitePredictionError(Exception):
|
class missingSatellitePredictionError(Exception):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.description = "predict could not find aos, los of next pass"
|
self.description = "predict did not return data for the satellite"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.description
|
return self.description
|
||||||
|
@ -11,14 +13,32 @@ class missingSatellitePredictionError(Exception):
|
||||||
def aoslos(satname):
|
def aoslos(satname):
|
||||||
lines = subprocess.check_output(['predict','-p',satname]).split("\n")
|
lines = subprocess.check_output(['predict','-p',satname]).split("\n")
|
||||||
try:
|
try:
|
||||||
aosTime=int(lines[0].split(" ")[0])
|
aosTime=int(lines[0].split()[0])
|
||||||
losTime=int(lines[-2].split(" ")[0])
|
losTime=int(lines[-2].split()[0])
|
||||||
if losTime>aosTime:
|
if losTime>aosTime:
|
||||||
return (aosTime,losTime)
|
return (aosTime,losTime)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
raise missingSatellitePredictionError()
|
raise missingSatellitePredictionError()
|
||||||
|
|
||||||
|
def groundtrack(satname, start=None, end=None):
|
||||||
|
if start is None:
|
||||||
|
start = int(time.time())
|
||||||
|
if end is None:
|
||||||
|
end = start+60*60*24
|
||||||
|
command = ['predict','-f',satname,str(start),str(end)+'m']
|
||||||
|
lines = subprocess.check_output(command).split("\n")
|
||||||
|
result = []
|
||||||
|
for line in lines:
|
||||||
|
try:
|
||||||
|
data = line.split()
|
||||||
|
if len(data)==12: # expect 12 columns, pick out time, lat, lon
|
||||||
|
result.extend([int(data[j]) for j in [0,6,7] ])
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
if len(result)==0:
|
||||||
|
raise missingSatellitePredictionError()
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue