From 0788b580ec7a739c42d44567fc48a9354f52f39c Mon Sep 17 00:00:00 2001 From: Cees Bassa Date: Mon, 18 Mar 2019 20:01:09 +0100 Subject: [PATCH] Ignore re-entered satellites --- schedule_single_station.py | 15 ++++++++++++--- utils.py | 12 ++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/schedule_single_station.py b/schedule_single_station.py index 60e1390..eafa590 100755 --- a/schedule_single_station.py +++ b/schedule_single_station.py @@ -10,7 +10,8 @@ import argparse import logging from utils import get_active_transmitter_info, get_transmitter_stats, \ get_groundstation_info, get_last_update, get_scheduled_passes_from_network, ordered_scheduler, \ - efficiency, find_passes, schedule_observation, read_priorities_transmitters + efficiency, find_passes, schedule_observation, read_priorities_transmitters, \ + get_satellite_info import settings from tqdm import tqdm import sys @@ -162,19 +163,27 @@ if __name__ == "__main__": antenna["frequency_max"]): transmitters[transmitter['uuid']] = transmitter + # Get satellites which are alive + alive_norad_cat_ids = get_satellite_info() + # Get NORAD IDs norad_cat_ids = sorted( set([transmitter["norad_cat_id"] for transmitter in transmitters.values() - if transmitter["norad_cat_id"] < settings.MAX_NORAD_CAT_ID])) + if transmitter["norad_cat_id"] < settings.MAX_NORAD_CAT_ID + and transmitter["norad_cat_id"] in alive_norad_cat_ids])) # Store transmitters fp = open(os.path.join(cache_dir, "transmitters_%d.txt" % ground_station_id), "w") logging.info("Requesting transmitter success rates.") transmitters_stats = get_transmitter_stats() for transmitter in transmitters_stats: + # Skip absent transmitters if not transmitter['uuid'] in transmitters.keys(): continue - + # Skip dead satellites + if transmitter["norad_cat_id"] not in alive_norad_cat_ids: + continue + fp.write("%05d %s %d %d %d\n" % (transmitter["norad_cat_id"], transmitter["uuid"], diff --git a/utils.py b/utils.py index 3a976cb..b9ce6e7 100644 --- a/utils.py +++ b/utils.py @@ -40,7 +40,19 @@ def read_priorities_transmitters(filename): sattrans[sat] = transmitter return (satprio, sattrans) +def get_satellite_info(): + # Open session + logging.info("Fetching satellite information from DB.") + r = requests.get('{}/api/satellites'.format(settings.DB_BASE_URL)) + logging.info("Satellites received!") + # Select alive satellites + norad_cat_ids = [] + for o in r.json(): + if o["status"] == "alive": + norad_cat_ids.append(o["norad_cat_id"]) + + return norad_cat_ids def get_active_transmitter_info(fmin, fmax): # Open session