In [6]:
# To begin finding overlaps between passes for a single gs
In [7]:
import schedulingbazaar
import pickle
from itertools import product
In [8]:
data = schedulingbazaar.load_tles('amateur.txt')
stations = schedulingbazaar.load_gs('groundstations.txt')
In [9]:
passes = {}
start_time = '2017/6/8 00:00:00'
num_passes = None
duration = 8760
horizon = '10:00'
for gs, sat in product(stations, data):
passkey = (gs[0],sat[0].rstrip())
passes[passkey] = schedulingbazaar.get_passes(gs, sat, start_time, num_passes=num_passes, duration=duration, horizon=horizon)
pickle.dump(passes, open('passes_new.pkl','wb'))
In [0]:
passes_new = pickle.load(open('passes_new.pkl', 'rb'))
In [0]:
# Prints out all key tuples for gs FACT
for (t1, t2) in passes_all:
if t1 == 'FACT':
print(t1, t2)
In [0]:
N = 0
for key, value in passes_all.items():
N += len(value)
print(N)
In [1]:
import intervaltree as iv
import datetime
import collections
In [0]:
import sys
sys.path
In [18]:
begin = datetime.datetime(2017, 6, 29, 0, 0, 0)
end = datetime.datetime(2017, 6, 29, 12, 0, 0)
data = 'a'
beginagain = datetime.datetime(2017, 6, 29, 6, 0, 0)
endagain = datetime.datetime(2017, 6, 29, 18, 0, 0)
dataagain = 'b'
tree = iv.IntervalTree()
tree.addi(begin, end, data)
tree.addi(beginagain, endagain, dataagain)
#print(sorted(tree[8]))
#print(tree.search(datetime.datetime(2017, 6, 29, 2, 0, 0), datetime.datetime(2017, 6, 29, 7, 0, 0)))
#print(tree[datetime.datetime(2017, 6, 29, 2, 0, 0) : datetime.datetime(2017, 6, 29, 7, 0, 0)])
#tree.intersection(tree) == tree
print(tree)
tree.split_overlaps()
print(tree)
In [0]:
passtree = iv.IntervalTree()
for key, value in passes_all.items():
for satpass in value:
begin = datetime.datetime.timestamp(datetime.datetime(satpass['start']))
end = satpass['end']
data = 'foo' #collections.namedtuple('Names',['gs','sat'])
passtree.addi(begin, end, data)