Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.stsci.edu/spst/UnixTransition/doc/tdrs_lis_check.py
Дата изменения: Fri Feb 28 14:46:12 2014
Дата индексирования: Sat Mar 1 17:14:00 2014
Кодировка:

Поисковые слова: mercury program
#
# Module tdrs_lis_check
#
#******************************************************************************
"""Examines the specified TDRS LIS file for cases where the H04 forward
services extend outside the MAR service for the event

TITLE: tdrs_lis_check.py
DEVELOPER: Alan Patterson, 30-Sep-2002

PURPOSE: The tool will examine the specified TDRS LIS file for cases
where the H04 forward service extends beyond the MAR service
for the event

USAGE: do tdrs_lis_check

where: is filename of the TDRS LIS file to be
examined

RETURNS: Nothing

MOD HISTORY:
Check for events without an MAR service. drc 12/2/02
Use tdrs_util utility app 02/25/03
Allow (coho) H04 to start early (30 sec) app 03/10/10
"""
#******************************************************************************
import string
import sys
import spss_sys_util
import time_util
import tdrs_util

__version__ = "03/10/10"
__author__ = 'Alan Patterson'

def run(tdrslisfile):
"""Examines TDRS LIS file for cases where the H04 forward
services extend outside the MAR service for the event.

do tdrs_lis_check

where tdrslisfile is the full file specification of the TDRS LIS
file to be checked
"""
if not tdrslisfile:
print run.__doc__
return not spss_sys_util.SUCCESS

mar_win = None
maf_win = None
ssar_win = None
ssaf_win = None
num_bad = 0

lis_1 = tdrs_util.tdrslis_file(tdrslisfile)
lis_events = lis_1.get_tdrs_events()
ev_list = tdrs_util.event_list_by_start(lis_events)

# examine all events for validity (H04 or A02 must not extend outside
# MAR window)
print
for ev in ev_list:
# Print each event that has no MAR service
mar_win = None
maf_win = None
ssar_win = None
ssaf_win = None
ssar_ssc = None
ev_win = time_util.window(ev.get_start(),ev.get_end())
for svc in ev.get_services():
if svc.get_type() == 'MAR':
mar_win = time_util.window(svc.get_start(),svc.get_end())
for svc in ev.get_services():
if mar_win is not None and svc.get_type() == 'MAF':
maf_win = time_util.window(svc.get_start(),svc.get_end())
#allow specific case of MAF starting 30 sec before MAR service
if svc.get_start()+30 == mar_win.starttime():
continue
if (svc.get_start() < mar_win.starttime() or
svc.get_end() > mar_win.endtime()):
num_bad = num_bad + 1
do_header(num_bad)
print ' MAF error %s ** %s' % (mar_win,maf_win)
if mar_win is not None and svc.get_type() == 'SSAF':
ssaf_win = time_util.window(svc.get_start(),svc.get_end())
#allow specific case of SSAF starting 30 sec before MAR service
if ssaf_win.starttime()+30 == mar_win.starttime():
continue
elif (ssaf_win.starttime() < mar_win.starttime() or
ssaf_win.endtime() > mar_win.endtime()):
num_bad = num_bad + 1
do_header(num_bad)
print 'SSAF error %s ** %s' % (mar_win,ssaf_win)
if svc.get_type() == 'SSAR':
ssar_win = time_util.window(svc.get_start(),svc.get_end())
ssar_ssc = svc.get_ssc()
if not mar_win and ssar_ssc != 'J06':
print "No MAR window for the following event:"
print "event id :", ev.get_id()
print "mar window :", mar_win
print "maf window :", maf_win
print "ssaf window:", ssaf_win
print "ssar window:", ssar_win
print
if num_bad == 0:
print 'No MAF or SSAF services extend outside MAR services'
print ' except for (coho) events where an exact 30 sec extension'
print ' is allowed.'

# end run

def do_header(num):
"""print header if num == 1
"""
header = ' MAR window '
header = header + ' MAF or SSAF window'
if num == 1:
print ' '
print header
print ' '
return

# to run on commandline
if __name__ == '__main__':
input1 = None
if len(sys.argv) > 1:
input1 = sys.argv[1]
run(input1)