import logging import settings import os def read_priorities_transmitters(filename): # Priorities and favorite transmitters # read the following format # 43017 1. KgazZMKEa74VnquqXLwAvD if filename is not None and os.path.exists(filename): with open(filename, "r") as fp: satprio = {} sattrans = {} lines = fp.readlines() for line in lines: if line[0]=="#": continue parts = line.strip().split(" ") sat = parts[0] prio = parts[1] transmitter = parts[2] satprio[sat] = float(prio) sattrans[sat] = transmitter return (satprio, sattrans) else: return ({}, {}) def get_priority_passes(passes, priorities, favorite_transmitters, only_priority, min_priority): priority = [] normal = [] for satpass in passes: # Is this satellite a priority satellite? if satpass['id'] in priorities: # Is this transmitter a priority transmitter? if satpass['uuid'] == favorite_transmitters[satpass['id']]: satpass['priority'] = priorities[satpass['id']] satpass['uuid'] = favorite_transmitters[satpass['id']] # Add if priority is high enough if satpass['priority'] >= min_priority: priority.append(satpass) elif only_priority: # Find satellite transmitter with highest number of good observations max_good_count = max([s['good_count'] for s in passes if s["id"] == satpass["id"]]) if max_good_count > 0: satpass['priority'] = \ (float(satpass['altt']) / 90.0) \ * satpass['success_rate'] \ * float(satpass['good_count']) / max_good_count else: satpass['priority'] = (float(satpass['altt']) / 90.0) * satpass['success_rate'] # Add if priority is high enough if satpass['priority'] >= min_priority: normal.append(satpass) return (priority, normal)