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 [10]:
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 [11]:
N = 0
for key, value in passes_new.items():
    N += len(value)
print(N)


1429362

In [0]:
import intervaltree as iv
import datetime
import collections

In [0]:
import sys
sys.path

In [0]:
begin = 0
#datetime.datetime(2017, 6, 29, 0, 0, 0)
end = 12
#datetime.datetime(2017, 6, 29, 12, 0, 0)
data = 'foo'

beginagain = 6
#datetime.datetime(2017, 6, 29, 6, 0, 0)
endagain = 18
#datetime.datetime(2017, 6, 29, 18, 0, 0)
dataagain = 'fooagain'

tree = iv.IntervalTree()
tree.addi(begin, end, data)
tree.addi(beginagain, endagain, dataagain)

print(sorted(tree[8]))
print(tree.search(5,10))

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)