From cbc700fdbdc37d7b1005f84193a8ef9a58e9d4df Mon Sep 17 00:00:00 2001 From: "Fabian P. Schmidt" Date: Tue, 5 Nov 2019 12:57:00 +0100 Subject: [PATCH] Refactor create_observer into a seperate method This removes the direct pyephem dependency of schedule_single_station.py which allows a future replacement of pyephem inside the pass_predictor, without any change of the public method interfaces. --- auto_scheduler/pass_predictor.py | 11 +++++++++++ schedule_single_station.py | 16 +++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/auto_scheduler/pass_predictor.py b/auto_scheduler/pass_predictor.py index d7ca7b3..022fc28 100644 --- a/auto_scheduler/pass_predictor.py +++ b/auto_scheduler/pass_predictor.py @@ -36,6 +36,17 @@ def overlap(satpass, scheduledpasses, wait_time_seconds): return overlap +def create_observer(lat, lon, alt, min_riseset=0.0): + ''' + Create an observer instance. + ''' + observer = ephem.Observer() + observer.lat = str(lat) + observer.lon = str(lon) + observer.elevation = alt + observer.horizon = str(min_riseset) + + return observer def find_passes(satellite, observer, diff --git a/schedule_single_station.py b/schedule_single_station.py index 9ca12fb..2412d10 100755 --- a/schedule_single_station.py +++ b/schedule_single_station.py @@ -1,7 +1,6 @@ #!/usr/bin/env python from __future__ import division import requests -import ephem from datetime import datetime, timedelta import os import lxml.html @@ -10,7 +9,8 @@ import logging from utils import get_priority_passes, \ read_priorities_transmitters, \ satellites_from_transmitters -from auto_scheduler.pass_predictor import find_passes +from auto_scheduler.pass_predictor import create_observer, \ + find_passes from auto_scheduler.schedulers import ordered_scheduler, \ report_efficiency from cache import CacheManager @@ -163,12 +163,6 @@ def main(): settings.MAX_NORAD_CAT_ID) cache.update() - # Set observer - observer = ephem.Observer() - observer.lon = str(ground_station['lng']) - observer.lat = str(ground_station['lat']) - observer.elevation = ground_station['altitude'] - # Set minimum culmination elevation if args.min_culmination is None: min_culmination = ground_station['min_horizon'] @@ -195,7 +189,11 @@ def main(): else: min_riseset = 0.0 - observer.horizon = str(min_riseset) + # Set observer + observer = create_observer(ground_station['lat'], + ground_station['lng'], + ground_station['altitude'], + min_riseset=min_riseset) # Minimum duration of a pass min_pass_duration = settings.MIN_PASS_DURATION