Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.stsci.edu/spst/UnixTransition/doc/avtut_namelist_editor.py
Дата изменения: Fri Apr 8 12:46:10 2016
Дата индексирования: Mon Apr 11 05:41:25 2016
Кодировка:

Поисковые слова: http www.astronomy.ru forum index.php topic 4644.0.html
#
#MODULE avtut_namelist_editor.py
#
#***********************************************************************
"""

**PURPOSE** --
An GUI for modifying the AVTUT namelist.

Requires Python 2.5.

**DEVELOPER** --
Don Chance

**MODIFICATION HISTORY** --
Initial implementation 6/16/09
fix bug when no namelist given. drc 7/22/09
Updated for PASS build 33.40. drc 9/24/09
Updated for PASS build 33.95. drc 5/8/14
Get TDRS names from tdrsuse file via ephem_util. drc 11/25/14
fix namelist. drc 3/2/16
"""
#***********************************************************************
import sys
from PyQt4 import QtCore, QtGui
from avtut_ui import Ui_avtutMainWindow
from tut_interval_ui import Ui_tut_interval_widget
import namelist_util
import pass_util
import time_util
import spss_sys_util
from ephem_util import NOMINAL_TDRS_COMBO

__version__ = '16.03.02'


class avtut_namelist_editorQt4(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_avtutMainWindow()
self.ui.setupUi(self)
self.namelist = None
tut_interval1 = Ui_tut_interval_widget()
tut_interval1.setupUi(self.ui.frame)
self.interval_list = [tut_interval1]
QtCore.QObject.connect(self.ui.addIntervalButton,
QtCore.SIGNAL("clicked()"),
self.add_tab)
QtCore.QObject.connect(self.ui.removeIntervalButton,
QtCore.SIGNAL("clicked()"),
self.remove_tab)
QtCore.QObject.connect(self.ui.writeNamelistButton,
QtCore.SIGNAL("clicked()"),
self.write_namelist)

def add_tab(self):
"""Add an interval tab.
"""
tut_interval_tab = QtGui.QWidget()

sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(tut_interval_tab.sizePolicy().hasHeightForWidth())

tut_interval_tab.setSizePolicy(sizePolicy)

frame = QtGui.QFrame(tut_interval_tab)

sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(frame.sizePolicy().hasHeightForWidth())

frame.setSizePolicy(sizePolicy)
frame.setFrameShape(QtGui.QFrame.StyledPanel)
frame.setFrameShadow(QtGui.QFrame.Raised)

gridLayout = QtGui.QGridLayout(tut_interval_tab)
gridLayout.addWidget(frame, 0, 0, 1, 1)

tut_interval_tab.ui = Ui_tut_interval_widget()
tut_interval_tab.ui.setupUi(frame)

self.interval_list.append(tut_interval_tab.ui)
self.ui.IntervaltabWidget.addTab(tut_interval_tab, "Interval %i" % len(self.interval_list))
#tut_interval_tab.show()

def remove_tab(self):
"""Remove an interval tab.
"""
if len(self.interval_list) == 1:
return
self.ui.IntervaltabWidget.removeTab(len(self.interval_list)-1)
del self.interval_list[-1]

def set_namelist(self):
ndict = self.namelist['TTNTUTNML']

ndict['TUT_MAF_PAD'] = ["'" + time_util.delta_time(str(self.ui.Gen1TDRS_MAFPadBox.text())).to_pass_delta_time() + "'",
"'" + time_util.delta_time(str(self.ui.Gen2TDRS_MAFPadBox.text())).to_pass_delta_time() + "'"]
ndict['TUT_MA_PAD'] = ["'" + time_util.delta_time(str(self.ui.Gen1TDRS_MAPadBox.text())).to_pass_delta_time() + "'",
"'" + time_util.delta_time(str(self.ui.Gen2TDRS_MAPadBox.text())).to_pass_delta_time() + "'"]
ndict['TUT_SSA_PAD'] = ["'" + time_util.delta_time(str(self.ui.Gen1TDRS_SSAPadBox.text())).to_pass_delta_time() + "'",
"'" + time_util.delta_time(str(self.ui.Gen2TDRS_SSAPadBox.text())).to_pass_delta_time() + "'"]
ndict['MIN_VIEW_DUR'] = ["'" + time_util.delta_time(str(self.ui.minViewDurBox.text())).to_pass_delta_time() + "'"]
ndict['MIN_EVT_DUR'] = ["'" + time_util.delta_time(str(self.ui.minEventDurBox.text())).to_pass_delta_time() + "'"]
ndict['NCC_EVT_GAP'] = ["'" + time_util.delta_time(str(self.ui.NCCEventGapBox.text())).to_pass_delta_time() + "'"]
ndict['MIN_GAP_DUR'] = ["'" + time_util.delta_time(str(self.ui.minTDRSEventGapBox.text())).to_pass_delta_time() + "'"]
ndict['MIN_REP_EXTDUR'] = ["'" + time_util.delta_time(str(self.ui.minAddDurBox.text())).to_pass_delta_time() + "'"]
ndict['MIN_REP_OVLDUR'] = ["'" + time_util.delta_time(str(self.ui.minOverlapBox.text())).to_pass_delta_time() + "'"]
ndict['MIN_EXP_SADUR'] = ["'" + time_util.delta_time(str(self.ui.minSAexpansionBox.text())).to_pass_delta_time() + "'"]
ndict['MIN_EXP_MADUR'] = ["'" + time_util.delta_time(str(self.ui.minMAexpansionBox.text())).to_pass_delta_time() + "'"]

if str(self.ui.updateTDRSSchedBox.currentText()) == 'Yes':
ndict['UPDATE_TDRS_SCHED'] = [".TRUE."]
else:
ndict['UPDATE_TDRS_SCHED'] = [".FALSE."]

if str(self.ui.GenHGATDRSTrackRptBox.currentText()) == 'Yes without TUT':
ndict['HGA_TRACK_REPORT'] = ["'YES'"]
elif str(self.ui.GenHGATDRSTrackRptBox.currentText()) == 'Yes with TUT':
ndict['HGA_TRACK_REPORT'] = ["'YES_TUT'"]
else:
ndict['HGA_TRACK_REPORT'] = ["'NO'"]

if self.ui.rfi_apply_sched_update_checkBox.isChecked():
ndict['RFI_APPLY_SCHED_UPDATE'] = [".TRUE."]
else:
ndict['RFI_APPLY_SCHED_UPDATE'] = [".FALSE."]

if self.ui.rfi_apply_hga_report_checkBox.isChecked():
ndict['RFI_APPLY_HGA_REPORT'] = [".TRUE."]
else:
ndict['RFI_APPLY_HGA_REPORT'] = [".FALSE."]

ndict['SELECT_TIME'] = []
ndict['SELECT_TDRS'] = []
ndict['SELECT_TUT_EXP'] = []
ndict['SELECT_EXP_SERV'] = []
ndict['SELECT_TUT_REP'] = []
ndict['SELECT_TUT_GAP'] = []
ndict['SELECT_GAP_SERV'] = []
for interval in self.interval_list:
if str(interval.start_time.text()).strip():
ndict['SELECT_TIME'].append("'" + time_util.spss_time(str(interval.start_time.text())).get_pass_time() + "'")
else:
ndict['SELECT_TIME'].append("' '")
if str(interval.end_time.text()).strip():
ndict['SELECT_TIME'].append("'" + time_util.spss_time(str(interval.end_time.text())).get_pass_time() + "'")
else:
ndict['SELECT_TIME'].append("' '")

if (interval.checkBox_TD1.isChecked() and
interval.checkBox_TD2.isChecked() and
interval.checkBox_TD3.isChecked() and
interval.checkBox_TD4.isChecked()):
ndict['SELECT_TDRS'].extend(["'ALL'", "' '", "' '", "' '"])
else:
if interval.checkBox_TD1.isChecked():
ndict['SELECT_TDRS'].append("'%s'" % NOMINAL_TDRS_COMBO[0])
else:
ndict['SELECT_TDRS'].append("' '")
if interval.checkBox_TD2.isChecked():
ndict['SELECT_TDRS'].append("'%s'" % NOMINAL_TDRS_COMBO[1])
else:
ndict['SELECT_TDRS'].append("' '")
if interval.checkBox_TD3.isChecked():
ndict['SELECT_TDRS'].append("'%s'" % NOMINAL_TDRS_COMBO[2])
else:
ndict['SELECT_TDRS'].append("' '")
if interval.checkBox_TD4.isChecked():
ndict['SELECT_TDRS'].append("'%s'" % NOMINAL_TDRS_COMBO[3])
else:
ndict['SELECT_TDRS'].append("' '")

if interval.expand_processing_box.isChecked():
ndict['SELECT_TUT_EXP'].append(".TRUE.")
else:
ndict['SELECT_TUT_EXP'].append(".FALSE.")

if interval.expandAll_Button.isChecked():
ndict['SELECT_EXP_SERV'].extend(["'ALL '", "' '", "' '"])
elif interval.expandSSAonly_Button.isChecked():
ndict['SELECT_EXP_SERV'].extend(["'SAONLY'", "' '", "' '"])
elif interval.expandMARSSAservices_Button.isChecked():
ndict['SELECT_EXP_SERV'].extend(["' '", "'MA-SSA'", "' '"])
else:
ndict['SELECT_EXP_SERV'].extend(["' '", "' '", "'MAONLY'"])

if interval.replace_processing_box.isChecked():
ndict['SELECT_TUT_REP'].append(".TRUE.")
else:
ndict['SELECT_TUT_REP'].append(".FALSE.")

if interval.perform_gap_processing_box.isChecked():
ndict['SELECT_TUT_GAP'].append(".TRUE.")
else:
ndict['SELECT_TUT_GAP'].append(".FALSE.")

if interval.addAllButton.isChecked():
ndict['SELECT_GAP_SERV'].extend(["'ALL '", "' '", "' '"])
elif interval.addMARSSAButton.isChecked():
ndict['SELECT_GAP_SERV'].extend(["'MA-SSA'", "' '", "' '"])
else:
ndict['SELECT_GAP_SERV'].extend(["' '", "'MAONLY'", "' '"])

ndict['SELECT_TIME'].extend((40-len(ndict['SELECT_TIME'])) * ["'NONE'"])
ndict['SELECT_TDRS'].extend((80-len(ndict['SELECT_TDRS'])) * ["' '"])
ndict['SELECT_TUT_EXP'].extend((20-len(ndict['SELECT_TUT_EXP'])) * [".FALSE."])
ndict['SELECT_EXP_SERV'].extend((60-len(ndict['SELECT_EXP_SERV'])) * ["' '"])
ndict['SELECT_TUT_REP'].extend((20-len(ndict['SELECT_TUT_REP'])) * [".FALSE."])
ndict['SELECT_TUT_GAP'].extend((20-len(ndict['SELECT_TUT_GAP'])) * [".FALSE."])
ndict['SELECT_GAP_SERV'].extend((60-len(ndict['SELECT_GAP_SERV'])) * ["' '"])

def write_namelist(self):
print "writing namelist..."
self.set_namelist()
self.avtut_obj.generic_namelist = self.namelist
APP.quit()

def set_values(self, avtut_obj):
self.avtut_obj = avtut_obj
if not avtut_obj:
self.namelist = namelist_util.namelist(pass_util.get_pass_namelist_path('avtut.nml', 'ops'))
else:
if avtut_obj.namelist_template:
self.namelist = namelist_util.namelist(pass_util.get_pass_namelist_path(avtut_obj.namelist_template,
avtut_obj.software_version))
else:
self.namelist = namelist_util.namelist(pass_util.get_pass_namelist_path('avtut.nml',
avtut_obj.software_version))

ndict = self.namelist['TTNTUTNML']

self.ui.Gen1TDRS_MAFPadBox.setText(ndict.get('TUT_MAF_PAD', ["'30S'", "'30S'"])[0].strip("'"))
self.ui.Gen2TDRS_MAFPadBox.setText(ndict.get('TUT_MAF_PAD', ["'30S'", "'30S'"])[1].strip("'"))

self.ui.Gen1TDRS_MAPadBox.setText(ndict.get('TUT_MA_PAD', ["'2M'", "'2M'"])[0].strip("'"))
self.ui.Gen2TDRS_MAPadBox.setText(ndict.get('TUT_MA_PAD', ["'2M'", "'2M'"])[1].strip("'"))

self.ui.Gen1TDRS_SSAPadBox.setText(ndict.get('TUT_SSA_PAD', ["'2M'", "'2M'"])[0].strip("'"))
self.ui.Gen2TDRS_SSAPadBox.setText(ndict.get('TUT_SSA_PAD', ["'2M'", "'2M'"])[1].strip("'"))

self.ui.minViewDurBox.setText(ndict.get('MIN_VIEW_DUR', ["'5M'"])[0].strip("'"))

self.ui.minEventDurBox.setText(ndict.get('MIN_EVT_DUR', ["'15M'"])[0].strip("'"))

self.ui.NCCEventGapBox.setText(ndict.get('NCC_EVT_GAP', ["'2M'"])[0].strip("'"))

self.ui.minTDRSEventGapBox.setText(ndict.get('MIN_GAP_DUR', ["'30M'"])[0].strip("'"))

self.ui.minAddDurBox.setText(ndict.get('MIN_REP_EXTDUR', ["'3M'"])[0].strip("'"))

self.ui.minOverlapBox.setText(ndict.get('MIN_REP_OVLDUR', ["'10M'"])[0].strip("'"))

self.ui.minSAexpansionBox.setText(ndict.get('MIN_EXP_SADUR', ["'2M'"])[0].strip("'"))

self.ui.minMAexpansionBox.setText(ndict.get('MIN_EXP_MADUR', ["'3M'"])[0].strip("'"))

if ndict.get('UPDATE_TDRS_SCHED', [".TRUE."])[0].upper() in (".T.", ".TRUE."):
self.ui.updateTDRSSchedBox.setCurrentIndex(self.ui.updateTDRSSchedBox.findText('Yes'))
else:
self.ui.updateTDRSSchedBox.setCurrentIndex(self.ui.updateTDRSSchedBox.findText('No'))

if ndict.get('HGA_TRACK_REPORT', ["'YES_TUT'"])[0].strip("'") == 'YES_TUT':
self.ui.GenHGATDRSTrackRptBox.setCurrentIndex(self.ui.GenHGATDRSTrackRptBox.findText('Yes with TUT'))
elif ndict.get('HGA_TRACK_REPORT', ["'YES_TUT'"])[0].strip("'") == 'YES':
self.ui.GenHGATDRSTrackRptBox.setCurrentIndex(self.ui.GenHGATDRSTrackRptBox.findText('Yes without TUT'))
else:
self.ui.GenHGATDRSTrackRptBox.setCurrentIndex(self.ui.GenHGATDRSTrackRptBox.findText('No'))

interval_count = 0
select_time_list = ndict.get('SELECT_TIME',
["' '", "' '"] + 38*["'NONE'"])
tdrs_list = ndict.get('SELECT_TDRS',
["'ALL'", "' '", "' '", "' '"] + 76*["' '"])
expand_processing_list = ndict.get('SELECT_TUT_EXP',
[".TRUE."] + 19*[".FALSE."])
expand_services_list = ndict.get('SELECT_EXP_SERV',
["'ALL '", "' '", "' '"] + 57*["' '"])
replace_processing_list = ndict.get('SELECT_TUT_REP',
[".TRUE."] + 19*[".FALSE."])
do_gap_processing_list = ndict.get('SELECT_TUT_GAP',
[".TRUE."] + 19*[".FALSE."])
add_services_list = ndict.get('SELECT_GAP_SERV',
["'ALL '", "' '", "' '"] + 57*["' '"])
for i in range(0, 20):
start_time = select_time_list[2*i].strip("'")
end_time = select_time_list[2*i+1].strip("'")
if start_time != 'NONE' and end_time != 'NONE':
interval_count += 1
if interval_count > 1:
self.add_tab()
interval = self.interval_list[-1]
interval.start_time.setText(start_time)
interval.end_time.setText(end_time)

if tdrs_list[4*i] == "'ALL'" or (tdrs_list[4*i].strip("'").strip() == '' and
tdrs_list[4*i+1].strip("'").strip() == '' and
tdrs_list[4*i+2].strip("'").strip() == '' and
tdrs_list[4*i+3].strip("'").strip() == ''):
interval.checkBox_TD1.setChecked(True)
interval.checkBox_TD2.setChecked(True)
interval.checkBox_TD3.setChecked(True)
interval.checkBox_TD4.setChecked(True)
else:
interval.checkBox_TD1.setChecked(False)
interval.checkBox_TD2.setChecked(False)
interval.checkBox_TD3.setChecked(False)
interval.checkBox_TD4.setChecked(False)
if tdrs_list[4*i] == ("'%s'" % NOMINAL_TDRS_COMBO[0]):
interval.checkBox_TD1.setChecked(True)
if tdrs_list[4*i+1] == ("'%s'" % NOMINAL_TDRS_COMBO[1]):
interval.checkBox_TD2.setChecked(True)
if tdrs_list[4*i+2] == ("'%s'" % NOMINAL_TDRS_COMBO[2]):
interval.checkBox_TD3.setChecked(True)
if tdrs_list[4*i+3] == ("'%s'" % NOMINAL_TDRS_COMBO[3]):
interval.checkBox_TD4.setChecked(True)

if expand_processing_list[i].upper() in (".T.", ".TRUE."):
interval.expand_processing_box.setChecked(True)
else:
interval.expand_processing_box.setChecked(False)

if (expand_services_list[3*i].strip("'").strip().upper() == "ALL" or
(expand_services_list[3*i].strip("'").strip() == '' and
expand_services_list[3*i+1].strip("'").strip() == '' and
expand_services_list[3*i+2].strip("'").strip() == '')):
interval.expandAll_Button.setChecked(True)
elif expand_services_list[3*i].strip("'").strip().upper() == "SAONLY":
interval.expandSSAonly_Button.setChecked(True)
elif expand_services_list[3*i+1].strip("'").strip().upper() == "MA-SSA":
interval.expandMARSSAservices_Button.setChecked(True)
elif expand_services_list[3*i+2].strip("'").strip().upper() == "MAONLY":
interval.expandMA_Button.setChecked(True)
else:
interval.expandAll_Button.setChecked(True)

if replace_processing_list[i].upper() in (".T.", ".TRUE."):
interval.replace_processing_box.setChecked(True)
else:
interval.replace_processing_box.setChecked(False)

if do_gap_processing_list[i].upper() in (".T.", ".TRUE."):
interval.perform_gap_processing_box.setChecked(True)
else:
interval.perform_gap_processing_box.setChecked(False)

if (add_services_list[3*i].strip("'").strip().upper() == "ALL" or
(add_services_list[3*i].strip("'").strip() == '' and
add_services_list[3*i+1].strip("'").strip() == '' and
add_services_list[3*i+2].strip("'").strip() == '')):
interval.addAllButton.setChecked(True)
elif expand_services_list[3*i].strip("'").strip().upper() == "MA-SSA":
interval.addMARSSAButton.setChecked(True)
elif expand_services_list[3*i+1].strip("'").strip().upper() == "MAONLY":
interval.addMAonlyButton.setChecked(True)
else:
interval.addAllButton.setChecked(True)


def gui(avtut_obj=None):
global APP
APP = QtGui.QApplication([])
myapp = avtut_namelist_editorQt4()
myapp.setWindowTitle('AVTUT Namelist Editor')
myapp.setWindowIcon(QtGui.QIcon(spss_sys_util.resolver('PE_DAT', 'smallertut.png')))
myapp.set_values(avtut_obj)
myapp.show()
#QtCore.QObject.connect(app, QtCore.SIGNAL("aboutToQuit"), myapp.write_namelist)
#sys.exit(app.exec_())
APP.exec_()

if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = avtut_namelist_editorQt4()
myapp.show()
sys.exit(app.exec_())