Added minimum priority limit
parent
15d6b17739
commit
d1d950717a
|
@ -84,12 +84,12 @@ def main():
|
||||||
default=datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S"))
|
default=datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S"))
|
||||||
parser.add_argument("-d",
|
parser.add_argument("-d",
|
||||||
"--duration",
|
"--duration",
|
||||||
help="Duration to schedule [hours; default 1.0]",
|
help="Duration to schedule [hours; default: 1.0]",
|
||||||
type=float,
|
type=float,
|
||||||
default=1.0)
|
default=1.0)
|
||||||
parser.add_argument("-m",
|
parser.add_argument("-m",
|
||||||
"--min-horizon",
|
"--min-horizon",
|
||||||
help="Minimum horizon [default 0.0]",
|
help="Minimum horizon [degrees; default: 0, maximum: 90]",
|
||||||
type=float,
|
type=float,
|
||||||
default=0.)
|
default=0.)
|
||||||
parser.add_argument("-z",
|
parser.add_argument("-z",
|
||||||
|
@ -105,7 +105,7 @@ def main():
|
||||||
parser.add_argument("-w",
|
parser.add_argument("-w",
|
||||||
"--wait",
|
"--wait",
|
||||||
help="Wait time between consecutive observations (for setup and slewing)" +
|
help="Wait time between consecutive observations (for setup and slewing)" +
|
||||||
" [seconds; default: 0, max 3600]",
|
" [seconds; default: 0, maximum: 3600]",
|
||||||
type=int,
|
type=int,
|
||||||
default=0)
|
default=0)
|
||||||
parser.add_argument("-n",
|
parser.add_argument("-n",
|
||||||
|
@ -119,6 +119,12 @@ def main():
|
||||||
" KgazZMKEa74VnquqXLwAvD|. Priority is fractional, one transmitter " +
|
" KgazZMKEa74VnquqXLwAvD|. Priority is fractional, one transmitter " +
|
||||||
"per line.",
|
"per line.",
|
||||||
default=None)
|
default=None)
|
||||||
|
parser.add_argument("-M",
|
||||||
|
"--min-priority",
|
||||||
|
help="Minimum priority. Only schedule passes with a priority higher" +
|
||||||
|
"than this limit [default: 0.0, maximum: 1.0]",
|
||||||
|
type=float,
|
||||||
|
default=0.)
|
||||||
parser.add_argument("-l",
|
parser.add_argument("-l",
|
||||||
"--log-level",
|
"--log-level",
|
||||||
default="INFO",
|
default="INFO",
|
||||||
|
@ -152,7 +158,18 @@ def main():
|
||||||
wait_time_seconds = args.wait
|
wait_time_seconds = args.wait
|
||||||
else:
|
else:
|
||||||
wait_time_seconds = 3600
|
wait_time_seconds = 3600
|
||||||
min_horizon_arg = args.min_horizon
|
if args.min_priority < 0.0:
|
||||||
|
min_priority = 0.0
|
||||||
|
elif args.min_priority > 1.0:
|
||||||
|
min_priority = 1.0
|
||||||
|
else:
|
||||||
|
min_priority = args.min_priority
|
||||||
|
if args.min_horizon < 0.0:
|
||||||
|
min_horizon_arg = 0.0
|
||||||
|
elif args.min_horizon > 90.0:
|
||||||
|
min_horizon_arg = 90.0
|
||||||
|
else:
|
||||||
|
min_horizon_arg = args.min_horizon
|
||||||
cache_dir = "/tmp/cache"
|
cache_dir = "/tmp/cache"
|
||||||
schedule = not args.dryrun
|
schedule = not args.dryrun
|
||||||
search_transmitters = args.search_transmitters
|
search_transmitters = args.search_transmitters
|
||||||
|
@ -271,7 +288,7 @@ def main():
|
||||||
|
|
||||||
# Get passes of priority objects
|
# Get passes of priority objects
|
||||||
prioritypasses, normalpasses = get_priority_passes(passes, priorities, favorite_transmitters,
|
prioritypasses, normalpasses = get_priority_passes(passes, priorities, favorite_transmitters,
|
||||||
search_transmitters)
|
search_transmitters, min_priority)
|
||||||
|
|
||||||
# Priority scheduler
|
# Priority scheduler
|
||||||
prioritypasses = sorted(prioritypasses, key=lambda satpass: -satpass['priority'])
|
prioritypasses = sorted(prioritypasses, key=lambda satpass: -satpass['priority'])
|
||||||
|
|
8
utils.py
8
utils.py
|
@ -305,7 +305,7 @@ def find_passes(satellites, observer, tmin, tmax, minimum_altitude, min_pass_dur
|
||||||
return passes
|
return passes
|
||||||
|
|
||||||
|
|
||||||
def get_priority_passes(passes, priorities, favorite_transmitters, search):
|
def get_priority_passes(passes, priorities, favorite_transmitters, search, min_priority):
|
||||||
priority = []
|
priority = []
|
||||||
normal = []
|
normal = []
|
||||||
for satpass in passes:
|
for satpass in passes:
|
||||||
|
@ -325,9 +325,11 @@ def get_priority_passes(passes, priorities, favorite_transmitters, search):
|
||||||
* float(satpass['good_count']) / max_good_count
|
* float(satpass['good_count']) / max_good_count
|
||||||
else:
|
else:
|
||||||
satpass['priority'] = (float(satpass['altt']) / 90.0) * satpass['success_rate']
|
satpass['priority'] = (float(satpass['altt']) / 90.0) * satpass['success_rate']
|
||||||
normal.append(satpass)
|
|
||||||
return (priority, normal)
|
|
||||||
|
|
||||||
|
# Add if priority is high enough
|
||||||
|
if satpass['priority'] >= min_priority:
|
||||||
|
normal.append(satpass)
|
||||||
|
return (priority, normal)
|
||||||
|
|
||||||
def get_groundstation_info(ground_station_id):
|
def get_groundstation_info(ground_station_id):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue