# -*- coding: utf-8 -*-
"""
Module implementing MainWindow.
#+++++++++++++GUI V1++++++++++++++#
@author: AlexanderValdezPortocarrero ñ_ñ
"""
import os, sys, time
import datetime
import numpy
import Queue
from collections import OrderedDict
from os.path import expanduser
from time import sleep
from PyQt4.QtGui import QMainWindow
from PyQt4.QtCore import pyqtSignature
from PyQt4.QtCore import pyqtSignal
from PyQt4 import QtCore
from PyQt4 import QtGui
from schainpy.gui.viewer.ui_unitprocess import Ui_UnitProcess
from schainpy.gui.viewer.ui_ftp import Ui_Ftp
from schainpy.gui.viewer.ui_mainwindow import Ui_BasicWindow
from schainpy.controller import Project
from propertiesViewModel import TreeModel, PropertyBuffer
from parametersModel import ProjectParms
from schainpy.gui.figures import tools
from schainpy.gui.viewcontroller.comm import ControllerThread
FIGURES_PATH = tools.get_path()
def isRadarFile(file):
try:
year = int(file[1:5])
doy = int(file[5:8])
set = int(file[8:11])
except:
return 0
return 1
def isRadarPath(path):
try:
year = int(path[1:5])
doy = int(path[5:8])
except:
return 0
return 1
class BasicWindow(QMainWindow, Ui_BasicWindow):
"""
"""
def __init__(self, parent=None):
"""
"""
QMainWindow.__init__(self, parent)
self.setupUi(self)
self.__puObjDict = {}
self.__itemTreeDict = {}
self.readUnitConfObjList = []
self.operObjList = []
self.projecObjView = None
self.idProject = 0
# self.idImag = 0
self.idImagscope = 0
self.idImagspectra = 0
self.idImagcross = 0
self.idImagrti = 0
self.idImagcoherence = 0
self.idImagpower = 0
self.idImagrtinoise = 0
self.idImagspectraHeis = 0
self.idImagrtiHeis = 0
self.online = 0
self.walk = 0
self.create = False
self.selectedItemTree = None
self.controllerObj = None
# self.commCtrlPThread = None
# self.create_figure()
self.temporalFTP = ftpBuffer()
self.projectProperCaracteristica = []
self.projectProperPrincipal = []
self.projectProperDescripcion = []
self.volProperCaracteristica = []
self.volProperPrincipal = []
self.volProperDescripcion = []
self.specProperCaracteristica = []
self.specProperPrincipal = []
self.specProperDescripcion = []
self.specHeisProperCaracteristica = []
self.specHeisProperPrincipal = []
self.specHeisProperDescripcion = []
# self.pathWorkSpace = './'
self.__projectObjDict = {}
self.__operationObjDict = {}
self.__ftpProcUnitAdded = False
self.__ftpProcUnitId = None
self.__initialized = False
# self.create_comm()
self.create_updating_timer()
self.setParameter()
@pyqtSignature("")
def on_actionOpen_triggered(self):
"""
Slot documentation goes here.
"""
self.openProject()
@pyqtSignature("")
def on_actionCreate_triggered(self):
"""
Slot documentation goes here.
"""
self.setInputsProject_View()
self.create = True
@pyqtSignature("")
def on_actionSave_triggered(self):
"""
Slot documentation goes here.
"""
self.saveProject()
@pyqtSignature("")
def on_actionClose_triggered(self):
"""
Slot documentation goes here.
"""
self.close()
@pyqtSignature("")
def on_actionStart_triggered(self):
"""
"""
self.playProject()
@pyqtSignature("")
def on_actionPause_triggered(self):
"""
"""
self.pauseProject()
@pyqtSignature("")
def on_actionStop_triggered(self):
"""
"""
self.stopProject()
@pyqtSignature("")
def on_actionFTP_triggered(self):
"""
"""
self.configFTPWindowObj = Ftp(self)
# if self.temporalFTP.create:
if self.temporalFTP.createforView:
server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
self.configFTPWindowObj.setParmsfromTemporal(server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos)
self.configFTPWindowObj.show()
self.configFTPWindowObj.closed.connect(self.createFTPConfig)
def createFTPConfig(self):
self.console.clear()
if not self.configFTPWindowObj.create:
self.console.append("There is no FTP configuration")
return
self.console.append("Push Ok in Spectra view to Add FTP Configuration")
server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.configFTPWindowObj.getParmsFromFtpWindow()
self.temporalFTP.save(server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos)
@pyqtSignature("")
def on_actionOpenToolbar_triggered(self):
"""
Slot documentation goes here.
"""
self.openProject()
@pyqtSignature("")
def on_actionCreateToolbar_triggered(self):
"""
Slot documentation goes here.
"""
self.setInputsProject_View()
self.create = True
@pyqtSignature("")
def on_actionAddPU_triggered(self):
if len(self.__projectObjDict) == 0:
outputstr = "First Create a Project then add Processing Unit"
self.console.clear()
self.console.append(outputstr)
return 0
else:
self.addPUWindow()
self.console.clear()
self.console.append("Please, Choose the type of Processing Unit")
self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
@pyqtSignature("")
def on_actionSaveToolbar_triggered(self):
"""
Slot documentation goes here.
"""
self.saveProject()
@pyqtSignature("")
def on_actionStarToolbar_triggered(self):
"""
Slot documentation goes here.
"""
self.playProject()
@pyqtSignature("")
def on_actionPauseToolbar_triggered(self):
self.pauseProject()
@pyqtSignature("")
def on_actionStopToolbar_triggered(self):
"""
Slot documentation goes here.
"""
self.stopProject()
@pyqtSignature("int")
def on_proComReadMode_activated(self, index):
"""
SELECCION DEL MODO DE LECTURA ON=1, OFF=0
"""
if index == 0:
self.online = 0
self.proDelay.setText("0")
self.proSet.setText("0")
self.proSet.setEnabled(False)
self.proDelay.setEnabled(False)
elif index == 1:
self.online = 1
self.proSet.setText(" ")
self.proDelay.setText("5")
self.proSet.setEnabled(True)
self.proDelay.setEnabled(True)
@pyqtSignature("int")
def on_proComDataType_activated(self, index):
"""
Voltage or Spectra
"""
if index == 0:
extension = '.r'
elif index == 1:
extension = '.pdata'
elif index == 2:
extension = '.fits'
elif index == 3:
extension = '.hdf5'
self.proDataType.setText(extension)
self.console.clear()
@pyqtSignature("int")
def on_proComWalk_activated(self, index):
"""
"""
if index == 0:
self.walk = 0
elif index == 1:
self.walk = 1
@pyqtSignature("")
def on_proToolPath_clicked(self):
"""
Choose your path
"""
self.dataPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.proDataPath.setText(self.dataPath)
self.proComStartDate.clear()
self.proComEndDate.clear()
if not os.path.exists(self.dataPath):
self.proOk.setEnabled(False)
self.console.clear()
self.console.append("Write a correct a path")
return
self.console.clear()
self.console.append("Select the read mode")
@pyqtSignature("")
def on_proLoadButton_clicked(self):
self.console.clear()
parameter_list = self.checkInputsProject()
if not parameter_list[0]:
return
parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set = parameter_list
if read_mode == "Offline":
self.proComStartDate.clear()
self.proComEndDate.clear()
self.proComStartDate.setEnabled(True)
self.proComEndDate.setEnabled(True)
self.proStartTime.setEnabled(True)
self.proEndTime.setEnabled(True)
self.frame_2.setEnabled(True)
if read_mode == "Online":
self.proComStartDate.addItem("2000/01/30")
self.proComEndDate.addItem("2016/12/31")
self.proComStartDate.setEnabled(False)
self.proComEndDate.setEnabled(False)
self.proStartTime.setEnabled(False)
self.proEndTime.setEnabled(False)
self.frame_2.setEnabled(True)
self.loadDays(data_path, ext, walk)
@pyqtSignature("int")
def on_proComStartDate_activated(self, index):
"""
SELECCION DEL RANGO DE FECHAS -START DATE
"""
stopIndex = self.proComEndDate.count() - self.proComEndDate.currentIndex()
self.proComEndDate.clear()
for i in self.dateList[index:]:
self.proComEndDate.addItem(i)
self.proComEndDate.setCurrentIndex(self.proComEndDate.count() - stopIndex)
@pyqtSignature("int")
def on_proComEndDate_activated(self, index):
"""
SELECCION DEL RANGO DE FECHAS-END DATE
"""
startIndex = self.proComStartDate.currentIndex()
stopIndex = self.proComEndDate.count() - index
self.proComStartDate.clear()
for i in self.dateList[:len(self.dateList) - stopIndex + 1]:
self.proComStartDate.addItem(i)
self.proComStartDate.setCurrentIndex(startIndex)
@pyqtSignature("")
def on_proOk_clicked(self):
"""
Añade al Obj XML de Projecto, name,datatype,date,time,readmode,wait,etc, crea el readUnitProcess del archivo xml.
Prepara la configuración del diágrama del Arbol del treeView numero 2
"""
if self.create:
self.idProject += 1
projectId = self.idProject
projectObjView = self.createProjectView(projectId)
readUnitObj = self.createReadUnitView(projectObjView)
self.addProject2ProjectExplorer(id=projectId, name=projectObjView.name)
else:
projectObjView = self.updateProjectView()
projectId = projectObjView.getId()
idReadUnit = projectObjView.getReadUnitId()
readUnitObj = self.updateReadUnitView(projectObjView, idReadUnit)
self.__itemTreeDict[projectId].setText(projectObjView.name)
# Project Properties
self.refreshProjectProperties(projectObjView)
# Disable tabProject after finish the creation
self.tabProject.setEnabled(True)
@pyqtSignature("")
def on_proClear_clicked(self):
self.setInputsProject_View()
projectObj = self.getSelectedProjectObj()
@pyqtSignature("int")
def on_volOpCebChannels_stateChanged(self, p0):
"""
Check Box habilita operaciones de Selecci�n de Canales
"""
if p0 == 2:
self.volOpComChannels.setEnabled(True)
self.volOpChannel.setEnabled(True)
if p0 == 0:
self.volOpComChannels.setEnabled(False)
self.volOpChannel.setEnabled(False)
self.volOpChannel.clear()
@pyqtSignature("int")
def on_volOpCebHeights_stateChanged(self, p0):
"""
Check Box habilita operaciones de Selecci�n de Alturas
"""
if p0 == 2:
self.volOpHeights.setEnabled(True)
self.volOpComHeights.setEnabled(True)
if p0 == 0:
self.volOpHeights.setEnabled(False)
self.volOpHeights.clear()
self.volOpComHeights.setEnabled(False)
@pyqtSignature("int")
def on_volOpCebFilter_stateChanged(self, p0):
"""
Name='Decoder', optype='other'
"""
if p0 == 2:
self.volOpFilter.setEnabled(True)
if p0 == 0:
self.volOpFilter.setEnabled(False)
self.volOpFilter.clear()
@pyqtSignature("int")
def on_volOpCebProfile_stateChanged(self, p0):
"""
Check Box habilita ingreso del rango de Perfiles
"""
if p0 == 2:
self.volOpComProfile.setEnabled(True)
self.volOpProfile.setEnabled(True)
if p0 == 0:
self.volOpComProfile.setEnabled(False)
self.volOpProfile.setEnabled(False)
self.volOpProfile.clear()
@pyqtSignature("int")
def on_volOpCebDecodification_stateChanged(self, p0):
"""
Check Box habilita
"""
if p0 == 2:
self.volOpComCode.setEnabled(True)
self.volOpComMode.setEnabled(True)
if p0 == 0:
self.volOpComCode.setEnabled(False)
self.volOpComMode.setEnabled(False)
@pyqtSignature("int")
def on_volOpCebFlip_stateChanged(self, p0):
"""
Check Box habilita ingresode del numero de Integraciones a realizar
"""
if p0 == 2:
self.volOpFlip.setEnabled(True)
if p0 == 0:
self.volOpFlip.setEnabled(False)
self.volOpFlip.clear()
@pyqtSignature("int")
def on_volOpCebCohInt_stateChanged(self, p0):
"""
Check Box habilita ingresode del numero de Integraciones a realizar
"""
if p0 == 2:
self.volOpCohInt.setEnabled(True)
if p0 == 0:
self.volOpCohInt.setEnabled(False)
self.volOpCohInt.clear()
@pyqtSignature("int")
def on_volOpCebRadarfrequency_stateChanged(self, p0):
"""
Check Box habilita ingresode del numero de Integraciones a realizar
"""
if p0 == 2:
self.volOpRadarfrequency.setEnabled(True)
if p0 == 0:
self.volOpRadarfrequency.clear()
self.volOpRadarfrequency.setEnabled(False)
@pyqtSignature("")
def on_volOutputToolPath_clicked(self):
dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.volOutputPath.setText(dirOutPath)
@pyqtSignature("")
def on_specOutputToolPath_clicked(self):
dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.specOutputPath.setText(dirOutPath)
@pyqtSignature("")
def on_specHeisOutputToolPath_clicked(self):
dirOutPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.specHeisOutputPath.setText(dirOutPath)
@pyqtSignature("")
def on_specHeisOutputMetadaToolPath_clicked(self):
filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.pathWorkSpace, self.tr("Text Files (*.xml)")))
self.specHeisOutputMetada.setText(filename)
@pyqtSignature("")
def on_volOpOk_clicked(self):
"""
BUSCA EN LA LISTA DE OPERACIONES DEL TIPO VOLTAJE Y LES A�ADE EL PARAMETRO ADECUADO ESPERANDO LA ACEPTACION DEL USUARIO
PARA AGREGARLO AL ARCHIVO DE CONFIGURACION XML
"""
checkPath = False
self.actionSaveToolbar.setEnabled(False)
self.actionStarToolbar.setEnabled(False)
puObj = self.getSelectedItemObj()
puObj.removeOperations()
if self.volOpCebRadarfrequency.isChecked():
value = str(self.volOpRadarfrequency.text())
format = 'float'
name_operation = 'setRadarFrequency'
name_parameter = 'frequency'
if not value == "":
try:
radarfreq = float(self.volOpRadarfrequency.text())
except:
self.console.clear()
self.console.append("Write the parameter Radar Frequency type float")
return 0
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
if self.volOpCebChannels.isChecked():
value = str(self.volOpChannel.text())
if value == "":
print "Please fill channel list"
return 0
format = 'intlist'
if self.volOpComChannels.currentIndex() == 0:
name_operation = "selectChannels"
name_parameter = 'channelList'
else:
name_operation = "selectChannelsByIndex"
name_parameter = 'channelIndexList'
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.volOpCebHeights.isChecked():
value = str(self.volOpHeights.text())
if value == "":
print "Please fill height range"
return 0
valueList = value.split(',')
format = 'float'
if self.volOpComHeights.currentIndex() == 0:
name_operation = 'selectHeights'
name_parameter1 = 'minHei'
name_parameter2 = 'maxHei'
else:
name_operation = 'selectHeightsByIndex'
name_parameter1 = 'minIndex'
name_parameter2 = 'maxIndex'
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter1, value=valueList[0], format=format)
opObj.addParameter(name=name_parameter2, value=valueList[1], format=format)
if self.volOpCebFilter.isChecked():
value = str(self.volOpFilter.text())
if value == "":
print "Please fill filter value"
return 0
format = 'int'
name_operation = 'filterByHeights'
name_parameter = 'window'
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.volOpCebProfile.isChecked():
value = str(self.volOpProfile.text())
if value == "":
print "Please fill profile value"
return 0
format = 'intlist'
optype = 'other'
name_operation = 'ProfileSelector'
if self.volOpComProfile.currentIndex() == 0:
name_parameter = 'profileList'
else:
name_parameter = 'profileRangeList'
opObj = puObj.addOperation(name='ProfileSelector', optype='other')
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.volOpCebDecodification.isChecked():
name_operation = 'Decoder'
optype = 'other'
format1 = 'floatlist'
format2 = 'int'
format3 = 'int'
format4 = 'int'
name_parameter1 = 'code'
name_parameter2 = 'nCode'
name_parameter3 = 'nBaud'
name_parameter4 = 'mode'
if self.volOpComCode.currentIndex() == 0:
value1 = '1,1,-1'
value2 = '1'
value3 = '3'
if self.volOpComCode.currentIndex() == 1:
value1 = '1,1,-1,1'
value2 = '1'
value3 = '4'
if self.volOpComCode.currentIndex() == 2:
value1 = '1,1,1,-1,1'
value2 = '1'
value3 = '5'
if self.volOpComCode.currentIndex() == 3:
value1 = '1,1,1,-1,-1,1,-1'
value2 = '1'
value3 = '7'
if self.volOpComCode.currentIndex() == 4:
value1 = '1,1,1,-1,-1,-1,1,-1,-1,1,-1'
value2 = '1'
value3 = '11'
if self.volOpComCode.currentIndex() == 5:
value1 = '1,1,1,1,1,-1,-1,1,1,-1,1,-1,1'
value2 = '1'
value3 = '13'
if self.volOpComCode.currentIndex() == 6:
value1 = '1,1,-1,-1,-1,1'
value2 = '2'
value3 = '3'
if self.volOpComCode.currentIndex() == 7:
value1 = '1,1,-1,1,-1,-1,1,-1'
value2 = '2'
value3 = '4'
if self.volOpComCode.currentIndex() == 8:
value1 = '1,1,1,-1,1,-1,-1,-1,1,-1'
value2 = '2'
value3 = '5'
if self.volOpComCode.currentIndex() == 9:
value1 = '1,1,1,-1,-1,1,-1,-1,-1,-1,1,1,-1,1'
value2 = '2'
value3 = '7'
if self.volOpComCode.currentIndex() == 10:
value1 = '1,1,1,-1,-1,-1,1,-1,-1,1,-1,-1 ,-1 ,-1 ,1 ,1,1,-1 ,1 ,1 ,-1 ,1'
value2 = '2'
value3 = '11'
if self.volOpComCode.currentIndex() == 11:
value1 = '1,1,1,1,1,-1,-1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,-1,-1,1,-1,1,-1'
value2 = '2'
value3 = '13'
if self.volOpComMode.currentIndex() == 0:
value4 = '0'
if self.volOpComMode.currentIndex() == 1:
value4 = '1'
if self.volOpComMode.currentIndex() == 2:
value4 = '2'
opObj = puObj.addOperation(name=name_operation, optype='other')
if self.volOpComCode.currentIndex() == 12:
pass
else:
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
opObj.addParameter(name=name_parameter2, value=value2, format=format2)
opObj.addParameter(name=name_parameter3, value=value3, format=format3)
opObj.addParameter(name=name_parameter4, value=value4, format=format4)
if self.volOpCebFlip.isChecked():
name_operation = 'deFlip'
optype = 'self'
value = str(self.volOpFlip.text())
name_parameter = 'channelList'
format = 'intlist'
opObj = puObj.addOperation(name=name_operation, optype=optype)
if value:
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.volOpCebCohInt.isChecked():
name_operation = 'CohInt'
optype = 'other'
value = str(self.volOpCohInt.text())
name_parameter = 'n'
format = 'float'
opObj = puObj.addOperation(name=name_operation, optype=optype)
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.volGraphCebshow.isChecked():
name_operation = 'Scope'
optype = 'other'
name_parameter = 'type'
value = 'Scope'
if self.idImagscope == 0:
self.idImagscope = 100
else:
self.idImagscope = self.idImagscope + 1
name_parameter1 = 'id'
value1 = int(self.idImagscope)
format1 = 'int'
format = 'str'
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format=format)
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
channelList = str(self.volGraphChannelList.text())
xvalue = str(self.volGraphfreqrange.text())
yvalue = str(self.volGraphHeightrange.text())
if self.volGraphChannelList.isModified():
try:
value = str(channelList)
except:
return 0
opObj.addParameter(name='channelList', value=value, format='intlist')
if not xvalue == "":
xvalueList = xvalue.split(',')
try:
value0 = int(xvalueList[0])
value1 = int(xvalueList[1])
except:
return 0
opObj.addParameter(name='xmin', value=value0, format='int')
opObj.addParameter(name='xmax', value=value1, format='int')
if not yvalue == "":
yvalueList = yvalue.split(",")
try:
value = yvalueList[0]
value = yvalueList[1]
except:
return 0
opObj.addParameter(name='ymin', value=yvalueList[0], format='int')
opObj.addParameter(name='ymax', value=yvalueList[1], format='int')
if self.volGraphCebSave.isChecked():
checkPath = True
opObj.addParameter(name='save', value='1', format='int')
opObj.addParameter(name='figpath', value=self.volGraphPath.text(), format='str')
value = str(self.volGraphPrefix.text())
if not value == "":
try:
value = str(self.volGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=self.volGraphPrefix.text(), format='str')
localfolder = None
if checkPath:
localfolder = str(self.specGraphPath.text())
if localfolder == '':
self.console.clear()
self.console.append("Graphic path should be defined")
return 0
# if something happend
parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Voltage')
if parms_ok:
name_operation = 'VoltageWriter'
optype = 'other'
name_parameter1 = 'path'
name_parameter2 = 'blocksPerFile'
name_parameter3 = 'profilesPerBlock'
value1 = output_path
value2 = blocksperfile
value3 = profilesperblock
format = "int"
opObj = puObj.addOperation(name=name_operation, optype=optype)
opObj.addParameter(name=name_parameter1, value=value1)
opObj.addParameter(name=name_parameter2, value=value2, format=format)
opObj.addParameter(name=name_parameter3, value=value3, format=format)
#---------NEW VOLTAGE PROPERTIES
self.refreshPUProperties(puObj)
self.console.clear()
self.console.append("If you want to save your project")
self.console.append("click on your project name in the Tree Project Explorer")
self.actionSaveToolbar.setEnabled(True)
self.actionStarToolbar.setEnabled(True)
return 1
"""
Voltage Graph
"""
@pyqtSignature("int")
def on_volGraphCebSave_stateChanged(self, p0):
"""
Check Box habilita ingresode del numero de Integraciones a realizar
"""
if p0 == 2:
self.volGraphPath.setEnabled(True)
self.volGraphPrefix.setEnabled(True)
self.volGraphToolPath.setEnabled(True)
if p0 == 0:
self.volGraphPath.setEnabled(False)
self.volGraphPrefix.setEnabled(False)
self.volGraphToolPath.setEnabled(False)
@pyqtSignature("")
def on_volGraphToolPath_clicked(self):
"""
Donde se guardan los DATOS
"""
self.dataPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.volGraphPath.setText(self.dataPath)
# if not os.path.exists(self.dataPath):
# self.volGraphOk.setEnabled(False)
# return
@pyqtSignature("int")
def on_volGraphCebshow_stateChanged(self, p0):
"""
Check Box habilita ingresode del numero de Integraciones a realizar
"""
if p0 == 0:
self.volGraphChannelList.setEnabled(False)
self.volGraphfreqrange.setEnabled(False)
self.volGraphHeightrange.setEnabled(False)
if p0 == 2:
self.volGraphChannelList.setEnabled(True)
self.volGraphfreqrange.setEnabled(True)
self.volGraphHeightrange.setEnabled(True)
"""
Spectra operation
"""
@pyqtSignature("int")
def on_specOpCebRadarfrequency_stateChanged(self, p0):
"""
Check Box habilita ingresode del numero de Integraciones a realizar
"""
if p0 == 2:
self.specOpRadarfrequency.setEnabled(True)
if p0 == 0:
self.specOpRadarfrequency.clear()
self.specOpRadarfrequency.setEnabled(False)
@pyqtSignature("int")
def on_specOpCebCrossSpectra_stateChanged(self, p0):
"""
Habilita la opcion de a�adir el par�metro CrossSpectra a la Unidad de Procesamiento .
"""
if p0 == 2:
# self.specOpnFFTpoints.setEnabled(True)
self.specOppairsList.setEnabled(True)
if p0 == 0:
# self.specOpnFFTpoints.setEnabled(False)
self.specOppairsList.setEnabled(False)
@pyqtSignature("int")
def on_specOpCebChannel_stateChanged(self, p0):
"""
Habilita la opcion de a�adir el par�metro numero de Canales a la Unidad de Procesamiento .
"""
if p0 == 2:
self.specOpChannel.setEnabled(True)
self.specOpComChannel.setEnabled(True)
if p0 == 0:
self.specOpChannel.setEnabled(False)
self.specOpComChannel.setEnabled(False)
@pyqtSignature("int")
def on_specOpCebHeights_stateChanged(self, p0):
"""
Habilita la opcion de a�adir el par�metro de alturas a la Unidad de Procesamiento .
"""
if p0 == 2:
self.specOpComHeights.setEnabled(True)
self.specOpHeights.setEnabled(True)
if p0 == 0:
self.specOpComHeights.setEnabled(False)
self.specOpHeights.setEnabled(False)
@pyqtSignature("int")
def on_specOpCebIncoherent_stateChanged(self, p0):
"""
Habilita la opcion de a�adir el par�metro integraciones incoherentes a la Unidad de Procesamiento .
"""
if p0 == 2:
self.specOpIncoherent.setEnabled(True)
if p0 == 0:
self.specOpIncoherent.setEnabled(False)
@pyqtSignature("int")
def on_specOpCebRemoveDC_stateChanged(self, p0):
"""
Habilita la opcion de a�adir el par�metro remover DC a la Unidad de Procesamiento .
"""
if p0 == 2:
self.specOpComRemoveDC.setEnabled(True)
if p0 == 0:
self.specOpComRemoveDC.setEnabled(False)
@pyqtSignature("int")
def on_specOpCebgetNoise_stateChanged(self, p0):
"""
Habilita la opcion de a�adir la estimacion de ruido a la Unidad de Procesamiento .
"""
if p0 == 2:
self.specOpgetNoise.setEnabled(True)
if p0 == 0:
self.specOpgetNoise.setEnabled(False)
def refreshID(self, puObj):
opObj = puObj.getOperationObj(name='Scope')
# opObj = puObj.getOpObjfromParamValue(value="Scope")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagscope == 0:
self.idImagscope = 100
else:
self.idImagscope = self.idImagscope + 1
value1 = int(self.idImagscope)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='SpectraPlot')
# opObj = puObj.getOpObjfromParamValue(value="SpectraPlot")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagspectra == 0:
self.idImagspectra = 200
else:
self.idImagspectra = self.idImagspectra + 1
value1 = int(self.idImagspectra)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='CrossSpectraPlot')
# opObj = puObj.getOpObjfromParamValue(value="CrossSpectraPlot")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagcross == 0:
self.idImagcross = 300
else:
self.idImagcross = self.idImagcross + 1
value1 = int(self.idImagcross)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='RTIPlot')
# opObj = puObj.getOpObjfromParamValue(value="RTIPlot")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagrti == 0:
self.idImagrti = 400
else:
self.idImagrti = self.idImagrti + 1
value1 = int(self.idImagrti)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='CoherenceMap')
# opObj = puObj.getOpObjfromParamValue(value="CoherenceMap")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagcoherence == 0:
self.idImagcoherence = 500
else:
self.idImagcoherence = self.idImagcoherence + 1
value1 = int(self.idImagcoherence)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='PowerProfilePlot')
# opObj = puObj.getOpObjfromParamValue(value="PowerProfilePlot")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagpower == 0:
self.idImagpower = 600
else:
self.idImagpower = self.idImagpower + 1
value1 = int(self.idImagpower)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='Noise')
# opObj = puObj.getOpObjfromParamValue(value="Noise")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagrtinoise == 0:
self.idImagrtinoise = 700
else:
self.idImagrtinoise = self.idImagrtinoise + 1
value1 = int(self.idImagrtinoise)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='SpectraHeisScope')
# opObj = puObj.getOpObjfromParamValue(value="SpectraHeisScope")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagspectraHeis == 0:
self.idImagspectraHeis = 800
else:
self.idImagspectraHeis = self.idImagspectraHeis + 1
value1 = int(self.idImagspectraHeis)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
# opObj = puObj.getOpObjfromParamValue(value="RTIfromSpectraHeis")
if opObj == None:
pass
else:
name_parameter1 = 'id'
format1 = 'int'
if self.idImagrtiHeis == 0:
self.idImagrtiHeis = 900
else:
self.idImagrtiHeis = self.idImagrtiHeis + 1
value1 = int(self.idImagrtiHeis)
opObj.changeParameter(name=name_parameter1, value=value1, format=format1)
@pyqtSignature("")
def on_specOpOk_clicked(self):
"""
AÑADE OPERACION SPECTRA
"""
addFTP = False
checkPath = False
self.actionSaveToolbar.setEnabled(False)
self.actionStarToolbar.setEnabled(False)
projectObj = self.getSelectedProjectObj()
puObj = self.getSelectedItemObj()
puObj.removeOperations()
if self.specOpCebRadarfrequency.isChecked():
value = self.specOpRadarfrequency.text()
format = 'float'
name_operation = 'setRadarFrequency'
name_parameter = 'frequency'
if not value == "":
try:
radarfreq = float(self.specOpRadarfrequency.text())
except:
self.console.clear()
self.console.append("Write the parameter Radar Frequency type float")
return 0
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter, value=radarfreq, format=format)
inputId = puObj.getInputId()
inputPuObj = projectObj.getProcUnitObj(inputId)
if inputPuObj.datatype == 'Voltage' or inputPuObj.datatype == 'USRP':
try:
value = int(self.specOpnFFTpoints.text())
puObj.addParameter(name='nFFTPoints', value=value, format='int')
except:
self.console.clear()
self.console.append("Please write the number of FFT")
return 0
try:
value1 = int(self.specOpProfiles.text())
puObj.addParameter(name='nProfiles', value=value1, format='int')
except:
self.console.append("Please Write the number of Profiles")
try:
value2 = int(self.specOpippFactor.text())
puObj.addParameter(name='ippFactor' , value=value2 , format='int')
except:
self.console.append("Please Write the Number of IppFactor")
if self.specOpCebCrossSpectra.isChecked():
name_parameter = 'pairsList'
format = 'pairslist'
value2 = self.specOppairsList.text()
puObj.addParameter(name=name_parameter, value=value2, format=format)
if self.specOpCebHeights.isChecked():
value = str(self.specOpHeights.text())
if value == "":
print "Please fill height range"
return 0
valueList = value.split(',')
format = 'float'
value0 = valueList[0]
value1 = valueList[1]
if self.specOpComHeights.currentIndex() == 0:
name_operation = 'selectHeights'
name_parameter1 = 'minHei'
name_parameter2 = 'maxHei'
else:
name_operation = 'selectHeightsByIndex'
name_parameter1 = 'minIndex'
name_parameter2 = 'maxIndex'
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter1, value=value0, format=format)
opObj.addParameter(name=name_parameter2, value=value1, format=format)
if self.specOpCebChannel.isChecked():
value = str(self.specOpChannel.text())
if value == "":
print "Please fill channel list"
return 0
format = 'intlist'
if self.specOpComChannel.currentIndex() == 0:
name_operation = "selectChannels"
name_parameter = 'channelList'
else:
name_operation = "selectChannelsByIndex"
name_parameter = 'channelIndexList'
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.specOpCebIncoherent.isChecked():
value = str(self.specOpIncoherent.text())
if value == "":
print "Please fill Incoherent integration value"
return 0
name_operation = 'IncohInt'
optype = 'other'
if self.specOpCobIncInt.currentIndex() == 0:
name_parameter = 'timeInterval'
format = 'float'
else:
name_parameter = 'n'
format = 'float'
opObj = puObj.addOperation(name=name_operation, optype=optype)
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.specOpCebRemoveDC.isChecked():
name_operation = 'removeDC'
name_parameter = 'mode'
format = 'int'
if self.specOpComRemoveDC.currentIndex() == 0:
value = 1
else:
value = 2
opObj = puObj.addOperation(name=name_operation)
opObj.addParameter(name=name_parameter, value=value, format=format)
if self.specOpCebRemoveInt.isChecked():
name_operation = 'removeInterference'
opObj = puObj.addOperation(name=name_operation)
if self.specOpCebgetNoise.isChecked():
value = self.specOpgetNoise.text()
valueList = value.split(',')
format = 'float'
name_operation = "getNoise"
opObj = puObj.addOperation(name=name_operation)
if not value == '':
valueList = value.split(',')
length = len(valueList)
if length == 1:
try:
value1 = float(valueList[0])
except:
self.console.clear()
self.console.append("Please Write correct parameter Get Noise")
return 0
name1 = 'minHei'
opObj.addParameter(name=name1, value=value1, format=format)
elif length == 2:
try:
value1 = float(valueList[0])
value2 = float(valueList[1])
except:
self.console.clear()
self.console.append("Please Write corrects parameter Get Noise")
return 0
name1 = 'minHei'
name2 = 'maxHei'
opObj.addParameter(name=name1, value=value1, format=format)
opObj.addParameter(name=name2, value=value2, format=format)
elif length == 3:
try:
value1 = float(valueList[0])
value2 = float(valueList[1])
value3 = float(valueList[2])
except:
self.console.clear()
self.console.append("Please Write corrects parameter Get Noise")
return 0
name1 = 'minHei'
name2 = 'maxHei'
name3 = 'minVel'
opObj.addParameter(name=name1, value=value1, format=format)
opObj.addParameter(name=name2, value=value2, format=format)
opObj.addParameter(name=name3, value=value3, format=format)
elif length == 4:
try:
value1 = float(valueList[0])
value2 = float(valueList[1])
value3 = float(valueList[2])
value4 = float(valueList[3])
except:
self.console.clear()
self.console.append("Please Write corrects parameter Get Noise")
return 0
name1 = 'minHei'
name2 = 'maxHei'
name3 = 'minVel'
name4 = 'maxVel'
opObj.addParameter(name=name1, value=value1, format=format)
opObj.addParameter(name=name2, value=value2, format=format)
opObj.addParameter(name=name3, value=value3, format=format)
opObj.addParameter(name=name4, value=value4, format=format)
elif length > 4:
self.console.clear()
self.console.append("Get Noise Operation only accepts 4 parameters")
return 0
#-----Spectra Plot-----
if self.specGraphCebSpectraplot.isChecked():
name_operation = 'SpectraPlot'
optype = 'other'
name_parameter = 'type'
value = 'SpectraPlot'
format = 'str'
if self.idImagspectra == 0:
self.idImagspectra = 200
else:
self.idImagspectra = self.idImagspectra + 1
name_parameter1 = 'id'
value1 = int(self.idImagspectra)
format1 = 'int'
format = 'str'
channelList = self.specGgraphChannelList.text()
xvalue = self.specGgraphFreq.text()
yvalue = self.specGgraphHeight.text()
zvalue = self.specGgraphDbsrange.text()
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format=format)
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
if not channelList == '':
name_parameter = 'channelList'
format = 'intlist'
opObj.addParameter(name=name_parameter, value=channelList, format=format)
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value1 = float(xvalueList[0])
value2 = float(xvalueList[1])
except:
self.console.clear()
self.console.append("Please Write corrects parameter freq")
return 0
name1 = 'xmin'
name2 = 'xmax'
format = 'float'
opObj.addParameter(name=name1, value=value1, format=format)
opObj.addParameter(name=name2, value=value2, format=format)
#------specGgraphHeight---
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value1 = float(yvalueList[0])
value2 = float(yvalueList[1])
except:
self.console.clear()
self.console.append("Please Write corrects parameter Height")
return 0
name1 = 'ymin'
name2 = 'ymax'
format = 'float'
opObj.addParameter(name=name1, value=value1, format=format)
opObj.addParameter(name=name2, value=value2, format=format)
if not zvalue == '':
zvalueList = zvalue.split(",")
try:
value = float(zvalueList[0])
value = float(zvalueList[1])
except:
self.console.clear()
self.console.append("Please Write corrects parameter Dbsrange")
return 0
format = 'float'
opObj.addParameter(name='zmin', value=zvalueList[0], format=format)
opObj.addParameter(name='zmax', value=zvalueList[1], format=format)
if self.specGraphSaveSpectra.isChecked():
checkPath = True
name_parameter1 = 'save'
name_parameter2 = 'figpath'
name_parameter3 = 'figfile'
value1 = '1'
value2 = self.specGraphPath.text()
value3 = self.specGraphPrefix.text()
format1 = 'bool'
format2 = 'str'
opObj.addParameter(name=name_parameter1, value=value1 , format=format1)
opObj.addParameter(name=name_parameter2, value=value2, format=format2)
opObj.addParameter(name=name_parameter3, value=value3, format=format2)
# opObj.addParameter(name='wr_period', value='5',format='int')
if self.specGraphftpSpectra.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
if self.specGraphCebCrossSpectraplot.isChecked():
name_operation = 'CrossSpectraPlot'
optype = 'other'
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name='type', value="CrossSpectraPlot", format='str')
opObj.addParameter(name='power_cmap', value='jet', format='str')
opObj.addParameter(name='coherence_cmap', value='jet', format='str')
opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
if self.idImagcross == 0:
self.idImagcross = 300
else:
self.idImagcross = self.idImagcross + 1
value1 = int(self.idImagcross)
channelList = self.specGgraphChannelList.text()
xvalue = self.specGgraphFreq.text()
yvalue = self.specGgraphHeight.text()
zvalue = self.specGgraphDbsrange.text()
opObj.addParameter(name='id', value=value1, format='int')
if self.specGgraphChannelList.isModified():
opObj.addParameter(name='channelList', value=channelList, format='intlist')
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value = float(xvalueList[0])
value = float(xvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value = float(yvalueList[0])
value = float(yvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
if not zvalue == '':
zvalueList = zvalue.split(",")
try:
value = float(zvalueList[0])
value = float(zvalueList[1])
except:
return 0
opObj.addParameter(name='zmin', value=zvalueList[0], format='float')
opObj.addParameter(name='zmax', value=zvalueList[1], format='float')
if self.specGraphSaveCross.isChecked():
checkPath = True
opObj.addParameter(name='save', value='1', format='bool')
opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
value = self.specGraphPrefix.text()
if not value == "":
try:
value = str(self.specGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=value, format='str')
# opObj.addParameter(name='figfile', value=self.specGraphPrefix.text(), format='str')
if self.specGraphftpCross.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
if self.specGraphCebRTIplot.isChecked():
name_operation = 'RTIPlot'
optype = 'other'
name_parameter = 'type'
value = 'RTIPlot'
format = 'str'
if self.idImagrti == 0:
self.idImagrti = 400
else:
self.idImagrti = self.idImagrti + 1
name_parameter1 = 'id'
value1 = int(self.idImagrti)
format1 = 'int'
format = 'str'
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format=format)
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
channelList = self.specGgraphChannelList.text()
xvalue = self.specGgraphTminTmax.text()
yvalue = self.specGgraphHeight.text()
zvalue = self.specGgraphDbsrange.text()
timerange = self.specGgraphTimeRange.text()
if not channelList == '':
opObj.addParameter(name='channelList', value=channelList, format='intlist')
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value = float(xvalueList[0])
value = float(xvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
if not timerange == '':
format = 'int'
try:
timerange = int(timerange)
except:
return 0
opObj.addParameter(name='timerange', value=timerange, format=format)
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value = float(yvalueList[0])
value = float(yvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
if not zvalue == '':
zvalueList = zvalue.split(",")
try:
value = float(zvalueList[0])
value = float(zvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='zmin', value=zvalueList[0], format=format)
opObj.addParameter(name='zmax', value=zvalueList[1], format=format)
if self.specGraphSaveRTIplot.isChecked():
checkPath = True
opObj.addParameter(name='save', value='1', format='bool')
opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
value = self.specGraphPrefix.text()
if not value == "":
try:
value = str(self.specGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=value, format='str')
# test_ftp
if self.specGraphftpRTIplot.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
if self.specGraphCebCoherencmap.isChecked():
name_operation = 'CoherenceMap'
optype = 'other'
name_parameter = 'type'
value = 'CoherenceMap'
format = 'str'
if self.idImagcoherence == 0:
self.idImagcoherence = 500
else:
self.idImagcoherence = self.idImagcoherence + 1
name_parameter1 = 'id'
value1 = int(self.idImagcoherence)
format1 = 'int'
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format=format)
# opObj.addParameter(name='coherence_cmap', value='jet', format='str')
# opObj.addParameter(name='phase_cmap', value='RdBu_r', format='str')
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
channelList = self.specGgraphChannelList.text()
if not channelList == '':
opObj.addParameter(name='channelList', value=channelList, format='intlist')
timerange = self.specGgraphTimeRange.text()
if not timerange == '':
try:
timerange = int(timerange)
except:
return 0
format = 'int'
opObj.addParameter(name='timerange', value=timerange, format=format)
xvalue = self.specGgraphTminTmax.text()
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value = float(xvalueList[0])
value = float(xvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
yvalue = self.specGgraphHeight.text()
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value = float(yvalueList[0])
value = float(yvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
zvalue = self.specGgraphmagnitud.text()
if not zvalue == '':
zvalueList = zvalue.split(",")
try:
value = float(zvalueList[0])
value = float(zvalueList[1])
except:
return 0
opObj.addParameter(name='zmin', value=zvalueList[0], format='float')
opObj.addParameter(name='zmax', value=zvalueList[1], format='float')
if self.specGraphSaveCoherencemap.isChecked():
checkPath = True
opObj.addParameter(name='save', value='1', format='bool')
opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
value = self.specGraphPrefix.text()
if not value == "":
try:
value = str(self.specGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=value, format='str')
# test_ftp
if self.specGraphftpCoherencemap.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
if self.specGraphPowerprofile.isChecked():
name_operation = 'PowerProfilePlot'
optype = 'other'
name_parameter = 'type'
value = 'PowerProfilePlot'
format = 'str'
if self.idImagpower == 0:
self.idImagpower = 600
else:
self.idImagpower = self.idImagpower + 1
value1 = int(self.idImagpower)
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format='str')
opObj.addParameter(name='id', value=value1, format='int')
channelList = self.specGgraphChannelList.text()
if not channelList == '':
opObj.addParameter(name='channelList', value=channelList, format='intlist')
xvalue = self.specGgraphDbsrange.text()
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value = float(xvalueList[0])
value = float(xvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
yvalue = self.specGgraphHeight.text()
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value = float(yvalueList[0])
value = float(yvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
if self.specGraphSavePowerprofile.isChecked():
checkPath = True
opObj.addParameter(name='save', value='1', format='bool')
opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
value = self.specGraphPrefix.text()
if not value == "":
try:
value = str(self.specGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=value, format='str')
if self.specGraphftpPowerprofile.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
# rti noise
if self.specGraphCebRTInoise.isChecked():
name_operation = 'Noise'
optype = 'other'
name_parameter = 'type'
value = 'Noise'
format = 'str'
if self.idImagrtinoise == 0:
self.idImagrtinoise = 700
else:
self.idImagrtinoise = self.idImagrtinoise + 1
name_parameter1 = 'id'
value1 = int(self.idImagrtinoise)
format1 = 'int'
format = 'str'
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format=format)
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
channelList = self.specGgraphChannelList.text()
xvalue = self.specGgraphTminTmax.text()
yvalue = self.specGgraphDbsrange.text()
timerange = self.specGgraphTimeRange.text()
if not channelList == '':
opObj.addParameter(name='channelList', value=channelList, format='intlist')
if not timerange == '':
format = 'int'
try:
timerange = int(timerange)
except:
return 0
opObj.addParameter(name='timerange', value=timerange, format=format)
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value = float(xvalueList[0])
value = float(xvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value = float(yvalueList[0])
value = float(yvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
if self.specGraphSaveRTInoise.isChecked():
checkPath = True
opObj.addParameter(name='save', value='1', format='bool')
opObj.addParameter(name='figpath', value=self.specGraphPath.text(), format='str')
value = self.specGraphPrefix.text()
if not value == "":
try:
value = str(self.specGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=value, format='str')
# test_ftp
if self.specGraphftpRTInoise.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
localfolder = None
if checkPath:
localfolder = str(self.specGraphPath.text())
if localfolder == '':
self.console.clear()
self.console.append("Graphic path should be defined")
return 0
if addFTP:
if not localfolder:
self.console.clear()
self.console.append("You have to save the plots before sending them to FTP Server")
return 0
if not self.temporalFTP.create:
self.temporalFTP.setwithoutconfiguration()
server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
self.createFTPProcUnitView(server, username, password, remotefolder,
ftp_wei, exp_code, sub_exp_code, plot_pos,
localfolder=localfolder)
else:
self.removeFTPProcUnitView()
# if something happend
parms_ok, output_path, blocksperfile, profilesperblock = self.checkInputsPUSave(datatype='Spectra')
if parms_ok:
name_operation = 'SpectraWriter'
optype = 'other'
name_parameter1 = 'path'
name_parameter2 = 'blocksPerFile'
name_parameter3 = 'profilesPerBlock'
value1 = output_path
value2 = blocksperfile
value3 = profilesperblock
format = "int"
opObj = puObj.addOperation(name=name_operation, optype=optype)
opObj.addParameter(name=name_parameter1, value=value1)
opObj.addParameter(name=name_parameter2, value=value2, format=format)
opObj.addParameter(name=name_parameter3, value=value3, format=format)
self.refreshPUProperties(puObj)
self.console.clear()
self.console.append("If you want to save your project")
self.console.append("click on your project name in the Tree Project Explorer")
self.actionSaveToolbar.setEnabled(True)
self.actionStarToolbar.setEnabled(True)
return 1
"""
Spectra Graph
"""
@pyqtSignature("int")
def on_specGraphCebSpectraplot_stateChanged(self, p0):
if p0 == 2:
self.specGgraphChannelList.setEnabled(True)
self.specGgraphFreq.setEnabled(True)
self.specGgraphHeight.setEnabled(True)
self.specGgraphDbsrange.setEnabled(True)
if p0 == 0:
self.specGgraphFreq.setEnabled(False)
self.specGgraphHeight.setEnabled(False)
self.specGgraphDbsrange.setEnabled(False)
@pyqtSignature("int")
def on_specGraphCebCrossSpectraplot_stateChanged(self, p0):
if p0 == 2:
self.specGgraphFreq.setEnabled(True)
self.specGgraphHeight.setEnabled(True)
self.specGgraphDbsrange.setEnabled(True)
if p0 == 0:
self.specGgraphFreq.setEnabled(False)
self.specGgraphHeight.setEnabled(False)
self.specGgraphDbsrange.setEnabled(False)
@pyqtSignature("int")
def on_specGraphCebRTIplot_stateChanged(self, p0):
if p0 == 2:
self.specGgraphChannelList.setEnabled(True)
self.specGgraphTminTmax.setEnabled(True)
self.specGgraphHeight.setEnabled(True)
self.specGgraphDbsrange.setEnabled(True)
self.specGgraphTimeRange.setEnabled(True)
if p0 == 0:
self.specGgraphTminTmax.setEnabled(False)
self.specGgraphHeight.setEnabled(False)
self.specGgraphDbsrange.setEnabled(False)
self.specGgraphTimeRange.setEnabled(False)
@pyqtSignature("int")
def on_specGraphCebRTInoise_stateChanged(self, p0):
if p0 == 2:
self.specGgraphChannelList.setEnabled(True)
self.specGgraphTminTmax.setEnabled(True)
self.specGgraphDbsrange.setEnabled(True)
self.specGgraphTimeRange.setEnabled(True)
if p0 == 0:
self.specGgraphTminTmax.setEnabled(False)
self.specGgraphDbsrange.setEnabled(False)
self.specGgraphTimeRange.setEnabled(False)
@pyqtSignature("int")
def on_specGraphCebCoherencmap_stateChanged(self, p0):
if p0 == 2:
self.specGgraphTminTmax.setEnabled(True)
self.specGgraphHeight.setEnabled(True)
self.specGgraphmagnitud.setEnabled(True)
self.specGgraphTimeRange.setEnabled(True)
if p0 == 0:
self.specGgraphTminTmax.setEnabled(False)
self.specGgraphHeight.setEnabled(False)
self.specGgraphmagnitud.setEnabled(False)
self.specGgraphTimeRange.setEnabled(False)
@pyqtSignature("int")
def on_specGraphPowerprofile_stateChanged(self, p0):
if p0 == 2:
self.specGgraphHeight.setEnabled(True)
self.specGgraphDbsrange.setEnabled(True)
if p0 == 0:
self.specGgraphHeight.setEnabled(False)
self.specGgraphDbsrange.setEnabled(False)
@pyqtSignature("int")
def on_specGraphPhase_stateChanged(self, p0):
if p0 == 2:
self.specGgraphTminTmax.setEnabled(True)
self.specGgraphPhaserange.setEnabled(True)
if p0 == 0:
self.specGgraphTminTmax.setEnabled(False)
self.specGgraphPhaserange.setEnabled(False)
@pyqtSignature("int")
def on_specGraphSaveSpectra_stateChanged(self, p0):
"""
"""
if p0 == 2:
self.specGraphPath.setEnabled(True)
self.specGraphPrefix.setEnabled(True)
self.specGraphToolPath.setEnabled(True)
if p0 == 0:
self.specGraphPath.setEnabled(False)
self.specGraphPrefix.setEnabled(False)
self.specGraphToolPath.setEnabled(False)
@pyqtSignature("int")
def on_specGraphSaveCross_stateChanged(self, p0):
if p0 == 2:
self.specGraphPath.setEnabled(True)
self.specGraphPrefix.setEnabled(True)
self.specGraphToolPath.setEnabled(True)
@pyqtSignature("int")
def on_specGraphSaveRTIplot_stateChanged(self, p0):
if p0 == 2:
self.specGraphPath.setEnabled(True)
self.specGraphPrefix.setEnabled(True)
self.specGraphToolPath.setEnabled(True)
@pyqtSignature("int")
def on_specGraphSaveRTInoise_stateChanged(self, p0):
if p0 == 2:
self.specGraphPath.setEnabled(True)
self.specGraphPrefix.setEnabled(True)
self.specGraphToolPath.setEnabled(True)
@pyqtSignature("int")
def on_specGraphSaveCoherencemap_stateChanged(self, p0):
if p0 == 2:
self.specGraphPath.setEnabled(True)
self.specGraphPrefix.setEnabled(True)
self.specGraphToolPath.setEnabled(True)
@pyqtSignature("int")
def on_specGraphSavePowerprofile_stateChanged(self, p0):
if p0 == 2:
self.specGraphPath.setEnabled(True)
self.specGraphPrefix.setEnabled(True)
self.specGraphToolPath.setEnabled(True)
#-------ftp-----#
@pyqtSignature("int")
def on_specGraphftpSpectra_stateChanged(self, p0):
"""
"""
if p0 == 2:
self.specGgraphftpratio.setEnabled(True)
if p0 == 0:
self.specGgraphftpratio.setEnabled(False)
@pyqtSignature("int")
def on_specGraphftpCross_stateChanged(self, p0):
if p0 == 2:
self.specGgraphftpratio.setEnabled(True)
@pyqtSignature("int")
def on_specGraphftpRTIplot_stateChanged(self, p0):
if p0 == 2:
self.specGgraphftpratio.setEnabled(True)
@pyqtSignature("int")
def on_specGraphftpRTInoise_stateChanged(self, p0):
if p0 == 2:
self.specGgraphftpratio.setEnabled(True)
@pyqtSignature("int")
def on_specGraphftpCoherencemap_stateChanged(self, p0):
if p0 == 2:
self.specGgraphftpratio.setEnabled(True)
@pyqtSignature("int")
def on_specGraphftpPowerprofile_stateChanged(self, p0):
if p0 == 2:
self.specGgraphftpratio.setEnabled(True)
#-------------------#
@pyqtSignature("")
def on_specGraphToolPath_clicked(self):
"""
"""
self.savePath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.specGraphPath.setText(self.savePath)
if not os.path.exists(self.savePath):
self.console.clear()
self.console.append("Write a correct a path")
return
@pyqtSignature("")
def on_specHeisGraphToolPath_clicked(self):
"""
"""
self.savePath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.specHeisGraphPath.setText(self.savePath)
if not os.path.exists(self.savePath):
self.console.clear()
self.console.append("Write a correct a path")
return
@pyqtSignature("")
def on_specGraphClear_clicked(self):
self.clearspecGraph()
@pyqtSignature("int")
def on_specHeisOpCebIncoherent_stateChanged(self, p0):
"""
Habilita la opcion de a�adir el par�metro integraciones incoherentes a la Unidad de Procesamiento .
"""
if p0 == 2:
self.specHeisOpIncoherent.setEnabled(True)
self.specHeisOpCobIncInt.setEnabled(True)
if p0 == 0:
self.specHeisOpIncoherent.setEnabled(False)
self.specHeisOpCobIncInt.setEnabled(False)
@pyqtSignature("")
def on_specHeisOpOk_clicked(self):
"""
AÑADE OPERACION SPECTRAHEIS
"""
addFTP = False
checkPath = False
self.actionSaveToolbar.setEnabled(False)
self.actionStarToolbar.setEnabled(False)
puObj = self.getSelectedItemObj()
puObj.removeOperations()
if self.specHeisOpCebIncoherent.isChecked():
value = self.specHeisOpIncoherent.text()
name_operation = 'IncohInt4SpectraHeis'
optype = 'other'
if self.specOpCobIncInt.currentIndex() == 0:
name_parameter = 'timeInterval'
format = 'float'
opObj = puObj.addOperation(name=name_operation, optype=optype)
opObj.addParameter(name=name_parameter, value=value, format=format)
# ---- Spectra Plot-----
if self.specHeisGraphCebSpectraplot.isChecked():
name_operation = 'SpectraHeisScope'
optype = 'other'
name_parameter = 'type'
value = 'SpectraHeisScope'
format = 'str'
if self.idImagspectraHeis == 0:
self.idImagspectraHeis = 800
else:
self.idImagspectraHeis = self.idImagspectraHeis + 1
name_parameter1 = 'id'
value1 = int(self.idImagspectraHeis)
format1 = 'int'
format = 'str'
channelList = self.specHeisGgraphChannelList.text()
xvalue = self.specHeisGgraphXminXmax.text()
yvalue = self.specHeisGgraphYminYmax.text()
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format=format)
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
if not channelList == '':
name_parameter = 'channelList'
format = 'intlist'
opObj.addParameter(name=name_parameter, value=channelList, format=format)
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value1 = float(xvalueList[0])
value2 = float(xvalueList[1])
except:
self.console.clear()
self.console.append("Please Write corrects parameter xmin-xmax")
return 0
name1 = 'xmin'
name2 = 'xmax'
format = 'float'
opObj.addParameter(name=name1, value=value1, format=format)
opObj.addParameter(name=name2, value=value2, format=format)
#------specHeisGgraphYmin-Ymax---
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value1 = float(yvalueList[0])
value2 = float(yvalueList[1])
except:
self.console.clear()
self.console.append("Please Write corrects parameter Ymix-Ymax")
return 0
name1 = 'ymin'
name2 = 'ymax'
format = 'float'
opObj.addParameter(name=name1, value=value1, format=format)
opObj.addParameter(name=name2, value=value2, format=format)
if self.specHeisGraphSaveSpectra.isChecked():
checkPath = True
name_parameter1 = 'save'
name_parameter2 = 'figpath'
name_parameter3 = 'figfile'
value1 = '1'
value2 = self.specHeisGraphPath.text()
value3 = self.specHeisGraphPrefix.text()
format1 = 'bool'
format2 = 'str'
opObj.addParameter(name=name_parameter1, value=value1 , format=format1)
opObj.addParameter(name=name_parameter2, value=value2, format=format2)
if not value3 == "":
try:
value3 = str(self.specHeisGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=self.specHeisGraphPrefix.text(), format='str')
# opObj.addParameter(name=name_parameter3, value=value3, format=format2)
# opObj.addParameter(name='wr_period', value='5',format='int')
if self.specHeisGraphftpSpectra.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
if self.specHeisGraphCebRTIplot.isChecked():
name_operation = 'RTIfromSpectraHeis'
optype = 'other'
name_parameter = 'type'
value = 'RTIfromSpectraHeis'
format = 'str'
if self.idImagrtiHeis == 0:
self.idImagrtiHeis = 900
else:
self.idImagrtiHeis = self.idImagrtiHeis + 1
name_parameter1 = 'id'
value1 = int(self.idImagrtiHeis)
format1 = 'int'
format = 'str'
opObj = puObj.addOperation(name=name_operation, optype=optype)
# opObj.addParameter(name=name_parameter, value=value, format=format)
opObj.addParameter(name=name_parameter1, value=value1, format=format1)
channelList = self.specHeisGgraphChannelList.text()
xvalue = self.specHeisGgraphTminTmax.text()
yvalue = self.specHeisGgraphYminYmax.text()
timerange = self.specHeisGgraphTimeRange.text()
if not channelList == '':
opObj.addParameter(name='channelList', value=channelList, format='intlist')
if not xvalue == '':
xvalueList = xvalue.split(',')
try:
value = float(xvalueList[0])
value = float(xvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='xmin', value=xvalueList[0], format=format)
opObj.addParameter(name='xmax', value=xvalueList[1], format=format)
if not timerange == '':
format = 'int'
try:
timerange = int(timerange)
except:
return 0
opObj.addParameter(name='timerange', value=timerange, format=format)
if not yvalue == '':
yvalueList = yvalue.split(",")
try:
value = float(yvalueList[0])
value = float(yvalueList[1])
except:
return 0
format = 'float'
opObj.addParameter(name='ymin', value=yvalueList[0], format=format)
opObj.addParameter(name='ymax', value=yvalueList[1], format=format)
if self.specHeisGraphSaveRTIplot.isChecked():
checkPath = True
opObj.addParameter(name='save', value='1', format='bool')
opObj.addParameter(name='figpath', value=self.specHeisGraphPath.text(), format='str')
value = self.specHeisGraphPrefix.text()
if not value == "":
try:
value = str(self.specHeisGraphPrefix.text())
except:
self.console.clear()
self.console.append("Please Write prefix")
return 0
opObj.addParameter(name='figfile', value=value, format='str')
# test_ftp
if self.specHeisGraphftpRTIplot.isChecked():
opObj.addParameter(name='ftp', value='1', format='int')
self.addFTPConf2Operation(puObj, opObj)
addFTP = True
localfolder = None
if checkPath:
localfolder = str(self.specGraphPath.text())
if localfolder == '':
self.console.clear()
self.console.append("Graphic path should be defined")
return 0
if addFTP:
if not localfolder:
self.console.clear()
self.console.append("You have to save the plots before sending them to FTP Server")
return 0
if not self.temporalFTP.create:
self.temporalFTP.setwithoutconfiguration()
server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
self.createFTPProcUnitView(server, username, password, remotefolder,
ftp_wei, exp_code, sub_exp_code, plot_pos,
localfolder=localfolder)
else:
self.removeFTPProcUnitView()
# if something happened
parms_ok, output_path, blocksperfile, metada = self.checkInputsPUSave(datatype='SpectraHeis')
if parms_ok:
name_operation = 'FitsWriter'
optype = 'other'
name_parameter1 = 'path'
name_parameter2 = 'dataBlocksPerFile'
name_parameter3 = 'metadatafile'
value1 = output_path
value2 = blocksperfile
value3 = metada
format2 = "int"
format3 = "str"
opObj = puObj.addOperation(name=name_operation, optype=optype)
opObj.addParameter(name=name_parameter1, value=value1)
opObj.addParameter(name=name_parameter2, value=value2, format=format2)
opObj.addParameter(name=name_parameter3, value=value3, format=format3)
self.refreshPUProperties(puObj)
self.console.clear()
self.console.append("Click on save icon ff you want to save your project")
self.actionSaveToolbar.setEnabled(True)
self.actionStarToolbar.setEnabled(True)
return 1
@pyqtSignature("int")
def on_specHeisGraphCebSpectraplot_stateChanged(self, p0):
if p0 == 2:
self.specHeisGgraphChannelList.setEnabled(True)
self.specHeisGgraphXminXmax.setEnabled(True)
self.specHeisGgraphYminYmax.setEnabled(True)
if p0 == 0:
self.specHeisGgraphXminXmax.setEnabled(False)
self.specHeisGgraphYminYmax.setEnabled(False)
@pyqtSignature("int")
def on_specHeisGraphCebRTIplot_stateChanged(self, p0):
if p0 == 2:
self.specHeisGgraphChannelList.setEnabled(True)
self.specHeisGgraphTminTmax.setEnabled(True)
self.specHeisGgraphYminYmax.setEnabled(True)
self.specHeisGgraphTimeRange.setEnabled(True)
if p0 == 0:
self.specHeisGgraphTminTmax.setEnabled(False)
self.specHeisGgraphYminYmax.setEnabled(False)
self.specHeisGgraphTimeRange.setEnabled(False)
@pyqtSignature("int")
def on_specHeisGraphSaveSpectra_stateChanged(self, p0):
"""
"""
if p0 == 2:
self.specHeisGraphPath.setEnabled(True)
self.specHeisGraphPrefix.setEnabled(True)
self.specHeisGraphToolPath.setEnabled(True)
if p0 == 0:
self.specHeisGraphPath.setEnabled(False)
self.specHeisGraphPrefix.setEnabled(False)
self.specHeisGraphToolPath.setEnabled(False)
@pyqtSignature("int")
def on_specHeisGraphSaveRTIplot_stateChanged(self, p0):
if p0 == 2:
self.specHeisGraphPath.setEnabled(True)
self.specHeisGraphPrefix.setEnabled(True)
self.specHeisGraphToolPath.setEnabled(True)
@pyqtSignature("int")
def on_specHeisGraphftpSpectra_stateChanged(self, p0):
"""
"""
if p0 == 2:
self.specHeisGgraphftpratio.setEnabled(True)
if p0 == 0:
self.specHeisGgraphftpratio.setEnabled(False)
@pyqtSignature("int")
def on_specHeisGraphftpRTIplot_stateChanged(self, p0):
if p0 == 2:
self.specHeisGgraphftpratio.setEnabled(True)
@pyqtSignature("")
def on_specHeisGraphClear_clicked(self):
pass
def __getParmsFromProjectWindow(self):
"""
Check Inputs Project:
- project_name
- datatype
- ext
- data_path
- readmode
- delay
- set
- walk
"""
parms_ok = True
project_name = str(self.proName.text())
if project_name == '' or project_name == None:
outputstr = "Enter a project Name"
self.console.append(outputstr)
parms_ok = False
project_name = None
datatype = str(self.proComDataType.currentText())
ext = str(self.proDataType.text())
dpath = str(self.proDataPath.text())
if dpath == '':
outputstr = 'Datapath is empty'
self.console.append(outputstr)
parms_ok = False
dpath = None
if dpath != None:
if not os.path.isdir(dpath):
outputstr = 'Datapath (%s) does not exist' % dpath
self.console.append(outputstr)
parms_ok = False
dpath = None
online = str(self.proComReadMode.currentIndex())
delay = None
if online==1:
try:
delay = int(str(self.proDelay.text()))
except:
outputstr = 'Delay value (%s) must be a integer number' %str(self.proName.text())
self.console.append(outputstr)
parms_ok = False
set = None
ippKm = None
value = str(self.proSet.text())
if datatype.lower() == "usrp":
try:
ippKm = float(value)
except:
outputstr = 'IPP value (%s) must be a float number' % str(self.proName.text())
self.console.append(outputstr)
parms_ok = False
else:
try:
set = int(value)
except:
pass
walk = self.proComWalk.currentIndex()
starDate = str(self.proComStartDate.currentText())
endDate = str(self.proComEndDate.currentText())
# startDateList = starDate.split("/")
# endDateList = endDate.split("/")
#
# starDate = datetime.date(int(startDateList[0]), int(startDateList[1]), int(startDateList[2]))
# endDate = datetime.date(int(endDateList[0]), int(endDateList[1]), int(endDateList[2]))
startTime = self.proStartTime.time()
endTime = self.proEndTime.time()
startTime = startTime.strftime("%H:%M:%S")
endTime = endTime.strftime("%H:%M:%S")
projectParms = ProjectParms()
projectParms.project_name = project_name
projectParms.datatype = datatype
projectParms.ext = ext
projectParms.dpath = dpath
projectParms.online = online
projectParms.startDate = startDate
projectParms.endDate = endDate
projectParms.startTime = startTime
projectParms.endTime = endTime
projectParms.delay=delay
projectParms.walk=walk
projectParms.set=set
projectParms.ippKm=ippKm
projectParms.parmsOk=parms_ok
return projectParms
def __getParmsFromProjectObj(self, projectObjView):
parms_ok = True
project_name, description = projectObjView.name, projectObjView.description
readUnitObj = projectObjView.getReadUnitObj()
datatype = readUnitObj.datatype
operationObj = readUnitObj.getOperationObj(name='run')
dpath = operationObj.getParameterValue(parameterName='path')
startDate = operationObj.getParameterValue(parameterName='startDate')
endDate = operationObj.getParameterValue(parameterName='endDate')
startDate = startDate.strftime("%Y/%m/%d")
endDate = endDate.strftime("%Y/%m/%d")
startTime = operationObj.getParameterValue(parameterName='startTime')
endTime = operationObj.getParameterValue(parameterName='endTime')
startTime = startTime.strftime("%H:%M:%S")
endTime = endTime.strftime("%H:%M:%S")
online = 0
try:
online = operationObj.getParameterValue(parameterName='online')
except:
pass
delay = ''
try:
delay = operationObj.getParameterValue(parameterName='delay')
except:
pass
walk = 0
try:
walk = operationObj.getParameterValue(parameterName='walk')
except:
pass
set = ''
try:
set = operationObj.getParameterValue(parameterName='set')
except:
pass
ippKm = ''
if datatype.lower() == 'usrp':
try:
ippKm = operationObj.getParameterValue(parameterName='ippKm')
except:
pass
projectParms = ProjectParms()
projectParms.project_name = project_name
projectParms.datatype = datatype
projectParms.ext = None
projectParms.dpath = dpath
projectParms.online = online
projectParms.startDate = startDate
projectParms.endDate = endDate
projectParms.startTime = startTime
projectParms.endTime = endTime
projectParms.delay=delay
projectParms.walk=walk
projectParms.set=set
projectParms.ippKm=ippKm
projectParms.parmsOk=parms_ok
return projectParms
def refreshProjectWindow2(self, projectObjView):
projectParms = self.__getParmsFromProjectObj(projectObjView)
index = projectParms.getDatatypeIndex()
self.proName.setText(projectObjView.name)
self.proDescription.clear()
self.proDescription.append(projectObjView.description)
self.on_proComDataType_activated(index=index)
self.proDataType.setText(projectParms.getExt())
self.proDataPath.setText(projectParms.dpath)
self.proComDataType.setCurrentIndex(index)
self.proComReadMode.setCurrentIndex(projectParms.online)
self.proDelay.setText(str(projectParms.delay))
self.proSet.setText(str(projectParms.set))
dateList = self.loadDays(data_path = projectParms.dpath,
ext = projectParms.getExt(),
walk = projectParms.walk,
expLabel = projectParms.expLabel)
try:
startDateIndex = dateList.index(projectParms.startDate)
except:
startDateIndex = 0
try:
endDateIndex = dateList.index(projectParms.endDate)
except:
endDateIndex = -1
self.proComStartDate.setCurrentIndex(startDateIndex)
self.proComEndDate.setCurrentIndex(endDateIndex)
startlist = projectParms.startTime.split(":")
endlist = projectParms.endTime.split(":")
self.time.setHMS(int(startlist[0]), int(startlist[1]), int(startlist[2]))
self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
self.proStartTime.setTime(self.time)
self.proEndTime.setTime(self.time)
def refreshProjectProperties(self, projectObjView):
propertyBuffObj = PropertyBuffer()
name = projectObjView.name
propertyBuffObj.append("Properties", "Name", projectObjView.name),
propertyBuffObj.append("Properties", "Description", projectObjView.description)
propertyBuffObj.append("Properties", "Workspace", self.pathWorkSpace)
readUnitObj = projectObjView.getReadUnitObj()
runOperationObj = readUnitObj.getOperationObj(name='run')
for thisParmObj in runOperationObj.getParameterObjList():
propertyBuffObj.append("Reading parms", thisParmObj.name, str(thisParmObj.getValue()))
propertiesModel = propertyBuffObj.getPropertyModel()
self.treeProjectProperties.setModel(propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.resizeColumnToContents(0)
self.treeProjectProperties.resizeColumnToContents(1)
def refreshPUProperties(self, puObjView):
propertyBuffObj = PropertyBuffer()
for thisOp in puObjView.getOperationObjList():
operationName = thisOp.name
if operationName == 'run':
operationName = 'Properties'
else:
if not thisOp.getParameterObjList():
propertyBuffObj.append(operationName, '--', '--')
for thisParmObj in thisOp.getParameterObjList():
propertyBuffObj.append(operationName, thisParmObj.name, str(thisParmObj.getValue()))
propertiesModel = propertyBuffObj.getPropertyModel()
self.treeProjectProperties.setModel(propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.resizeColumnToContents(0)
self.treeProjectProperties.resizeColumnToContents(1)
def on_click(self, index):
self.selectedItemTree = self.projectExplorerModel.itemFromIndex(index)
projectObjView = self.getSelectedProjectObj()
if not projectObjView:
return
#A project has been selected
if projectObjView == self.getSelectedItemObj():
self.refreshProjectWindow2(projectObjView)
self.refreshProjectProperties(projectObjView)
self.tabProject.setEnabled(True)
self.tabVoltage.setEnabled(False)
self.tabSpectra.setEnabled(False)
self.tabCorrelation.setEnabled(False)
self.tabSpectraHeis.setEnabled(False)
self.tabWidgetProject.setCurrentWidget(self.tabProject)
return
#A processing unit has been selected
voltEnable = False
specEnable = False
corrEnable = False
specHeisEnable = False
tabSelected = self.tabProject
puObj = self.getSelectedItemObj()
inputId = puObj.getInputId()
inputPUObj = projectObjView.getProcUnitObj(inputId)
if self.selectedItemTree.text() == 'Voltage':
datatype = 'Voltage'
if len(puObj.getOperationObjList()) == 1:
self.clearPUWindow(datatype)
else:
self.refreshPUWindow(datatype=datatype, puObj=puObj)
self.refreshPUProperties(puObj)
voltEnable = True
tabSelected = self.tabVoltage
if self.selectedItemTree.text() == 'Spectra':
datatype = 'Spectra'
if inputPUObj.datatype == 'Spectra':
self.specOpnFFTpoints.setEnabled(False)
self.specOpProfiles.setEnabled(False)
self.specOpippFactor.setEnabled(False)
else:
self.specOpnFFTpoints.setEnabled(True)
self.specOpProfiles.setEnabled(True)
self.specOpippFactor.setEnabled(True)
if len(puObj.getOperationObjList()) == 1:
self.clearPUWindow(datatype)
opObj = puObj.getOperationObj(name="run")
if opObj == None:
self.specOpnFFTpoints.clear()
self.specOpProfiles.clear()
self.specOpippFactor.clear()
else:
parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
if parmObj == None:
self.specOpnFFTpoints.clear()
else:
value = opObj.getParameterValue(parameterName='nFFTPoints')
self.specOpnFFTpoints.setText(str(value))
parmObj = opObj.getParameterObj(parameterName='nProfiles')
if parmObj == None:
self.specOpProfiles.clear()
else:
value = opObj.getParameterValue(parameterName='nProfiles')
self.specOpProfiles.setText(str(value))
parmObj = opObj.getParameterObj(parameterName="ippFactor")
if parmObj == None:
self.specOpippFactor.clear()
else:
value = opObj.getParameterValue(parameterName='ippFactor')
self.specOpippFactor.setText(str(value))
opObj = puObj.getOperationObj(name="run")
if opObj == None:
self.specOppairsList.clear()
self.specOpCebCrossSpectra.setCheckState(0)
else:
parmObj = opObj.getParameterObj(parameterName='pairsList')
if parmObj == None:
self.specOppairsList.clear()
self.specOpCebCrossSpectra.setCheckState(0)
else:
value = opObj.getParameterValue(parameterName='pairsList')
value = str(value)[1:-1]
self.specOppairsList.setText(str(value))
self.specOppairsList.setEnabled(True)
self.specOpCebCrossSpectra.setCheckState(QtCore.Qt.Checked)
else:
self.refreshPUWindow(datatype=datatype, puObj=puObj)
self.refreshPUProperties(puObj)
specEnable = True
tabSelected = self.tabSpectra
if self.selectedItemTree.text() == 'Correlation':
corrEnable = True
tabSelected = self.tabCorrelation
if self.selectedItemTree.text() == 'SpectraHeis':
datatype = 'SpectraHeis'
if len(puObj.getOperationObjList()) == 1:
self.clearPUWindow(datatype)
else:
self.refreshPUWindow(datatype=datatype, puObj=puObj)
self.refreshPUProperties(puObj)
specHeisEnable = False
tabSelected = self.tabSpectraHeis
self.tabProject.setEnabled(False)
self.tabVoltage.setEnabled(voltEnable)
self.tabSpectra.setEnabled(specEnable)
self.tabCorrelation.setEnabled(corrEnable)
self.tabSpectraHeis.setEnabled(specHeisEnable)
self.tabWidgetProject.setCurrentWidget(tabSelected)
def on_right_click(self, pos):
self.menu = QtGui.QMenu()
quitAction0 = self.menu.addAction("Create a New Project")
quitAction1 = self.menu.addAction("Create a New Processing Unit")
quitAction2 = self.menu.addAction("Delete Item")
quitAction3 = self.menu.addAction("Quit")
if len(self.__itemTreeDict) == 0:
quitAction2.setEnabled(False)
else:
quitAction2.setEnabled(True)
action = self.menu.exec_(self.mapToGlobal(pos))
if action == quitAction0:
self. setInputsProject_View()
self.create = True
if action == quitAction1:
if len(self.__projectObjDict) == 0:
outputstr = "You need to create a Project before adding a Processing Unit"
self.console.clear()
self.console.append(outputstr)
return 0
else:
self.addPUWindow()
self.console.clear()
self.console.append("Please, Choose the type of Processing Unit")
# self.console.append("If your Datatype is rawdata, you will start with processing unit Type Voltage")
# self.console.append("If your Datatype is pdata, you will choose between processing unit Type Spectra or Correlation")
# self.console.append("If your Datatype is fits, you will start with processing unit Type SpectraHeis")
if action == quitAction2:
index = self.selectedItemTree
try:
index.parent()
except:
self.console.append('Please first select a Project or Processing Unit')
return 0
# print index.parent(),index
if index.parent() == None:
self.projectExplorerModel.removeRow(index.row())
else:
index.parent().removeRow(index.row())
self.removeItemTreeFromProject()
self.console.clear()
# for i in self.projectExplorerTree.selectionModel().selection().indexes():
# print i.row()
if action == quitAction3:
self.close()
return 0
def refreshProjectWindow(self, project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, set):
self.proName.setText(str(project_name))
if datatype == 'Voltage':
ext = '.r'
value = 0
elif datatype == 'Spectra':
ext = '.pdata'
value = 1
elif datatype == 'Fits':
ext = '.fits'
value = 2
elif datatype == 'USRP':
ext = '.hdf5'
value = 3
self.proDataType.setText(ext)
self.proDataPath.setText(str(data_path))
self.proComDataType.setCurrentIndex(value)
self.proComReadMode.setCurrentIndex(int(online))
self.proDelay.setText(str(delay))
self.proSet.setText(str(set))
self.proComStartDate.clear()
self.proComEndDate.clear()
self.proComStartDate.addItem(str(startDate))
self.proComEndDate.addItem(str(endDate))
starTime = str(startTime)
starlist = starTime.split(":")
endTime = str(endTime)
endlist = endTime.split(":")
self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
self.proStartTime.setTime(self.time)
self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
self.proEndTime.setTime(self.time)
self.proDescription.clear()
self.proDescription.append(description)
def refreshPUWindow(self, datatype, puObj):
if datatype == 'Voltage':
opObj = puObj.getOperationObj(name='setRadarFrequency')
if opObj == None:
self.volOpRadarfrequency.clear()
self.volOpCebRadarfrequency.setCheckState(0)
else:
value = opObj.getParameterValue(parameterName='frequency')
value = str(value)
self.volOpRadarfrequency.setText(value)
self.volOpRadarfrequency.setEnabled(True)
self.volOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="selectChannels")
if opObj == None:
opObj = puObj.getOperationObj(name="selectChannelsByIndex")
if opObj == None:
self.volOpChannel.clear()
self.volOpCebChannels.setCheckState(0)
else:
channelEnabled = False
try:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)[1:-1]
channelEnabled = True
channelMode = 0
except:
pass
try:
value = opObj.getParameterValue(parameterName='channelIndexList')
value = str(value)[1:-1]
channelEnabled = True
channelMode = 1
except:
pass
if channelEnabled:
self.volOpChannel.setText(value)
self.volOpChannel.setEnabled(True)
self.volOpCebChannels.setCheckState(QtCore.Qt.Checked)
self.volOpComChannels.setCurrentIndex(channelMode)
opObj = puObj.getOperationObj(name="selectHeights")
if opObj == None:
self.volOpHeights.clear()
self.volOpCebHeights.setCheckState(0)
else:
value1 = int(opObj.getParameterValue(parameterName='minHei'))
value1 = str(value1)
value2 = int(opObj.getParameterValue(parameterName='maxHei'))
value2 = str(value2)
value = value1 + "," + value2
self.volOpHeights.setText(value)
self.volOpHeights.setEnabled(True)
self.volOpCebHeights.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="filterByHeights")
if opObj == None:
self.volOpFilter.clear()
self.volOpCebFilter.setCheckState(0)
else:
value = opObj.getParameterValue(parameterName='window')
value = str(value)
self.volOpFilter.setText(value)
self.volOpFilter.setEnabled(True)
self.volOpCebFilter.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="ProfileSelector")
if opObj == None:
self.volOpProfile.clear()
self.volOpCebProfile.setCheckState(0)
else:
for parmObj in opObj.getParameterObjList():
if parmObj.name == "profileRangeList":
value = opObj.getParameterValue(parameterName='profileRangeList')
value = str(value)[1:-1]
self.volOpProfile.setText(value)
self.volOpProfile.setEnabled(True)
self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
self.volOpComProfile.setCurrentIndex(1)
if parmObj.name == "profileList":
value = opObj.getParameterValue(parameterName='profileList')
value = str(value)[1:-1]
self.volOpProfile.setText(value)
self.volOpProfile.setEnabled(True)
self.volOpCebProfile.setCheckState(QtCore.Qt.Checked)
self.volOpComProfile.setCurrentIndex(0)
opObj = puObj.getOperationObj(name="Decoder")
if opObj == None:
self.volOpCebDecodification.setCheckState(0)
else:
try:
valueCode = opObj.getParameterValue(parameterName='nCode')
status = "on"
except:
status = "off"
if not status == "off":
if int(valueCode) == 1:
valueBaud = opObj.getParameterValue(parameterName='nBaud')
if int(valueBaud) == 3:
self.volOpComCode.setCurrentIndex(0)
if int(valueBaud) == 4:
self.volOpComCode.setCurrentIndex(1)
if int(valueBaud) == 5:
self.volOpComCode.setCurrentIndex(2)
if int(valueBaud) == 7:
self.volOpComCode.setCurrentIndex(3)
if int(valueBaud) == 11:
self.volOpComCode.setCurrentIndex(4)
if int(valueBaud) == 13:
self.volOpComCode.setCurrentIndex(5)
else:
valueBaud = opObj.getParameterValue(parameterName='nBaud')
if int(valueBaud) == 3:
self.volOpComCode.setCurrentIndex(6)
if int(valueBaud) == 4:
self.volOpComCode.setCurrentIndex(7)
if int(valueBaud) == 5:
self.volOpComCode.setCurrentIndex(8)
if int(valueBaud) == 7:
self.volOpComCode.setCurrentIndex(9)
if int(valueBaud) == 11:
self.volOpComCode.setCurrentIndex(10)
if int(valueBaud) == 13:
self.volOpComCode.setCurrentIndex(11)
for parmObj in opObj.getParameterObjList():
if parmObj.name == "nBaud":
value = opObj.getParameterValue(parameterName='nBaud')
if parmObj.name == "mode":
value = opObj.getParameterValue(parameterName='mode')
self.volOpComMode.setCurrentIndex(value)
else:
self.volOpComCode.setCurrentIndex(12)
self.volOpCebDecodification.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="deFlip")
if opObj == None:
self.volOpFlip.clear()
self.volOpFlip.setEnabled(False)
self.volOpCebFlip.setCheckState(0)
else:
try:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)[1:-1]
except:
value = ""
self.volOpFlip.setText(value)
self.volOpFlip.setEnabled(True)
self.volOpCebFlip.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="CohInt")
if opObj == None:
self.volOpCohInt.clear()
self.volOpCebCohInt.setCheckState(0)
else:
value = opObj.getParameterValue(parameterName='n')
self.volOpCohInt.setText(str(value))
self.volOpCohInt.setEnabled(True)
self.volOpCebCohInt.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name='Scope')
if opObj == None:
self.volGraphCebshow.setCheckState(0)
else:
self.volGraphCebshow.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterObj(parameterName='channelList')
if value == None:
self.volGraphChannelList.clear()
else:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)[1:-1]
self.volGraphChannelList.setText(value)
self.volOpProfile.setEnabled(True)
for parmObj in opObj.getParameterObjList():
if parmObj.name == "xmin":
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.volGraphfreqrange.setText(value)
else:
self.volGraphfreqrange.clear()
for parmObj in opObj.getParameterObjList():
if parmObj.name == "ymin":
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
value2 = str(value2)
self.volGraphHeightrange.setText(value)
else:
self.volGraphHeightrange.clear()
for parmObj in opObj.getParameterObjList():
if parmObj.name == "save":
self.volGraphCebSave.setCheckState(QtCore.Qt.Checked)
else:
self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
# outputVoltageWrite
opObj = puObj.getOperationObj(name='VoltageWriter')
if opObj == None:
self.volOutputPath.clear()
self.volOutputblocksperfile.clear()
self.volOutputprofilesperblock.clear()
else:
value = opObj.getParameterObj(parameterName='path')
if value == None:
self.volOutputPath.clear()
else:
value = opObj.getParameterValue(parameterName='path')
path = str(value)
self.volOutputPath.setText(path)
value = opObj.getParameterObj(parameterName='blocksPerFile')
if value == None:
self.volOutputblocksperfile.clear()
else:
value = opObj.getParameterValue(parameterName='blocksPerFile')
blocksperfile = str(value)
self.volOutputblocksperfile.setText(blocksperfile)
value = opObj.getParameterObj(parameterName='profilesPerBlock')
if value == None:
self.volOutputprofilesperblock.clear()
else:
value = opObj.getParameterValue(parameterName='profilesPerBlock')
profilesPerBlock = str(value)
self.volOutputprofilesperblock.setText(profilesPerBlock)
if datatype == 'Spectra':
opObj = puObj.getOperationObj(name='setRadarFrequency')
if opObj == None:
self.specOpRadarfrequency.clear()
self.specOpCebRadarfrequency.setCheckState(0)
else:
value = opObj.getParameterValue(parameterName='frequency')
value = str(value)
self.specOpRadarfrequency.setText(value)
self.specOpRadarfrequency.setEnabled(True)
self.specOpCebRadarfrequency.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="run")
if opObj == None:
self.specOpnFFTpoints.clear()
self.specOpProfiles.clear()
self.specOpippFactor.clear()
else:
parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
if parmObj == None:
self.specOpnFFTpoints.clear()
else:
self.specOpnFFTpoints.setEnabled(True)
value = opObj.getParameterValue(parameterName='nFFTPoints')
self.specOpnFFTpoints.setText(str(value))
parmObj = opObj.getParameterObj(parameterName='nProfiles')
if parmObj == None:
self.specOpProfiles.clear()
else:
self.specOpProfiles.setEnabled(True)
value = opObj.getParameterValue(parameterName='nProfiles')
self.specOpProfiles.setText(str(value))
parmObj = opObj.getParameterObj(parameterName='ippFactor')
if parmObj == None:
self.specOpippFactor.clear()
else:
self.specOpippFactor.setEnabled(True)
value = opObj.getParameterValue(parameterName='ippFactor')
self.specOpippFactor.setText(str(value))
opObj = puObj.getOperationObj(name="run")
if opObj == None:
self.specOppairsList.clear()
self.specOpCebCrossSpectra.setCheckState(0)
else:
parmObj = opObj.getParameterObj(parameterName='pairsList')
if parmObj == None:
self.specOppairsList.clear()
self.specOpCebCrossSpectra.setCheckState(0)
else:
value = opObj.getParameterValue(parameterName='pairsList')
value = str(value)[1:-1]
self.specOppairsList.setText(str(value))
self.specOppairsList.setEnabled(True)
self.specOpCebCrossSpectra.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="selectChannels")
if opObj == None:
opObj = puObj.getOperationObj(name="selectChannelsByIndex")
if opObj == None:
self.specOpChannel.clear()
self.specOpCebChannel.setCheckState(0)
else:
channelEnabled = False
try:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)[1:-1]
channelEnabled = True
channelMode = 0
except:
pass
try:
value = opObj.getParameterValue(parameterName='channelIndexList')
value = str(value)[1:-1]
channelEnabled = True
channelMode = 1
except:
pass
if channelEnabled:
self.specOpChannel.setText(value)
self.specOpChannel.setEnabled(True)
self.specOpCebChannel.setCheckState(QtCore.Qt.Checked)
self.specOpComChannel.setCurrentIndex(channelMode)
opObj = puObj.getOperationObj(name="selectHeights")
if opObj == None:
self.specOpHeights.clear()
self.specOpCebHeights.setCheckState(0)
else:
value1 = int(opObj.getParameterValue(parameterName='minHei'))
value1 = str(value1)
value2 = int(opObj.getParameterValue(parameterName='maxHei'))
value2 = str(value2)
value = value1 + "," + value2
self.specOpHeights.setText(value)
self.specOpHeights.setEnabled(True)
self.specOpCebHeights.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name="IncohInt")
if opObj == None:
self.specOpIncoherent.clear()
self.specOpCebIncoherent.setCheckState(0)
else:
for parmObj in opObj.getParameterObjList():
if parmObj.name == 'timeInterval':
value = opObj.getParameterValue(parameterName='timeInterval')
value = float(value)
self.specOpIncoherent.setText(str(value))
self.specOpIncoherent.setEnabled(True)
self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
self.specOpCobIncInt.setCurrentIndex(0)
if parmObj.name == 'n':
value = opObj.getParameterValue(parameterName='n')
value = float(value)
self.specOpIncoherent.setText(str(value))
self.specOpIncoherent.setEnabled(True)
self.specOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
self.specOpCobIncInt.setCurrentIndex(1)
opObj = puObj.getOperationObj(name="removeDC")
if opObj == None:
self.specOpCebRemoveDC.setCheckState(0)
else:
self.specOpCebRemoveDC.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='mode')
if value == 1:
self.specOpComRemoveDC.setCurrentIndex(0)
elif value == 2:
self.specOpComRemoveDC.setCurrentIndex(1)
opObj = puObj.getOperationObj(name="removeInterference")
if opObj == None:
self.specOpCebRemoveInt.setCheckState(0)
else:
self.specOpCebRemoveInt.setCheckState(QtCore.Qt.Checked)
opObj = puObj.getOperationObj(name='getNoise')
if opObj == None:
self.specOpCebgetNoise.setCheckState(0)
self.specOpgetNoise.clear()
else:
self.specOpCebgetNoise.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='minHei')
if parmObj == None:
self.specOpgetNoise.clear()
value1 = None
else:
value1 = opObj.getParameterValue(parameterName='minHei')
value1 = str(value1)
parmObj = opObj.getParameterObj(parameterName='maxHei')
if parmObj == None:
value2 = None
value = value1
self.specOpgetNoise.setText(value)
self.specOpgetNoise.setEnabled(True)
else:
value2 = opObj.getParameterValue(parameterName='maxHei')
value2 = str(value2)
parmObj = opObj.getParameterObj(parameterName='minVel')
if parmObj == None:
value3 = None
value = value1 + "," + value2
self.specOpgetNoise.setText(value)
self.specOpgetNoise.setEnabled(True)
else:
value3 = opObj.getParameterValue(parameterName='minVel')
value3 = str(value3)
parmObj = opObj.getParameterObj(parameterName='maxVel')
if parmObj == None:
value4 = None
value = value1 + "," + value2 + "," + value3
self.specOpgetNoise.setText(value)
self.specOpgetNoise.setEnabled(True)
else:
value4 = opObj.getParameterValue(parameterName='maxVel')
value4 = str(value4)
value = value1 + "," + value2 + "," + value3 + ',' + value4
self.specOpgetNoise.setText(value)
self.specOpgetNoise.setEnabled(True)
opObj = puObj.getOperationObj(name='SpectraPlot')
# opObj = puObj.getOpObjfromParamValue(value="SpectraPlot")
if opObj == None:
self.specGraphCebSpectraplot.setCheckState(0)
self.specGraphSaveSpectra.setCheckState(0)
self.specGraphftpSpectra.setCheckState(0)
else:
operationSpectraPlot = "Enable"
self.specGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
self.specGgraphChannelList.clear()
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListSpectraPlot = str(value)[1:-1]
self.specGgraphChannelList.setText(channelListSpectraPlot)
self.specGgraphChannelList.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specGgraphFreq.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphFreq.setText(value)
self.specGgraphFreq.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specGgraphHeight.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphHeight.setText(value)
self.specGgraphHeight.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='zmin')
if parmObj == None:
self.specGgraphDbsrange.clear()
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphDbsrange.setText(value)
self.specGgraphDbsrange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specGraphSaveSpectra.setCheckState(0)
else:
self.specGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specGraphPath.setText(value)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specGraphftpSpectra.setCheckState(0)
else:
self.specGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specGgraphftpratio.setText(str(value))
opObj = puObj.getOperationObj(name='CrossSpectraPlot')
# opObj = puObj.getOpObjfromParamValue(value="CrossSpectraPlot")
if opObj == None:
self.specGraphCebCrossSpectraplot.setCheckState(0)
self.specGraphSaveCross.setCheckState(0)
else:
operationCrossSpectraPlot = "Enable"
self.specGraphCebCrossSpectraplot.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specGgraphFreq.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphFreq.setText(value)
self.specGgraphFreq.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specGgraphHeight.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphHeight.setText(value)
self.specGgraphHeight.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='zmin')
if parmObj == None:
self.specGgraphDbsrange.clear()
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphDbsrange.setText(value)
self.specGgraphDbsrange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specGraphSaveCross.setCheckState(0)
else:
self.specGraphSaveCross.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specGraphPath.setText(value)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specGraphftpCross.setCheckState(0)
else:
self.specGraphftpCross.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specGgraphftpratio.setText(str(value))
opObj = puObj.getOperationObj(name='RTIPlot')
# opObj = puObj.getOpObjfromParamValue(value="RTIPlot")
if opObj == None:
self.specGraphCebRTIplot.setCheckState(0)
self.specGraphSaveRTIplot.setCheckState(0)
self.specGraphftpRTIplot.setCheckState(0)
else:
self.specGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
self.specGgraphChannelList.clear()
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListRTIPlot = str(value)[1:-1]
self.specGgraphChannelList.setText(channelListRTIPlot)
self.specGgraphChannelList.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specGgraphTminTmax.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphTminTmax.setText(value)
self.specGgraphTminTmax.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
self.specGgraphTimeRange.clear()
else:
value1 = opObj.getParameterValue(parameterName='timerange')
value1 = str(value1)
self.specGgraphTimeRange.setText(value1)
self.specGgraphTimeRange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specGgraphHeight.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphHeight.setText(value)
self.specGgraphHeight.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='zmin')
if parmObj == None:
self.specGgraphDbsrange.clear()
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphDbsrange.setText(value)
self.specGgraphDbsrange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specGraphSaveRTIplot.setCheckState(0)
else:
self.specGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specGraphPath.setText(value)
#---------add----#
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specGraphftpRTIplot.setCheckState(0)
else:
self.specGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specGgraphftpratio.setText(str(value))
opObj = puObj.getOperationObj(name='CoherenceMap')
# opObj = puObj.getOpObjfromParamValue(value="CoherenceMap")
if opObj == None:
self.specGraphCebCoherencmap.setCheckState(0)
self.specGraphSaveCoherencemap.setCheckState(0)
self.specGraphftpCoherencemap.setCheckState(0)
else:
operationCoherenceMap = "Enable"
self.specGraphCebCoherencmap.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specGgraphTminTmax.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphTminTmax.setText(value)
self.specGgraphTminTmax.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
self.specGgraphTimeRange.clear()
else:
value1 = opObj.getParameterValue(parameterName='timerange')
value1 = str(value1)
self.specGgraphTimeRange.setText(value1)
self.specGgraphTimeRange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specGgraphHeight.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphHeight.setText(value)
self.specGgraphHeight.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='zmin')
if parmObj == None:
self.specGgraphmagnitud.clear()
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphmagnitud.setText(value)
self.specGgraphmagnitud.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specGraphSaveCoherencemap.setCheckState(0)
else:
self.specGraphSaveCoherencemap.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specGraphPath.setText(value)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specGraphftpCoherencemap.setCheckState(0)
else:
self.specGraphftpCoherencemap.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specGgraphftpratio.setText(str(value))
opObj = puObj.getOperationObj(name='PowerProfilePlot')
# opObj = puObj.getOpObjfromParamValue(value="PowerProfilePlot")
if opObj == None:
self.specGraphPowerprofile.setCheckState(0)
self.specGraphSavePowerprofile.setCheckState(0)
operationPowerProfilePlot = "Disabled"
channelList = None
freq_vel = None
heightsrange = None
else:
operationPowerProfilePlot = "Enable"
self.specGraphPowerprofile.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specGgraphDbsrange.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphDbsrange.setText(value)
self.specGgraphDbsrange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specGgraphHeight.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphHeight.setText(value)
self.specGgraphHeight.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specGraphSavePowerprofile.setCheckState(0)
else:
self.specGraphSavePowerprofile.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specGraphPath.setText(value)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specGraphftpPowerprofile.setCheckState(0)
else:
self.specGraphftpPowerprofile.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specGgraphftpratio.setText(str(value))
# -noise
opObj = puObj.getOperationObj(name='Noise')
# opObj = puObj.getOpObjfromParamValue(value="Noise")
if opObj == None:
self.specGraphCebRTInoise.setCheckState(0)
self.specGraphSaveRTInoise.setCheckState(0)
self.specGraphftpRTInoise.setCheckState(0)
else:
self.specGraphCebRTInoise.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
self.specGgraphChannelList.clear()
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListRTINoise = str(value)[1:-1]
self.specGgraphChannelList.setText(channelListRTINoise)
self.specGgraphChannelList.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specGgraphTminTmax.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphTminTmax.setText(value)
self.specGgraphTminTmax.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
self.specGgraphTimeRange.clear()
else:
value1 = opObj.getParameterValue(parameterName='timerange')
value1 = str(value1)
self.specGgraphTimeRange.setText(value1)
self.specGgraphTimeRange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specGgraphDbsrange.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specGgraphDbsrange.setText(value)
self.specGgraphDbsrange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specGraphSaveRTInoise.setCheckState(0)
else:
self.specGraphSaveRTInoise.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specGraphPath.setText(value)
#---------add----#
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specGraphftpRTInoise.setCheckState(0)
else:
self.specGraphftpRTInoise.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specGgraphftpratio.setText(str(value))
# outputSpectraWrite
opObj = puObj.getOperationObj(name='SpectraWriter')
if opObj == None:
self.specOutputPath.clear()
self.specOutputblocksperfile.clear()
self.specOutputprofileperblock.clear()
else:
value = opObj.getParameterObj(parameterName='path')
if value == None:
self.specOutputPath.clear()
else:
value = opObj.getParameterValue(parameterName='path')
path = str(value)
self.specOutputPath.setText(path)
value = opObj.getParameterObj(parameterName='blocksPerFile')
if value == None:
self.specOutputblocksperfile.clear()
else:
value = opObj.getParameterValue(parameterName='blocksPerFile')
blocksperfile = str(value)
self.specOutputblocksperfile.setText(blocksperfile)
value = opObj.getParameterObj(parameterName='profilesPerBlock')
if value == None:
self.specOutputprofileperblock.clear()
else:
value = opObj.getParameterValue(parameterName='profilesPerBlock')
profilesPerBlock = str(value)
self.specOutputprofileperblock.setText(profilesPerBlock)
if datatype == 'SpectraHeis':
opObj = puObj.getOperationObj(name="IncohInt4SpectraHeis")
if opObj == None:
self.specHeisOpIncoherent.clear()
self.specHeisOpCebIncoherent.setCheckState(0)
else:
for parmObj in opObj.getParameterObjList():
if parmObj.name == 'timeInterval':
value = opObj.getParameterValue(parameterName='timeInterval')
value = float(value)
self.specHeisOpIncoherent.setText(str(value))
self.specHeisOpIncoherent.setEnabled(True)
self.specHeisOpCebIncoherent.setCheckState(QtCore.Qt.Checked)
self.specHeisOpCobIncInt.setCurrentIndex(0)
# SpectraHeis Graph
opObj = puObj.getOperationObj(name='SpectraHeisScope')
# opObj = puObj.getOpObjfromParamValue(value="SpectraHeisScope")
if opObj == None:
self.specHeisGraphCebSpectraplot.setCheckState(0)
self.specHeisGraphSaveSpectra.setCheckState(0)
self.specHeisGraphftpSpectra.setCheckState(0)
else:
operationSpectraHeisScope = "Enable"
self.specHeisGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
self.specHeisGgraphChannelList.clear()
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListSpectraHeisScope = str(value)[1:-1]
self.specHeisGgraphChannelList.setText(channelListSpectraHeisScope)
self.specHeisGgraphChannelList.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specHeisGgraphXminXmax.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specHeisGgraphXminXmax.setText(value)
self.specHeisGgraphXminXmax.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specHeisGgraphYminYmax.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specHeisGgraphYminYmax.setText(value)
self.specHeisGgraphYminYmax.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specHeisGraphSaveSpectra.setCheckState(0)
else:
self.specHeisGraphSaveSpectra.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specHeisGraphPath.setText(value)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specHeisGraphftpSpectra.setCheckState(0)
else:
self.specHeisGraphftpSpectra.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specHeisGgraphftpratio.setText(str(value))
opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
# opObj = puObj.getOpObjfromParamValue(value="RTIfromSpectraHeis")
if opObj == None:
self.specHeisGraphCebRTIplot.setCheckState(0)
self.specHeisGraphSaveRTIplot.setCheckState(0)
self.specHeisGraphftpRTIplot.setCheckState(0)
else:
self.specHeisGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
self.specHeisGgraphChannelList.clear()
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListRTIPlot = str(value)[1:-1]
self.specGgraphChannelList.setText(channelListRTIPlot)
self.specGgraphChannelList.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='xmin')
if parmObj == None:
self.specHeisGgraphTminTmax.clear()
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
self.specHeisGgraphTminTmax.setText(value)
self.specHeisGgraphTminTmax.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
self.specGgraphTimeRange.clear()
else:
value1 = opObj.getParameterValue(parameterName='timerange')
value1 = str(value1)
self.specHeisGgraphTimeRange.setText(value1)
self.specHeisGgraphTimeRange.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName='ymin')
if parmObj == None:
self.specHeisGgraphYminYmax.clear()
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
self.specHeisGgraphYminYmax.setText(value)
self.specHeisGgraphYminYmax.setEnabled(True)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.specHeisGraphSaveRTIplot.setCheckState(0)
else:
self.specHeisGraphSaveRTIplot.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
self.specHeisGraphPath.setText(value)
#---------add----#
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
self.specHeisGraphftpRTIplot.setCheckState(0)
else:
self.specHeisGraphftpRTIplot.setCheckState(QtCore.Qt.Checked)
try:
value = opObj.getParameterValue(parameterName='wr_period')
except:
value = " "
self.specHeisGgraphftpratio.setText(str(value))
# outputSpectraHeisWrite
opObj = puObj.getOperationObj(name='FitsWriter')
if opObj == None:
self.specHeisOutputPath.clear()
self.specHeisOutputblocksperfile.clear()
self.specHeisOutputMetada.clear()
else:
value = opObj.getParameterObj(parameterName='path')
if value == None:
self.specHeisOutputPath.clear()
else:
value = opObj.getParameterValue(parameterName='path')
path = str(value)
self.specHeisOutputPath.setText(path)
value = opObj.getParameterObj(parameterName='dataBlocksPerFile')
if value == None:
self.specHeisOutputblocksperfile.clear()
else:
value = opObj.getParameterValue(parameterName='dataBlocksPerFile')
blocksperfile = str(value)
self.specHeisOutputblocksperfile.setText(blocksperfile)
value = opObj.getParameterObj(parameterName='metadatafile')
if value == None:
self.specHeisOutputMetada.clear()
else:
value = opObj.getParameterValue(parameterName='metadatafile')
metada = str(value)
self.specHeisOutputMetada.setText(metada)
def setspecGraph(self):
self.specGgraphChannelList.setEnabled(True)
def clearspecGraph(self):
self.specGgraphChannelList.clear()
def create_comm(self):
self.commCtrlPThread = CommCtrlProcessThread()
self.commCtrlPThread.start()
def create_updating_timer(self):
self.comm_data_timer = QtCore.QTimer(self)
self.comm_data_timer.timeout.connect(self.on_comm_updating_timer)
self.comm_data_timer.start(1000)
def create_figure(self):
self.queue_plot = Queue.Queue()
self.plotmanager = PlotManager(self.queue_plot)
self.plot_timer = QtCore.QTimer()
QtCore.QObject.connect(self.plot_timer, QtCore.SIGNAL("timeout()"), self.periodicCall)
self.plot_timer.start(100)
self.running = 1
def periodicCall(self):
"""
Check every 100 ms if there is something new in the queue.
"""
self.plotmanager.processIncoming()
if not self.running:
app.quit()
# def on_comm_data_timer(self):
# # lee el data_queue y la coloca en el queue de ploteo
# try:
# reply = self.commCtrlPThread.data_q.get(block=False)
# self.queue_plot.put(reply.data)
#
# except Queue.Empty:
# pass
def createProjectView(self, id):
self.create = False
project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
projectObjView = Project()
projectObjView.setup(id=id, name=project_name, description=description)
self.__projectObjDict[id] = projectObjView
return projectObjView
def updateProjectView(self):
project_name, description, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
projectObjView = self.getSelectedProjectObj()
projectObjView.update(name=project_name, description=description)
return projectObjView
def createReadUnitView(self, projectObjView):
project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk, set = self.getParmsFromProjectWindow()
if datatype == "Voltage" or datatype == "Spectra" or datatype == "Fits":
readUnitConfObj = projectObjView.addReadUnit(datatype=datatype,
path=data_path,
startDate=startDate,
endDate=endDate,
startTime=startTime,
endTime=endTime,
online=online,
delay=delay,
walk=walk,
set=set
)
if datatype == "USRP":
readUnitConfObj = projectObjView.addReadUnit(datatype=datatype,
path=data_path,
startDate=startDate,
endDate=endDate,
startTime=startTime,
endTime=endTime,
online=online,
delay=delay,
ippKm=set
)
return readUnitConfObj
def updateReadUnitView(self, projectObjView, idReadUnit):
project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, walk , set = self.getParmsFromProjectWindow()
readUnitConfObj = projectObjView.getProcUnitObj(idReadUnit)
if datatype == "Voltage" or datatype == "Spectra" or datatype == "Fits":
readUnitConfObj.update(datatype=datatype,
path=data_path,
startDate=startDate,
endDate=endDate,
startTime=startTime,
endTime=endTime,
online=online,
delay=delay,
walk=walk,
set=set
)
if datatype == "USRP":
readUnitConfObj.update(datatype=datatype,
path=data_path,
startDate=startDate,
endDate=endDate,
startTime=startTime,
endTime=endTime,
online=online,
delay=delay,
ippKm=set
)
return readUnitConfObj
def createProcUnitView(self, projectObjView, datatype, inputId):
procUnitConfObj = projectObjView.addProcUnit(datatype=datatype, inputId=inputId)
self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
return procUnitConfObj
def updateProcUnitView(self, id):
procUnitConfObj = projectObjView.getProcUnitObj(id)
procUnitConfObj.removeOperations()
return procUnitConfObj
def addPUWindow(self):
self.configUPWindowObj = UnitProcessWindow(self)
fatherObj = self.getSelectedItemObj()
try:
fatherObj.getElementName()
except:
self.console.append("First left click on Project or Processing Unit")
return 0
if fatherObj.getElementName() == 'Project':
readUnitConfObj = fatherObj.getReadUnitObj()
self.configUPWindowObj.dataTypeProject = str(readUnitConfObj.datatype)
self.configUPWindowObj.getfromWindowList.append(fatherObj)
self.configUPWindowObj.loadTotalList()
self.configUPWindowObj.show()
self.configUPWindowObj.closed.connect(self.createPUWindow)
def createPUWindow(self):
self.console.clear()
if not self.configUPWindowObj.create:
return
fatherObj = self.configUPWindowObj.getFromWindow
datatype = self.configUPWindowObj.typeofUP
if fatherObj.getElementName() == 'Project':
inputId = fatherObj.getReadUnitId()
projectObjView = fatherObj
else:
inputId = fatherObj.getId()
projectObjView = self.getSelectedProjectObj()
#----------------------------
puObj = self.createProcUnitView(projectObjView, datatype, inputId)
#----------------------------
self.addPU2ProjectExplorer(id=puObj.getId(), name=datatype)
self.showtabPUCreated(datatype)
self.clearPUWindow(datatype)
self.showPUinitView()
def addFTPConf2Operation(self, puObj, opObj):
if self.temporalFTP.create:
server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
else:
self.temporalFTP.setwithoutconfiguration()
server, remotefolder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.temporalFTP.recover()
# opObj.addParameter(name='server', value=server, format='str')
# opObj.addParameter(name='folder', value=remotefolder, format='str')
# opObj.addParameter(name='username', value=username, format='str')
# opObj.addParameter(name='password', value=password, format='str')
if ftp_wei:
opObj.addParameter(name='ftp_wei', value=int(ftp_wei), format='int')
if exp_code:
opObj.addParameter(name='exp_code', value=int(exp_code), format='int')
if sub_exp_code:
opObj.addParameter(name='sub_exp_code', value=int(sub_exp_code), format='int')
if plot_pos:
opObj.addParameter(name='plot_pos', value=int(plot_pos), format='int')
if puObj.datatype == "Spectra":
value = self.specGgraphftpratio.text()
if puObj.datatype == "SpectraHeis":
value = self.specHeisGgraphftpratio.text()
if not value == "":
try:
value = int(value)
except:
self.console.clear()
self.console.append("Please fill Ratio on the textbox")
return 0
opObj.addParameter(name='wr_period', value=value, format='int')
def createFTPProcUnitView(self, server, username, password, remotefolder,
ftp_wei, exp_code, sub_exp_code, plot_pos,
localfolder='./', extension='.png', period='60', protocol='ftp'):
projectObj = self.getSelectedProjectObj()
procUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
if not procUnitConfObj:
procUnitConfObj = projectObj.addProcUnit(name="SendToServer")
else:
procUnitConfObj.removeOperations()
procUnitConfObj.addParameter(name='server', value=server, format='str')
procUnitConfObj.addParameter(name='username', value=username, format='str')
procUnitConfObj.addParameter(name='password', value=password, format='str')
procUnitConfObj.addParameter(name='localfolder', value=localfolder, format='str')
procUnitConfObj.addParameter(name='remotefolder', value=remotefolder, format='str')
procUnitConfObj.addParameter(name='ext', value=extension, format='str')
procUnitConfObj.addParameter(name='period', value=period, format='int')
procUnitConfObj.addParameter(name='protocol', value=protocol, format='str')
procUnitConfObj.addParameter(name='ftp_wei', value=ftp_wei, format='str')
procUnitConfObj.addParameter(name='exp_code', value=exp_code, format='str')
procUnitConfObj.addParameter(name='sub_exp_code', value=sub_exp_code, format='str')
procUnitConfObj.addParameter(name='plot_pos', value=plot_pos, format='str')
self.__puObjDict[procUnitConfObj.getId()] = procUnitConfObj
self.__ftpProcUnitAdded = True
self.__ftpProcUnitId = procUnitConfObj.getId()
def removeFTPProcUnitView(self):
projectObj = self.getSelectedProjectObj()
procUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
self.__ftpProcUnitAdded = False
self.__ftpProcUnitId = None
if not procUnitConfObj:
return
projectObj.removeProcUnit(procUnitConfObj.getId())
if procUnitConfObj.getId() not in self.__puObjDict.keys():
return
self.__puObjDict.pop(procUnitConfObj.getId())
def bufferProject(self, caracteristica, principal, description):
self.projectProperCaracteristica.append(caracteristica)
self.projectProperPrincipal.append(principal)
self.projectProperDescripcion.append(description)
return self.projectProperCaracteristica, self.projectProperPrincipal, self.projectProperDescripcion
def showProjectProperties(self, projectObjView):
project_name, description = projectObjView.name, projectObjView.description
id = projectObjView.id
readUnitId = projectObjView.getReadUnitId()
readUnitObj = projectObjView.getProcUnitObj(readUnitId)
operationObj = readUnitObj.getOperationObj(name='run')
datatype = operationObj.getParameterValue(parameterName='datatype')
dpath = operationObj.getParameterValue(parameterName='path')
startDate = operationObj.getParameterValue(parameterName='startDate')
endDate = operationObj.getParameterValue(parameterName='endDate')
startDate = str(startDate)
endDate = str(endDate)
startDateList = startDate.split('-')
endDateList = endDate.split('-')
startDate = startDateList[0] + "/" + startDateList[1] + "/" + startDateList[2]
endDate = endDateList[0] + "/" + endDateList[1] + "/" + endDateList[2]
startTime = operationObj.getParameterValue(parameterName='startTime')
endTime = operationObj.getParameterValue(parameterName='endTime')
online = operationObj.getParameterValue(parameterName='online')
walk = operationObj.getParameterValue(parameterName='walk')
delay = operationObj.getParameterValue(parameterName='delay')
try:
set = operationObj.getParameterValue(parameterName='set')
except:
set = " "
if online == 0:
remode = "offline"
else:
remode = "online"
if walk == 0:
walk_str = 'On Files'
else:
walk_str = 'On Folder'
self.bufferProject("Properties", "Name", project_name),
self.bufferProject("Properties", "Data Path", dpath)
self.bufferProject("Properties", "Workspace", self.pathWorkSpace)
self.bufferProject("Parameters", "Read Mode ", remode)
self.bufferProject("Parameters", "DataType ", datatype)
self.bufferProject("Parameters", "Start Date", str(startDate))
self.bufferProject("Parameters", "End Date ", str(endDate))
self.bufferProject("Parameters", "Start Time", str(startTime))
self.bufferProject("Parameters", "End Time ", str(endTime))
self.bufferProject("Parameters", "Delay ", str(delay))
try:
set = operationObj.getParameterValue(parameterName='set')
self.bufferProject("Parameters", "Set ", set)
except:
set = " "
self.bufferProject("Parameters", "Walk ", str(walk_str))
self.bufferProject("Parameters", "Time zone", "Local")
self.bufferProject("Description", "Summary ", description)
self.propertiesModel = TreeModel()
self.propertiesModel.showProperties(self.projectProperCaracteristica, self.projectProperPrincipal, self.projectProperDescripcion)
self.treeProjectProperties.setModel(self.propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.resizeColumnToContents(0)
self.treeProjectProperties.resizeColumnToContents(1)
self.projectProperCaracteristica = []
self.projectProperPrincipal = []
self.projectProperDescripcion = []
return datatype , dpath , startDate , endDate, startTime, endTime, online, delay, walk, set
def showPUinitView(self):
self.propertiesModel = TreeModel()
self.propertiesModel.initPUVoltageView()
self.treeProjectProperties.setModel(self.propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.allColumnsShowFocus()
self.treeProjectProperties.resizeColumnToContents(1)
def bufferVoltage(self, caracteristica, principal, description):
self.volProperCaracteristica.append(caracteristica)
self.volProperPrincipal.append(principal)
self.volProperDescripcion.append(description)
return self.volProperCaracteristica, self.volProperPrincipal, self.volProperDescripcion
def showPUVoltageProperties(self, puObj):
type = puObj.name
self.bufferVoltage("Processing Unit", "Type", type)
opObj = puObj.getOperationObj(name="setRadarFrequency")
if opObj == None:
radarfrequency = None
else:
value = opObj.getParameterValue(parameterName='frequency')
value = str(value)
radarfrequency = value
self.bufferVoltage("Processing Unit", "Radar Frequency", radarfrequency)
opObj = puObj.getOperationObj(name="selectChannels")
if opObj == None:
channel = None
else:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)#[1:-1]
channel = value
self.bufferVoltage("Processing Unit", "Select Channel", channel)
opObj = puObj.getOperationObj(name="selectChannelsByIndex")
if opObj == None:
channel = None
else:
value = opObj.getParameterValue(parameterName='channelIndexList')
value = str(value)#[1:-1]
channel = value
self.bufferVoltage("Processing Unit", "Select Channel by Index", channel)
opObj = puObj.getOperationObj(name="selectHeights")
if opObj == None:
heights = None
else:
value1 = int(opObj.getParameterValue(parameterName='minHei'))
value1 = str(value1)
value2 = int(opObj.getParameterValue(parameterName='maxHei'))
value2 = str(value2)
value = value1 + "," + value2
heights = value
self.bufferVoltage("Processing Unit", "Select Heights", heights)
opObj = puObj.getOperationObj(name="filterByHeights")
if opObj == None:
filter = None
else:
value = opObj.getParameterValue(parameterName='window')
value = str(value)
filter = value
self.bufferVoltage("Processing Unit", "Filter", filter)
opObj = puObj.getOperationObj(name="ProfileSelector")
if opObj == None:
profile = None
else:
for parmObj in opObj.getParameterObjList():
if parmObj.name == "profileRangeList":
value = opObj.getParameterValue(parameterName='profileRangeList')
value = str(value)#[1:-1]
profile = value
self.bufferVoltage("Processing Unit", "Select Profile", profile)
if parmObj.name == "profileList":
value = opObj.getParameterValue(parameterName='profileList')
value = str(value)#[1:-1]
profile = value
self.bufferVoltage("Processing Unit", "Select Profile", profile)
opObj = puObj.getOperationObj(name="Decoder")
if opObj == None:
self.volOpCebDecodification.setCheckState(0)
code = None
mode = None
else:
self.volOpCebDecodification.setCheckState(QtCore.Qt.Checked)
try:
code = opObj.getParameterValue(parameterName='code')
nBaud = opObj.getParameterValue(parameterName='nBaud')
nCode = opObj.getParameterValue(parameterName='nCode')
code = numpy.array(code).reshape(nCode,nBaud)
except:
code = "Default"
self.bufferVoltage("Processing Unit", "Code", str(code).replace('\n',''))
try:
value = opObj.getParameterValue(parameterName='mode')
if int(value) == 0:
mode = "Time"
else:
mode = "freq" + str(value)
except:
mode = "Default"
self.bufferVoltage("Processing Unit", "Decoder mode", mode)
opObj = puObj.getOperationObj(name="deFlip")
if opObj == None:
value = None
else:
try:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)
except:
value = "All channels"
self.bufferVoltage("Processing Unit", "Flip", value)
opObj = puObj.getOperationObj(name="CohInt")
if opObj == None:
coherentintegration = None
else:
value = opObj.getParameterValue(parameterName='n')
coherentintegration = value
self.bufferVoltage("Processing Unit", "Coh Int", coherentintegration)
# graph
# opObj = puObj.getOperationObj(name='Plot')
opObj = puObj.getOperationObj(name='Scope')
if opObj == None:
self.volGraphCebshow.setCheckState(0)
operation = "Disabled"
channelList = None
freq_vel = None
heightsrange = None
else:
operation = 'Enabled'
self.bufferVoltage("Scope", "Operation", operation),
self.volGraphCebshow.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterObj(parameterName='channelList')
if value == None:
channelList = None
else:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)[1:-1]
channelList = value
self.bufferVoltage("Scope", "Channel List", channelList)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
freq_vel = value
self.bufferVoltage("Scope", "Freq/Vel", freq_vel)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
heightsrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fheightsrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
heightsrange = value
self.bufferVoltage("Scope", "Height Range", heightsrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
self.volGraphCebSave.setCheckState(QtCore.Qt.Unchecked)
figpath = None
else:
self.volGraphCebSave.setCheckState(QtCore.Qt.Checked)
value = opObj.getParameterValue(parameterName='figpath')
figpath = value
self.bufferVoltage("Scope", "Path", figpath)
# outputVoltageWrite
opObj = puObj.getOperationObj(name='VoltageWriter')
if opObj == None:
pass
else:
operation = 'Enabled'
self.bufferVoltage("Output", "Operation", operation)
value = opObj.getParameterObj(parameterName='path')
if value == None:
path = None
else:
value = opObj.getParameterValue(parameterName='path')
path = str(value)
self.bufferVoltage("Output", "Path", path)
value = opObj.getParameterObj(parameterName='blocksPerFile')
if value == None:
blocksperfile = None
else:
value = opObj.getParameterValue(parameterName='blocksPerFile')
blocksperfile = str(value)
self.bufferVoltage("Output", "BlocksPerFile", blocksperfile)
value = opObj.getParameterObj(parameterName='profilesPerBlock')
if value == None:
profilesPerBlock = None
else:
value = opObj.getParameterValue(parameterName='profilesPerBlock')
profilesPerBlock = str(value)
self.bufferVoltage("Output", "ProfilesPerBlock", profilesPerBlock)
# set model PU Properties
self.propertiesModel = TreeModel()
self.propertiesModel.showProperties(self.volProperCaracteristica, self.volProperPrincipal, self.volProperDescripcion)
self.volProperCaracteristica = []
self.volProperPrincipal = []
self.volProperDescripcion = []
self.treeProjectProperties.setModel(self.propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.allColumnsShowFocus()
self.treeProjectProperties.resizeColumnToContents(0)
self.treeProjectProperties.resizeColumnToContents(1)
def bufferSpectra(self, caracteristica, principal, description):
self.specProperCaracteristica.append(caracteristica)
self.specProperPrincipal.append(principal)
self.specProperDescripcion.append(description)
return self.specProperCaracteristica, self.specProperPrincipal, self.specProperDescripcion
def showPUSpectraProperties(self, puObj):
type = puObj.name
self.bufferSpectra("Processing Unit", "Type", type)
opObj = puObj.getOperationObj(name="setRadarFrequency")
if opObj == None:
radarfrequency = None
else:
value = opObj.getParameterValue(parameterName='frequency')
value = str(value)
radarfrequency = value
self.bufferSpectra("Processing Unit", "Radar Frequency", radarfrequency)
opObj = puObj.getOperationObj(name="run")
if opObj == None:
self.specOpnFFTpoints.clear()
self.specOpProfiles.clear()
self.specOpippFactor.clear()
else:
parmObj = opObj.getParameterObj(parameterName='nProfiles')
if parmObj == None:
nProfiles = None
else:
value = opObj.getParameterValue(parameterName='nProfiles')
nProfiles = value
self.bufferSpectra("Processing Unit", "nProfiles", nProfiles)
parmObj = opObj.getParameterObj(parameterName='nFFTPoints')
if parmObj == None:
nFFTPoints = None
else:
value = opObj.getParameterValue(parameterName='nFFTPoints')
nFFTPoints = value
self.bufferSpectra("Processing Unit", "nFFTpoints", nFFTPoints)
parmObj = opObj.getParameterObj(parameterName='ippFactor')
if parmObj == None:
ippFactor = None
else:
value = opObj.getParameterValue(parameterName='ippFactor')
ippFactor = value
self.bufferSpectra("Processing Unit", "Ipp Factor", ippFactor)
opObj = puObj.getOperationObj(name="run")
if opObj == None:
pairsList = None
else:
parm = opObj.getParameterObj(parameterName='pairsList')
if parm == None:
pairsList = None
else:
value = opObj.getParameterValue(parameterName='pairsList')
value = str(value)[1:-1]
pairsList = value
self.bufferSpectra("Processing Unit", "PairsList", pairsList)
opObj = puObj.getOperationObj(name="selectChannels")
if opObj == None:
channel = None
else:
try:
value = opObj.getParameterValue(parameterName='channelList')
value = str(value)[1:-1]
channel = value
self.bufferSpectra("Processing Unit", "Channel List", channel)
except:
pass
try:
value = opObj.getParameterValue(parameterName='channelIndexList')
value = str(value)[1:-1]
channel = value
self.bufferSpectra("Processing Unit", "Channel Index List", channel)
except:
pass
opObj = puObj.getOperationObj(name="selectHeights")
if opObj == None:
heights = None
else:
value1 = int(opObj.getParameterValue(parameterName='minHei'))
value1 = str(value1)
value2 = int(opObj.getParameterValue(parameterName='maxHei'))
value2 = str(value2)
value = value1 + "," + value2
heights = value
self.bufferSpectra("Processing Unit", "Heights", heights)
opObj = puObj.getOperationObj(name="IncohInt")
if opObj == None:
incoherentintegration = None
else:
try:
value = opObj.getParameterValue(parameterName='timeInterval')
except:
value = opObj.getParameterValue(parameterName='n')
value = float(value)
incoherentintegration = str(value)
self.bufferSpectra("Processing Unit", "Incoherent Integration", incoherentintegration)
opObj = puObj.getOperationObj(name="removeDC")
if opObj == None:
removeDC = None
else:
value = opObj.getParameterValue(parameterName='mode')
self.bufferSpectra("Processing Unit", "Remove DC", value)
opObj = puObj.getOperationObj(name="removeInterference")
if opObj == None:
removeInterference = None
else:
self.bufferSpectra("Processing Unit", "Remove Interference", "1")
opObj = puObj.getOperationObj(name="getNoise")
if opObj == None:
getNoise = None
else:
value1 = opObj.getParameterObj(parameterName='minHei')
if value1 == None:
getNoise = None
getNoise = "Default"
self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
else:
value1 = opObj.getParameterValue(parameterName='minHei')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='maxHei')
if value2 == None:
getNoise = None
value = value1
getNoise = value
self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
else:
value2 = opObj.getParameterValue(parameterName='maxHei')
value2 = str(value2)
value3 = opObj.getParameterObj(parameterName='minVel')
if value3 == None:
getNoise = None
value = value1 + "," + value2
getNoise = value
self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
else:
value3 = opObj.getParameterValue(parameterName='minVel')
value3 = str(value3)
value4 = opObj.getParameterObj(parameterName='maxVel')
if value4 == None:
getNoise = None
value = value1 + "," + value2 + ',' + value3
getNoise = value
self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
else:
value4 = opObj.getParameterValue(parameterName='maxVel')
value4 = str(value4)
value = value1 + "," + value2 + ',' + value3 + ',' + value4
getNoise = value
self.bufferSpectra("Processing Unit", "Get Noise", getNoise)
opObj = puObj.getOperationObj(name='SpectraPlot')
# opObj = puObj.getOpObjfromParamValue(value="SpectraPlot")
if opObj == None:
operationSpectraPlot = "Disabled"
freq_vel = None
heightsrange = None
channelListSpectraPlot = None
else:
operationSpectraPlot = "Enable"
self.bufferSpectra("Spectra Plot", "Operation", operationSpectraPlot)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
channelListSpectraPlot = None
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListSpectraPlot = str(value)[1:-1]
self.bufferSpectra("Spectra Plot", "Channel List", channelListSpectraPlot)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
freq_vel = value
self.bufferSpectra("Spectra Plot", "Freq/Vel", freq_vel)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
heightsrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fheightsrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
heightsrange = value
self.bufferSpectra("Spectra Plot", "Height Range", heightsrange)
value1 = opObj.getParameterObj(parameterName='zmin')
if value1 == None:
dBrange = None
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='zmax')
if value2 == None:
fdBrange = None
else:
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
dbrange = value
self.bufferSpectra("Spectra Plot", "dB Range", dbrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectra("Spectra Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectra("Spectra Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="Spectra Plot")
# self.saveFTPvalues(opObj)
opObj = puObj.getOperationObj(name='CrossSpectraPlot')
# opObj = puObj.getOpObjfromParamValue(value="CrossSpectraPlot")
if opObj == None:
self.specGraphCebCrossSpectraplot.setCheckState(0)
operationCrossSpectraPlot = "Disabled"
channelList = None
freq_vel = None
heightsrange = None
else:
operationCrossSpectraPlot = "Enable"
self.specGraphCebCrossSpectraplot.setCheckState(QtCore.Qt.Checked)
self.bufferSpectra("Cross Spectra Plot", "Operation", operationCrossSpectraPlot)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
freq_vel = value
self.bufferSpectra("Cross Spectra Plot", "Freq/Vel", freq_vel)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
heightsrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fheightsrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
heightsrange = value
self.bufferSpectra("Cross Spectra Plot", "Height Range", heightsrange)
value1 = opObj.getParameterObj(parameterName='zmin')
if value1 == None:
dBrange = None
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='zmax')
if value2 == None:
fdBrange = None
else:
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
dbrange = value
self.bufferSpectra("Cross Spectra Plot", "dB Range", dbrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectra("Cross Spectra Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectra("Cross Spectra Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="Cross Spectra Plot")
# self.saveFTPvalues(opObj)
opObj = puObj.getOperationObj(name='RTIPlot')
# opObj = puObj.getOpObjfromParamValue(value="RTIPlot")
if opObj == None:
self.specGraphCebRTIplot.setCheckState(0)
operationRTIPlot = "Disabled"
channelList = None
freq_vel = None
heightsrange = None
else:
operationRTIPlot = "Enable"
self.specGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
self.bufferSpectra("RTI Plot", "Operation", operationRTIPlot)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
channelListRTIPlot = None
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListRTIPlot = str(value)[1:-1]
self.bufferSpectra("RTI Plot", "Channel List", channelListRTIPlot)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
tmintmax = value
self.bufferSpectra("RTI Plot", "Tmin,Tmax", tmintmax)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
timerange = None
else:
value = opObj.getParameterValue(parameterName='timerange')
timerange = str(value)
self.bufferSpectra("RTI Plot", "Time Range", timerange)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
heightsrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fheightsrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
heightsrange = value
self.bufferSpectra("RTI Plot", "Height Range", heightsrange)
value1 = opObj.getParameterObj(parameterName='zmin')
if value1 == None:
dBrange = None
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='zmax')
if value2 == None:
fdBrange = None
else:
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
dbrange = value
self.bufferSpectra("RTI Plot", "dB Range", dbrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectra("RTI Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectra("RTI Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="RTI Plot")
# self.saveFTPvalues(opObj)
opObj = puObj.getOperationObj(name='CoherenceMap')
# opObj = puObj.getOpObjfromParamValue(value="CoherenceMap")
if opObj == None:
self.specGraphCebCoherencmap.setCheckState(0)
operationCoherenceMap = "Disabled"
channelList = None
freq_vel = None
heightsrange = None
else:
operationCoherenceMap = "Enable"
self.specGraphCebCoherencmap.setCheckState(QtCore.Qt.Checked)
self.bufferSpectra("Coherence Map Plot", "Operation", operationCoherenceMap)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
channelListRTIPlot = None
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListRTIPlot = str(value)[1:-1]
self.bufferSpectra("Coherence Map Plot", "Channel List", channelListRTIPlot)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
tmintmax = value
self.bufferSpectra("Coherence Map Plot", "Tmin,Tmax", tmintmax)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
timerange = None
else:
value = opObj.getParameterValue(parameterName='timerange')
timerange = str(value)
self.bufferSpectra("Coherence Map Plot", "Time Range", timerange)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
heightsrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fheightsrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
heightsrange = value
self.bufferSpectra("Coherence Map Plot", "Height Range", heightsrange)
value1 = opObj.getParameterObj(parameterName='zmin')
if value1 == None:
dBrange = None
else:
value1 = opObj.getParameterValue(parameterName='zmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='zmax')
if value2 == None:
fdBrange = None
else:
value2 = opObj.getParameterValue(parameterName='zmax')
value2 = str(value2)
value = value1 + "," + value2
dbrange = value
self.bufferSpectra("Coherence Map Plot", "Magnitud", dbrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectra("Coherence Map Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectra("Coherence Map Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="Coherence Map Plot")
# self.saveFTPvalues(opObj)
opObj = puObj.getOperationObj(name='PowerProfilePlot')
# opObj = puObj.getOpObjfromParamValue(value="PowerProfilePlot")
if opObj == None:
self.specGraphPowerprofile.setCheckState(0)
operationPowerProfilePlot = "Disabled"
channelList = None
freq_vel = None
heightsrange = None
else:
operationPowerProfilePlot = "Enable"
self.specGraphPowerprofile.setCheckState(QtCore.Qt.Checked)
self.bufferSpectra("PowerProfile Plot", "Operation", operationPowerProfilePlot)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
channelListSpectraPlot = None
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListSpectraPlot = str(value)[1:-1]
self.bufferSpectra("PowerProfile Plot", "Channel List", channelListSpectraPlot)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
dbrange = value
self.bufferSpectra("PowerProfile Plot", "dbRange", dbrange)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
heightsrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fheightsrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
heightsrange = value
self.bufferSpectra("PowerProfile Plot", "Height Range", heightsrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectra("PowerProfile Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectra("PowerProfile Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="PowerProfile Plot")
# self.saveFTPvalues(opObj)
# noise
opObj = puObj.getOperationObj(name='Noise')
# opObj = puObj.getOpObjfromParamValue(value="Noise")
if opObj == None:
self.specGraphCebRTInoise.setCheckState(0)
operationRTINoise = "Disabled"
channelList = None
freq_vel = None
dbRange = None
else:
operationRTINoise = "Enable"
self.specGraphCebRTInoise.setCheckState(QtCore.Qt.Checked)
self.bufferSpectra("Noise Plot", "Operation", operationRTINoise)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
channelListRTINoise = None
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListRTINoise = str(value)[1:-1]
self.bufferSpectra("Noise Plot", "Channel List", channelListRTINoise)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
tmintmax = value
self.bufferSpectra("Noise Plot", "Tmin,Tmax", tmintmax)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
timerange = None
else:
value = opObj.getParameterValue(parameterName='timerange')
timerange = str(value)
self.bufferSpectra("Noise Plot", "Time Range", timerange)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
DBrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fdBrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
dBrange = value
self.bufferSpectra("Noise Plot", "dB Range", dBrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectra("Noise Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectra("Noise Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="Noise Plot")
# self.saveFTPvalues(opObj)
# outputSpectraWrite
opObj = puObj.getOperationObj(name='SpectraWriter')
if opObj == None:
pass
else:
operation = 'Enabled'
self.bufferSpectra("Output", "Operation", operation)
value = opObj.getParameterObj(parameterName='path')
if value == None:
path = None
else:
value = opObj.getParameterValue(parameterName='path')
path = str(value)
self.bufferSpectra("Output", "Path", path)
value = opObj.getParameterObj(parameterName='blocksPerFile')
if value == None:
blocksperfile = None
else:
value = opObj.getParameterValue(parameterName='blocksPerFile')
blocksperfile = str(value)
self.bufferSpectra("Output", "BlocksPerFile", blocksperfile)
value = opObj.getParameterObj(parameterName='profilesPerBlock')
if value == None:
profilesPerBlock = None
else:
value = opObj.getParameterValue(parameterName='profilesPerBlock')
profilesPerBlock = str(value)
self.bufferSpectra("Output", "ProfilesPerBlock", profilesPerBlock)
projectObj = self.getSelectedProjectObj()
ftpProcUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
if ftpProcUnitConfObj:
opObj = ftpProcUnitConfObj.getOperationObj(name='run')
server = opObj.getParameterValue(parameterName='server')
folder = opObj.getParameterValue(parameterName='remotefolder')
username = opObj.getParameterValue(parameterName='username')
password = opObj.getParameterValue(parameterName='password')
ftp_wei = opObj.getParameterValue(parameterName='ftp_wei')
exp_code = opObj.getParameterValue(parameterName='exp_code')
sub_exp_code = opObj.getParameterValue(parameterName='sub_exp_code')
plot_pos = opObj.getParameterValue(parameterName='plot_pos')
localfolder = opObj.getParameterValue(parameterName='localfolder')
self.bufferSpectra("FTP", "Server", server)
self.bufferSpectra("FTP", "Remote folder", folder)
self.bufferSpectra("FTP", "Local folder", localfolder)
self.bufferSpectra("FTP", "Username", username)
self.bufferSpectra("FTP", "Password", '*'*len(password))
self.bufferSpectra("FTP", "Ftp_wei", ftp_wei)
self.bufferSpectra("FTP", "Exp_code", exp_code)
self.bufferSpectra("FTP", "Sub_exp_code", sub_exp_code)
self.bufferSpectra("FTP", "Plot_pos", plot_pos)
# set model PU Properties
self.propertiesModel = TreeModel()
self.propertiesModel.showProperties(self.specProperCaracteristica, self.specProperPrincipal, self.specProperDescripcion)
self.treeProjectProperties.setModel(self.propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.allColumnsShowFocus()
self.treeProjectProperties.resizeColumnToContents(0)
self.treeProjectProperties.resizeColumnToContents(1)
self.specProperCaracteristica = []
self.specProperDescripcion = []
self.specProperPrincipal = []
def bufferSpectraHeis(self, caracteristica, principal, description):
self.specHeisProperCaracteristica.append(caracteristica)
self.specHeisProperPrincipal.append(principal)
self.specHeisProperDescripcion.append(description)
return self.specHeisProperCaracteristica, self.specHeisProperPrincipal, self.specHeisProperDescripcion
def showPUSpectraHeisProperties(self, puObj):
type = puObj.name
self.bufferSpectraHeis("Processing Unit", "Type", type)
opObj = puObj.getOperationObj(name="IncohInt4SpectraHeis")
if opObj == None:
incoherentintegration = None
else:
value = opObj.getParameterValue(parameterName='timeInterval')
value = float(value)
incoherentintegration = str(value)
self.bufferSpectraHeis("Processing Unit", "Incoherent Integration", incoherentintegration)
# spectraheis graph
opObj = puObj.getOperationObj(name='SpectraHeisScope')
# opObj = puObj.getOpObjfromParamValue(value="SpectraHeisScope")
if opObj == None:
self.specHeisGraphCebSpectraplot.setCheckState(0)
operationSpectraHeisPlot = "Disabled"
xmin_xmax = None
ymin_ymax = None
channelListSpectraPlot = None
else:
operationSpectraHeisPlot = "Enable"
self.specHeisGraphCebSpectraplot.setCheckState(QtCore.Qt.Checked)
self.bufferSpectraHeis("SpectraHeis Plot", "Operation", operationSpectraHeisPlot)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
channelListSpectraPlot = None
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListSpectraPlot = str(value)[1:-1]
self.bufferSpectraHeis("SpectraHeis Plot", "Channel List", channelListSpectraPlot)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
xmin_xmax = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
xmin_xmax = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
xmin_xmax = value
self.bufferSpectraHeis("SpectraHeis Plot", "Xmin-Xmax", xmin_xmax)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
ymin_ymax = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
ymin_ymax = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
ymin_ymax = value
self.bufferSpectraHeis("SpectraHeis Plot", "Ymin-Ymax", ymin_ymax)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectraHeis("SpectraHeis Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectraHeis("SpectraHeis Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="SpectraHeis Plot")
# self.saveFTPvalues(opObj)
opObj = puObj.getOperationObj(name='RTIfromSpectraHeis')
# opObj = puObj.getOpObjfromParamValue(value="RTIfromSpectraHeis")
if opObj == None:
self.specHeisGraphCebRTIplot.setCheckState(0)
operationRTIPlot = "Disabled"
channelList = None
freq_vel = None
heightsrange = None
else:
operationRTIPlot = "Enable"
self.specHeisGraphCebRTIplot.setCheckState(QtCore.Qt.Checked)
self.bufferSpectraHeis("RTIHeis Plot", "Operation", operationRTIPlot)
parmObj = opObj.getParameterObj(parameterName='channelList')
if parmObj == None:
channelListRTIPlot = None
else:
value = opObj.getParameterValue(parameterName='channelList')
channelListRTIPlot = str(value)[1:-1]
self.bufferSpectraHeis("RTIHeis Plot", "Channel List", channelListRTIPlot)
value1 = opObj.getParameterObj(parameterName='xmin')
if value1 == None:
freq_vel = None
else:
value1 = opObj.getParameterValue(parameterName='xmin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='xmax')
if value2 == None:
freq_vel = None
else:
value2 = opObj.getParameterValue(parameterName='xmax')
value2 = str(value2)
value = value1 + "," + value2
tmintmax = value
self.bufferSpectraHeis("RTIHeis Plot", "Tmin,Tmax", tmintmax)
parmObj = opObj.getParameterObj(parameterName='timerange')
if parmObj == None:
timerange = None
else:
value = opObj.getParameterValue(parameterName='timerange')
timerange = str(value)
self.bufferSpectraHeis("RTIHeis Plot", "Time Range", timerange)
value1 = opObj.getParameterObj(parameterName='ymin')
if value1 == None:
heightsrange = None
else:
value1 = opObj.getParameterValue(parameterName='ymin')
value1 = str(value1)
value2 = opObj.getParameterObj(parameterName='ymax')
if value2 == None:
fheightsrange = None
else:
value2 = opObj.getParameterValue(parameterName='ymax')
value2 = str(value2)
value = value1 + "," + value2
heightsrange = value
self.bufferSpectraHeis("RTIHeis Plot", "Ymin-Ymax", heightsrange)
parmObj = opObj.getParameterObj(parameterName="figpath")
if parmObj == None:
path = None
else:
path = opObj.getParameterValue(parameterName='figpath')
self.bufferSpectraHeis("RTIHeis Plot", "Save Path", path)
parmObj = opObj.getParameterObj(parameterName="ftp")
if parmObj == None:
status = 'disable'
else:
status = 'enable'
self.bufferSpectraHeis("RTIHeis Plot", "FTP", status)
self.showWr_Period(puObj, opObj, nameplotop="RTIHeis Plot")
# self.saveFTPvalues(opObj)
# outputSpectraHeisWrite
opObj = puObj.getOperationObj(name='FitsWriter')
if opObj == None:
pass
else:
operation = 'Enabled'
self.bufferSpectraHeis("Output", "Operation", operation)
value = opObj.getParameterObj(parameterName='path')
if value == None:
path = None
else:
value = opObj.getParameterValue(parameterName='path')
path = str(value)
self.bufferSpectraHeis("Output", "Path", path)
value = opObj.getParameterObj(parameterName='dataBlocksPerFile')
if value == None:
blocksperfile = None
else:
value = opObj.getParameterValue(parameterName='dataBlocksPerFile')
blocksperfile = str(value)
self.bufferSpectraHeis("Output", "BlocksPerFile", blocksperfile)
value = opObj.getParameterObj(parameterName='metadatafile')
if value == None:
metadata = None
else:
value = opObj.getParameterValue(parameterName='metadatafile')
metadata = str(value)
self.bufferSpectraHeis("Output", "Metadata", metadata)
projectObj = self.getSelectedProjectObj()
ftpProcUnitConfObj = projectObj.getProcUnitObjByName(name="SendToServer")
if ftpProcUnitConfObj:
opObj = ftpProcUnitConfObj.getOperationObj(name='run')
server = opObj.getParameterValue(parameterName='server')
folder = opObj.getParameterValue(parameterName='folder')
username = opObj.getParameterValue(parameterName='username')
password = opObj.getParameterValue(parameterName='password')
ftp_wei = opObj.getParameterValue(parameterName='ftp_wei')
exp_code = opObj.getParameterValue(parameterName='exp_code')
sub_exp_code = opObj.getParameterValue(parameterName='sub_exp_code')
plot_pos = opObj.getParameterValue(parameterName='plot_pos')
localfolder = opObj.getParameterValue(parameterName='localfolder')
self.bufferSpectraHeis("FTP", "Server", server)
self.bufferSpectraHeis("FTP", "Remote folder", folder)
self.bufferSpectraHeis("FTP", "Local folder", localfolder)
self.bufferSpectraHeis("FTP", "Username", username)
self.bufferSpectraHeis("FTP", "Password", '*'*len(password))
self.bufferSpectraHeis("FTP", "Ftp_wei", ftp_wei)
self.bufferSpectraHeis("FTP", "Exp_code", exp_code)
self.bufferSpectraHeis("FTP", "Sub_exp_code", sub_exp_code)
self.bufferSpectraHeis("FTP", "Plot_pos", plot_pos)
# set model PU Properties
self.propertiesModel = TreeModel()
self.propertiesModel.showProperties(self.specHeisProperCaracteristica, self.specHeisProperPrincipal, self.specHeisProperDescripcion)
self.treeProjectProperties.setModel(self.propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.allColumnsShowFocus()
self.treeProjectProperties.resizeColumnToContents(0)
self.treeProjectProperties.resizeColumnToContents(1)
self.specHeisProperCaracteristica = []
self.specHeisProperDescripcion = []
self.specHeisProperPrincipal = []
def showWr_Period(self, puObj, opObj, nameplotop):
parmObj = opObj.getParameterObj(parameterName='wr_period')
if parmObj == None:
wr_period = None
else:
value = opObj.getParameterValue(parameterName='wr_period')
wr_period = str(value)
if puObj.datatype == "Spectra":
self.bufferSpectra(nameplotop, "wr_period", wr_period)
if puObj.datatype == "SpectraHeis":
self.bufferSpectraHeis(nameplotop, "wr_period", wr_period)
def saveFTPvalues(self, opObj):
parmObj = opObj.getParameterObj(parameterName="server")
if parmObj == None:
server = 'jro-app.igp.gob.pe'
else:
server = opObj.getParameterValue(parameterName='server')
parmObj = opObj.getParameterObj(parameterName="folder")
if parmObj == None:
folder = '/home/wmaster/graficos'
else:
folder = opObj.getParameterValue(parameterName='folder')
parmObj = opObj.getParameterObj(parameterName="username")
if parmObj == None:
username = 'wmaster'
else:
username = opObj.getParameterValue(parameterName='username')
parmObj = opObj.getParameterObj(parameterName="password")
if parmObj == None:
password = 'mst2010vhf'
else:
password = opObj.getParameterValue(parameterName='password')
parmObj = opObj.getParameterObj(parameterName="ftp_wei")
if parmObj == None:
ftp_wei = '0'
else:
ftp_wei = opObj.getParameterValue(parameterName='ftp_wei')
parmObj = opObj.getParameterObj(parameterName="exp_code")
if parmObj == None:
exp_code = '0'
else:
exp_code = opObj.getParameterValue(parameterName='exp_code')
parmObj = opObj.getParameterObj(parameterName="sub_exp_code")
if parmObj == None:
sub_exp_code = '0'
else:
sub_exp_code = opObj.getParameterValue(parameterName='sub_exp_code')
parmObj = opObj.getParameterObj(parameterName="plot_pos")
if parmObj == None:
plot_pos = '0'
else:
plot_pos = opObj.getParameterValue(parameterName='plot_pos')
parmObj = opObj.getParameterObj(parameterName="localfolder")
if parmObj == None:
localfolder = None
else:
localfolder = opObj.getParameterValue(parameterName='localfolder')
parmObj = opObj.getParameterObj(parameterName="extension")
if parmObj == None:
extension = None
else:
extension = opObj.getParameterValue(parameterName='extension')
self.temporalFTP.save(server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos,
localfolder=localfolder,
extension=extension)
def addProject2ProjectExplorer(self, id, name):
itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
self.parentItem = self.projectExplorerModel.invisibleRootItem()
self.parentItem.appendRow(itemTree)
self.parentItem = itemTree
self.projectExplorerTree.setCurrentIndex(self.parentItem.index())
self.selectedItemTree = itemTree
self.__itemTreeDict[id] = itemTree
def addPU2ProjectExplorer(self, id, name):
# id1= round(int(id)/10.)*10
# id= int(id)
# id=id-id1
itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
self.parentItem = self.selectedItemTree
self.parentItem.appendRow(itemTree)
self.projectExplorerTree.expandAll()
self.parentItem = itemTree
self.projectExplorerTree.setCurrentIndex(self.parentItem.index())
self.selectedItemTree = itemTree
self.__itemTreeDict[id] = itemTree
def addPU2PELoadXML(self, id, name, inputId):
itemTree = QtGui.QStandardItem(QtCore.QString(str(name)))
if self.__itemTreeDict.has_key(inputId):
self.parentItem = self.__itemTreeDict[inputId]
else:
self.parentItem = self.__itemTreeDict[inputId[0]]
self.parentItem.appendRow(itemTree)
self.projectExplorerTree.expandAll()
self.parentItem = itemTree
self.projectExplorerTree.setCurrentIndex(self.parentItem.index())
self.selectedItemTree = itemTree
self.__itemTreeDict[id] = itemTree
# print "stop"
def getSelectedProjectObj(self):
"""
Return the current project object selected. If a processing unit is
actually selected this function returns associated project.
None if any project or processing unit is selected
"""
for key in self.__itemTreeDict.keys():
if self.__itemTreeDict[key] != self.selectedItemTree:
continue
if self.__projectObjDict.has_key(key):
projectObj = self.__projectObjDict[key]
return projectObj
puObj = self.__puObjDict[key]
if puObj.parentId == None:
projectId = puObj.getId()[0]
else:
projectId = puObj.parentId
projectObj = self.__projectObjDict[projectId]
return projectObj
return None
def getSelectedItemObj(self):
"""
Return the current project or processing unit object selected
None if any project or processing unit is selected
"""
for key in self.__itemTreeDict.keys():
if self.__itemTreeDict[key] != self.selectedItemTree:
continue
if self.__projectObjDict.has_key(key) == True:
fatherObj = self.__projectObjDict[key]
else:
fatherObj = self.__puObjDict[key]
return fatherObj
return None
def openProject(self):
self.actionStart.setEnabled(False)
self.actionStarToolbar.setEnabled(False)
self.create = False
self.frame_2.setEnabled(True)
# print self.dir
filename = str(QtGui.QFileDialog.getOpenFileName(self, "Open text file", self.pathWorkSpace, self.tr("Text Files (*.xml)")))
self.console.clear()
projectObjLoad = Project()
try:
projectObjLoad.readXml(filename)
except:
self.console.clear()
self.console.append("The selected xml file could not be loaded ...")
return 0
self.refreshProjectWindow2(projectObjLoad)
self.refreshProjectProperties(projectObjLoad)
# project_name, description = projectObjLoad.name, projectObjLoad.description
id = projectObjLoad.id
self.__projectObjDict[id] = projectObjLoad
# # Project Properties
# datatype, data_path, startDate, endDate, startTime, endTime , online , delay, walk, set = self.showProjectProperties(projectObjLoad)
# # show ProjectView
self.addProject2ProjectExplorer(id=id, name=projectObjLoad.name)
# self.refreshProjectWindow(project_name, description, datatype, data_path, startDate, endDate, startTime, endTime, online, delay, set)
#
# if datatype == "Voltage":
# ext = '.r'
# self.specOpProfiles.setEnabled(True)
# self.specOpippFactor.setEnabled(True)
# elif datatype == "Spectra":
# ext = '.pdata'
# self.specOpProfiles.setEnabled(False)
# self.specOpippFactor.setEnabled(False)
# elif datatype == "Fits":
# ext = '.fits'
# elif datatype == "USRP":
# ext = '.hdf5'
#
# if online == 0:
# self.loadDays(data_path, ext, walk)
# else:
# self.proComStartDate.setEnabled(False)
# self.proComEndDate.setEnabled(False)
# self.proStartTime.setEnabled(False)
# self.proEndTime.setEnabled(False)
# self.frame_2.setEnabled(True)
self.tabWidgetProject.setEnabled(True)
self.tabWidgetProject.setCurrentWidget(self.tabProject)
# Disable tabProject after finish the creation
self.tabProject.setEnabled(True)
puObjorderList = OrderedDict(sorted(projectObjLoad.procUnitConfObjDict.items(), key=lambda x: x[0]))
for puId, puObj in puObjorderList.items():
# print "%s %s %s %s %s" %(puObj.datatype, inputId, puObj.inputId, puObj.getId(), puObj.parentId)
self.__puObjDict[puId] = puObj
if puObj.inputId != '0':
self.addPU2PELoadXML(id=puId , name=puObj.datatype , inputId=puObj.inputId)
if puObj.datatype == "Voltage":
self.refreshPUWindow(puObj.datatype, puObj)
self.refreshPUProperties(puObj)
self.showtabPUCreated(datatype=puObj.datatype)
if puObj.datatype == "Spectra":
self.refreshPUWindow(puObj.datatype, puObj)
self.refreshPUProperties(puObj)
self.showtabPUCreated(datatype=puObj.datatype)
if puObj.datatype == "SpectraHeis":
self.refreshPUWindow(puObj.datatype, puObj)
self.refreshPUProperties(puObj)
self.showtabPUCreated(datatype=puObj.datatype)
if puObj.name == "SendToServer":
self.__ftpProcUnitAdded = True
self.__ftpProcUnitId = puObj.getId()
opObj = puObj.getOperationObj(name="run")
self.saveFTPvalues(opObj)
# self.console.clear()
self.console.append("The selected xml file has been loaded successfully")
# self.refreshPUWindow(datatype=datatype,puObj=puObj)
self.actionStart.setEnabled(True)
self.actionStarToolbar.setEnabled(True)
def on_comm_updating_timer(self):
# Verifica si algun proceso ha sido inicializado y sigue ejecutandose
if not self.__initialized:
return
if not self.controllerObj.isAlive():
self.stopProject()
def playProject(self, ext=".xml"):
projectObj = self.getSelectedProjectObj()
if not projectObj:
print "Please select a project before pressing PLAY"
return
filename = os.path.join(str(self.pathWorkSpace),
"%s%s%s" %(str(projectObj.name), str(projectObj.id), ext)
)
self.console.clear()
filename = self.saveProject()
# projectObj.writeXml(filename)
if filename == None:
self.console.append("Process did not initialize.")
return
self.actionStart.setEnabled(False)
self.actionPause.setEnabled(True)
self.actionStop.setEnabled(True)
self.actionStarToolbar.setEnabled(False)
self.actionPauseToolbar.setEnabled(True)
self.actionStopToolbar.setEnabled(True)
self.console.append("Please Wait...")
# self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PROCESS, filename))
self.controllerObj = ControllerThread(filename)
self.controllerObj.start()
sleep(0.5)
self.__initialized = True
def stopProject(self):
self.__initialized = False
# self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.STOP, True))
self.controllerObj.stop()
self.actionStart.setEnabled(True)
self.actionPause.setEnabled(False)
self.actionStop.setEnabled(False)
self.actionStarToolbar.setEnabled(True)
self.actionPauseToolbar.setEnabled(False)
self.actionStopToolbar.setEnabled(False)
self.restorePauseIcon()
def pauseProject(self):
# self.commCtrlPThread.cmd_q.put(ProcessCommand(ProcessCommand.PAUSE, data=True))
self.controllerObj.pause()
self.actionStart.setEnabled(False)
self.actionPause.setEnabled(True)
self.actionStop.setEnabled(True)
self.actionStarToolbar.setEnabled(False)
self.actionPauseToolbar.setEnabled(True)
self.actionStopToolbar.setEnabled(True)
def saveProject(self):
self.actionStart.setEnabled(False)
self.actionStarToolbar.setEnabled(False)
sts = True
puObj = self.getSelectedItemObj()
if puObj != None:
if puObj.name == 'VoltageProc':
sts = self.on_volOpOk_clicked()
if puObj.name == 'SpectraProc':
sts = self.on_specOpOk_clicked()
if puObj.name == 'SpectraHeisProc':
sts = self.on_specHeisOpOk_clicked()
if not sts:
return None
projectObj = self.getSelectedProjectObj()
puObjorderList = OrderedDict(sorted(projectObj.procUnitConfObjDict.items(), key=lambda x: x[0]))
for inputId, puObj in puObjorderList.items():
# print puObj.datatype, puObj.inputId,puObj.getId(),puObj.parentId
if puObj.name == "VoltageProc":
self.refreshID(puObj)
if puObj.name == "SpectraProc":
self.refreshID(puObj)
if puObj.name == "SpectraHeisProc":
self.refreshID(puObj)
filename = os.path.join(str(self.pathWorkSpace),
"%s%s%s" %(str(projectObj.name), str(projectObj.id), '.xml')
)
projectObj.writeXml(filename)
self.console.append("Now, you can press the Start Icon on the toolbar")
self.actionStart.setEnabled(True)
self.actionStarToolbar.setEnabled(True)
return filename
def removeItemTreeFromProject(self):
"""
Metodo para eliminar el proyecto en el dictionario de proyectos y en el dictionario de vista de arbol
"""
for key in self.__itemTreeDict.keys():
#Check again because an item can delete multiple items (childs)
if key not in self.__itemTreeDict.keys():
continue
if self.__itemTreeDict[key] != self.selectedItemTree:
continue
if self.__projectObjDict.has_key(key) == True:
del self.__projectObjDict[key]
del self.__itemTreeDict[key]
else:
puObj = self.__puObjDict[key]
idProjectParent = puObj.parentId
projectObj = self.__projectObjDict[idProjectParent]
del self.__puObjDict[key]
del self.__itemTreeDict[key]
del projectObj.procUnitConfObjDict[key]
for key in projectObj.procUnitConfObjDict.keys():
if projectObj.procUnitConfObjDict[key].inputId != puObj.getId():
continue
del self.__puObjDict[projectObj.procUnitConfObjDict[key].getId()]
del self.__itemTreeDict[projectObj.procUnitConfObjDict[key].getId()]
del projectObj.procUnitConfObjDict[key]
# print projectObj.procUnitConfObjDict
# print self.__itemTreeDict,self.__projectObjDict,self.__puObjDict
def getParmsFromProjectWindow(self):
"""
Return Inputs Project:
- id
- project_name
- datatype
- ext
- data_path
- readmode
- delay
- set
- walk
"""
project_name = str(self.proName.text())
try:
name = str(self.proName.text())
except:
self.console.clear()
self.console.append("Please Write a name")
return 0
desc = str(self.proDescription.toPlainText())
datatype = str(self.proComDataType.currentText())
data_path = str(self.proDataPath.text())
if not os.path.exists(data_path):
self.proOk.setEnabled(False)
self.console.clear()
self.console.append("Write a correct a path")
return
online = int(self.online)
if online == 0:
delay = 0
set = 0
else:
delay = self.proDelay.text()
try:
delay = int(self.proDelay.text())
except:
self.console.clear()
self.console.append("Please Write a number for delay")
return 0
set = self.proSet.text()
try:
set = int(self.proSet.text())
except:
self.console.clear()
set = None
walk = int(self.walk)
starDate = str(self.proComStartDate.currentText())
endDate = str(self.proComEndDate.currentText())
reloj1 = self.proStartTime.time()
reloj2 = self.proEndTime.time()
startTime = str(reloj1.hour()) + ":" + str(reloj1.minute()) + ":" + str(reloj1.second())
endTime = str(reloj2.hour()) + ":" + str(reloj2.minute()) + ":" + str(reloj2.second())
return project_name, desc, datatype, data_path, starDate, endDate, startTime, endTime, online, delay, walk , set
def removefromtree(self, row):
self.parentItem.removeRow(row)
def setInputsProject_View(self):
self.tabWidgetProject.setEnabled(True)
self.tabWidgetProject.setCurrentWidget(self.tabProject)
self.tabProject.setEnabled(True)
self.frame_2.setEnabled(False)
self.proName.clear()
self.proName.setFocus()
self.proName.setSelection(0, 0)
self.proName.setCursorPosition(0)
self.proDataType.setText('.r')
self.proDataPath.clear()
self.proComDataType.clear()
self.proComDataType.addItem("Voltage")
self.proComDataType.addItem("Spectra")
self.proComDataType.addItem("Fits")
self.proComDataType.addItem("USRP")
self.proComStartDate.clear()
self.proComEndDate.clear()
startTime = "00:00:00"
endTime = "23:59:59"
starlist = startTime.split(":")
endlist = endTime.split(":")
self.proDelay.setText("0")
self.proSet.setText("0")
self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
self.proStartTime.setTime(self.time)
self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
self.proEndTime.setTime(self.time)
self.proDescription.clear()
self.proOk.setEnabled(False)
self.console.clear()
# self.console.append("Please, Write a name Project")
# self.console.append("Introduce Project Parameters")DC
# self.console.append("Select data type Voltage( .rawdata) or Spectra(.pdata)")
def clearPUWindow(self, datatype):
projectObjView = self.getSelectedProjectObj()
if not projectObjView:
return
puObj = self.getSelectedItemObj()
inputId = puObj.getInputId()
inputPUObj = projectObjView.getProcUnitObj(inputId)
if datatype == 'Voltage':
self.volOpComChannels.setEnabled(False)
self.volOpComHeights.setEnabled(False)
self.volOpFilter.setEnabled(False)
self.volOpComProfile.setEnabled(False)
self.volOpComCode.setEnabled(False)
self.volOpCohInt.setEnabled(False)
self.volOpChannel.setEnabled(False)
self.volOpHeights.setEnabled(False)
self.volOpProfile.setEnabled(False)
self.volOpRadarfrequency.setEnabled(False)
self.volOpCebChannels.setCheckState(0)
self.volOpCebRadarfrequency.setCheckState(0)
self.volOpCebHeights.setCheckState(0)
self.volOpCebFilter.setCheckState(0)
self.volOpCebProfile.setCheckState(0)
self.volOpCebDecodification.setCheckState(0)
self.volOpCebCohInt.setCheckState(0)
self.volOpChannel.clear()
self.volOpHeights.clear()
self.volOpProfile.clear()
self.volOpFilter.clear()
self.volOpCohInt.clear()
self.volOpRadarfrequency.clear()
if datatype == 'Spectra':
if inputPUObj.datatype == 'Spectra':
self.specOpnFFTpoints.setEnabled(False)
self.specOpProfiles.setEnabled(False)
self.specOpippFactor.setEnabled(False)
else:
self.specOpnFFTpoints.setEnabled(True)
self.specOpProfiles.setEnabled(True)
self.specOpippFactor.setEnabled(True)
self.specOpCebCrossSpectra.setCheckState(0)
self.specOpCebChannel.setCheckState(0)
self.specOpCebHeights.setCheckState(0)
self.specOpCebIncoherent.setCheckState(0)
self.specOpCebRemoveDC.setCheckState(0)
self.specOpCebRemoveInt.setCheckState(0)
self.specOpCebgetNoise.setCheckState(0)
self.specOpCebRadarfrequency.setCheckState(0)
self.specOpRadarfrequency.setEnabled(False)
self.specOppairsList.setEnabled(False)
self.specOpChannel.setEnabled(False)
self.specOpHeights.setEnabled(False)
self.specOpIncoherent.setEnabled(False)
self.specOpgetNoise.setEnabled(False)
self.specOpRadarfrequency.clear()
self.specOpnFFTpoints.clear()
self.specOpProfiles.clear()
self.specOpippFactor.clear
self.specOppairsList.clear()
self.specOpChannel.clear()
self.specOpHeights.clear()
self.specOpIncoherent.clear()
self.specOpgetNoise.clear()
self.specGraphCebSpectraplot.setCheckState(0)
self.specGraphCebCrossSpectraplot.setCheckState(0)
self.specGraphCebRTIplot.setCheckState(0)
self.specGraphCebRTInoise.setCheckState(0)
self.specGraphCebCoherencmap.setCheckState(0)
self.specGraphPowerprofile.setCheckState(0)
self.specGraphSaveSpectra.setCheckState(0)
self.specGraphSaveCross.setCheckState(0)
self.specGraphSaveRTIplot.setCheckState(0)
self.specGraphSaveRTInoise.setCheckState(0)
self.specGraphSaveCoherencemap.setCheckState(0)
self.specGraphSavePowerprofile.setCheckState(0)
self.specGraphftpRTIplot.setCheckState(0)
self.specGraphftpRTInoise.setCheckState(0)
self.specGraphftpCoherencemap.setCheckState(0)
self.specGraphPath.clear()
self.specGraphPrefix.clear()
self.specGgraphftpratio.clear()
self.specGgraphChannelList.clear()
self.specGgraphFreq.clear()
self.specGgraphHeight.clear()
self.specGgraphDbsrange.clear()
self.specGgraphmagnitud.clear()
self.specGgraphTminTmax.clear()
self.specGgraphTimeRange.clear()
if datatype == 'SpectraHeis':
self.specHeisOpCebIncoherent.setCheckState(0)
self.specHeisOpIncoherent.setEnabled(False)
self.specHeisOpIncoherent.clear()
self.specHeisGraphCebSpectraplot.setCheckState(0)
self.specHeisGraphCebRTIplot.setCheckState(0)
self.specHeisGraphSaveSpectra.setCheckState(0)
self.specHeisGraphSaveRTIplot.setCheckState(0)
self.specHeisGraphftpSpectra.setCheckState(0)
self.specHeisGraphftpRTIplot.setCheckState(0)
self.specHeisGraphPath.clear()
self.specHeisGraphPrefix.clear()
self.specHeisGgraphChannelList.clear()
self.specHeisGgraphXminXmax.clear()
self.specHeisGgraphYminYmax.clear()
self.specHeisGgraphTminTmax.clear()
self.specHeisGgraphTimeRange.clear()
self.specHeisGgraphftpratio.clear()
def showtabPUCreated(self, datatype):
if datatype == "Voltage":
self.tabVoltage.setEnabled(True)
self.tabProject.setEnabled(False)
self.tabSpectra.setEnabled(False)
self.tabCorrelation.setEnabled(False)
self.tabSpectraHeis.setEnabled(False)
self.tabWidgetProject.setCurrentWidget(self.tabVoltage)
if datatype == "Spectra":
self.tabVoltage.setEnabled(False)
self.tabProject.setEnabled(False)
self.tabSpectra.setEnabled(True)
self.tabCorrelation.setEnabled(False)
self.tabSpectraHeis.setEnabled(False)
self.tabWidgetProject.setCurrentWidget(self.tabSpectra)
if datatype == "SpectraHeis":
self.tabVoltage.setEnabled(False)
self.tabProject.setEnabled(False)
self.tabSpectra.setEnabled(False)
self.tabCorrelation.setEnabled(False)
self.tabSpectraHeis.setEnabled(True)
self.tabWidgetProject.setCurrentWidget(self.tabSpectraHeis)
def checkInputsProject(self):
"""
Check Inputs Project:
- project_name
- datatype
- ext
- data_path
- readmode
- delay
- set
- walk
"""
parms_ok = True
project_name = str(self.proName.text())
if project_name == '' or project_name == None:
outputstr = "Enter the Project Name"
self.console.append(outputstr)
parms_ok = False
project_name = None
datatype = str(self.proComDataType.currentText())
if not(datatype in ['Voltage', 'Spectra', 'Fits', 'USRP']):
outputstr = 'datatype = %s, this must be either Voltage, Spectra, SpectraHeis or USRP' % datatype
self.console.append(outputstr)
parms_ok = False
datatype = None
ext = str(self.proDataType.text())
if not(ext in ['.r', '.pdata', '.fits', '.hdf5']):
outputstr = "extension files must be .r , .pdata, .fits or .hdf5"
self.console.append(outputstr)
parms_ok = False
ext = None
data_path = str(self.proDataPath.text())
if data_path == '':
outputstr = 'Datapath is empty'
self.console.append(outputstr)
parms_ok = False
data_path = None
if data_path != None:
if not os.path.isdir(data_path):
outputstr = 'Datapath:%s does not exists' % data_path
self.console.append(outputstr)
parms_ok = False
data_path = None
read_mode = str(self.proComReadMode.currentText())
if not(read_mode in ['Online', 'Offline']):
outputstr = 'Read Mode: %s, this must be either Online or Offline' % read_mode
self.console.append(outputstr)
parms_ok = False
read_mode = None
try:
delay = int(str(self.proDelay.text()))
except:
outputstr = 'Delay: %s, this must be a integer number' % str(self.proName.text())
self.console.append(outputstr)
parms_ok = False
delay = None
try:
set = int(str(self.proSet.text()))
except:
# outputstr = 'Set: %s, this must be a integer number' % str(self.proName.text())
# self.console.append(outputstr)
# parms_ok = False
set = None
walk_str = str(self.proComWalk.currentText())
if walk_str == 'On Files':
walk = 0
elif walk_str == 'On Folder':
walk = 1
else:
outputstr = 'Walk: %s, this must be either On Files or On Folders' % walk_str
self.console.append(outputstr)
parms_ok = False
walk = None
return parms_ok, project_name, datatype, ext, data_path, read_mode, delay, walk, set
def checkInputsPUSave(self, datatype):
"""
Check Inputs Spectra Save:
- path
- blocks Per File
- sufix
- dataformat
"""
parms_ok = True
if datatype == "Voltage":
output_path = str(self.volOutputPath.text())
blocksperfile = str(self.volOutputblocksperfile.text())
profilesperblock = str(self.volOutputprofilesperblock.text())
if datatype == "Spectra":
output_path = str(self.specOutputPath.text())
blocksperfile = str(self.specOutputblocksperfile.text())
profilesperblock = str(self.specOutputprofileperblock.text())
if datatype == "SpectraHeis":
output_path = str(self.specHeisOutputPath.text())
blocksperfile = str(self.specHeisOutputblocksperfile.text())
metada = str(self.specHeisOutputMetada.text())
if output_path == '':
outputstr = 'Outputpath is empty'
self.console.append(outputstr)
parms_ok = False
data_path = None
if output_path != None:
if not os.path.exists(output_path):
outputstr = 'OutputPath:%s does not exists' % output_path
self.console.append(outputstr)
parms_ok = False
output_path = None
try:
profilesperblock = int(profilesperblock)
except:
if datatype == "Voltage":
outputstr = 'Profilesperblock: %s, this must be a integer number' % str(self.volOutputprofilesperblock.text())
self.console.append(outputstr)
parms_ok = False
profilesperblock = None
elif datatype == "Spectra":
outputstr = 'Profilesperblock: %s, this must be a integer number' % str(self.specOutputprofileperblock.text())
self.console.append(outputstr)
parms_ok = False
profilesperblock = None
try:
blocksperfile = int(blocksperfile)
except:
if datatype == "Voltage":
outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.volOutputblocksperfile.text())
elif datatype == "Spectra":
outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specOutputblocksperfile.text())
elif datatype == "SpectraHeis":
outputstr = 'Blocksperfile: %s, this must be a integer number' % str(self.specHeisOutputblocksperfile.text())
self.console.append(outputstr)
parms_ok = False
blocksperfile = None
if datatype == "SpectraHeis":
if metada == '':
outputstr = 'Choose metada file'
self.console.append(outputstr)
parms_ok = False
if metada != None:
if not os.path.isfile(metada):
outputstr = 'Metadata:%s does not exists' % metada
self.console.append(outputstr)
parms_ok = False
output_path = None
if datatype == "Voltage":
return parms_ok, output_path, blocksperfile, profilesperblock
if datatype == "Spectra":
return parms_ok, output_path, blocksperfile, profilesperblock
if datatype == "SpectraHeis":
return parms_ok, output_path, blocksperfile, metada
def searchData(self, data_path, ext, walk, expLabel=''):
dateList = []
fileList = []
if not os.path.exists(data_path):
return None
if walk == 0:
files = os.listdir(data_path)
for thisFile in files:
thisExt = os.path.splitext(thisFile)[-1]
if thisExt == ext:
fileList.append(thisFile)
for thisFile in fileList:
try:
year = int(thisFile[1:5])
doy = int(thisFile[5:8])
date = datetime.date(year, 1, 1) + datetime.timedelta(doy - 1)
dateformat = date.strftime("%Y/%m/%d")
if dateformat not in dateList:
dateList.append(dateformat)
except:
continue
# REVISION---------------------------------1
if walk == 1:
dirList = os.listdir(data_path)
dirList.sort()
dateList = []
for thisDir in dirList:
if not isRadarPath(thisDir):
self.console.clear()
self.console.append("Please, Choose the Correct Path")
self.proOk.setEnabled(False)
continue
doypath = os.path.join(data_path, thisDir, expLabel)
if not os.path.exists(doypath):
self.console.clear()
self.console.append("Please, Choose the Correct Path")
return
files = os.listdir(doypath)
fileList = []
for thisFile in files:
thisExt = os.path.splitext(thisFile)[-1]
if thisExt != ext:
self.console.clear()
self.console.append("There is no datatype selected in the Path Directory")
self.proOk.setEnabled(False)
continue
if not isRadarFile(thisFile):
self.proOk.setEnabled(False)
self.console.clear()
self.console.append("Please, Choose the Correct Path")
continue
fileList.append(thisFile)
break
if fileList == []:
continue
year = int(thisDir[1:5])
doy = int(thisDir[5:8])
date = datetime.date(year, 1, 1) + datetime.timedelta(doy - 1)
dateformat = date.strftime("%Y/%m/%d")
dateList.append(dateformat)
if len(dateList) > 0:
self.proOk.setEnabled(True)
return dateList
# self.proOk.setEnabled(False)
return None
def findDatafiles(self, data_path, ext, walk, expLabel=''):
dateList = []
fileList = []
if ext == ".r":
from schainpy.model.io.jroIO_base import JRODataReader
readerObj = JRODataReader()
dateList = readerObj.findDatafiles(path=data_path,
expLabel=expLabel,
ext=ext,
walk=walk)
if ext == ".pdata":
from schainpy.model.io.jroIO_base import JRODataReader
readerObj = JRODataReader()
dateList = readerObj.findDatafiles(path=data_path,
expLabel=expLabel,
ext=ext,
walk=walk)
if ext == ".fits":
from schainpy.model.io.jroIO_base import JRODataReader
readerObj = JRODataReader()
dateList = readerObj.findDatafiles(path=data_path,
expLabel=expLabel,
ext=ext,
walk=walk)
if ext == ".hdf5":
from schainpy.model.io.jroIO_usrp import USRPReader
readerObj = USRPReader()
dateList = readerObj.findDatafiles(path=data_path)
return dateList
def loadDays(self, data_path, ext, walk, expLabel=''):
"""
Method to loads day
"""
self.proOk.setEnabled(False)
self.dateList = []
dateList = self.findDatafiles(data_path, ext=ext, walk=walk, expLabel=expLabel)
if not dateList:
self.console.clear()
outputstr = "The path: %s is empty with file extension *%s" % (data_path, ext)
self.console.append(outputstr)
return
dateStrList = []
for thisDate in dateList:
dateStr = thisDate.strftime("%Y/%m/%d")
self.proComStartDate.addItem(dateStr)
self.proComEndDate.addItem(dateStr)
dateStrList.append(dateStr)
self.proComEndDate.setCurrentIndex(self.proComStartDate.count() - 1)
self.dateList = dateStrList
self.proOk.setEnabled(True)
return self.dateList
def setWorkSpaceGUI(self, pathWorkSpace=None):
if pathWorkSpace == None:
home = os.path.expanduser("~")
pathWorkSpace = os.path.join(home,'schain_workspace')
self.pathWorkSpace = pathWorkSpace
"""
Comandos Usados en Console
"""
def __del__(self):
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
def normalOutputWritten(self, text):
color_black = QtGui.QColor(0,0,0)
self.console.setTextColor(color_black)
self.console.append(text)
def errorOutputWritten(self, text):
color_red = QtGui.QColor(255,0,0)
color_black = QtGui.QColor(0,0,0)
self.console.setTextColor(color_red)
self.console.append(text)
self.console.setTextColor(color_black)
def setParameter(self):
self.setWindowTitle("ROJ-Signal Chain")
self.setWindowIcon(QtGui.QIcon( os.path.join(FIGURES_PATH,"adn.jpg") ))
self.tabWidgetProject.setEnabled(False)
self.tabVoltage.setEnabled(False)
self.tabSpectra.setEnabled(False)
self.tabCorrelation.setEnabled(False)
self.frame_2.setEnabled(False)
self.actionCreate.setShortcut('Ctrl+N')
self.actionOpen.setShortcut('Ctrl+O')
self.actionSave.setShortcut('Ctrl+S')
self.actionClose.setShortcut('Ctrl+X')
self.actionStart.setShortcut('Ctrl+1')
self.actionPause.setShortcut('Ctrl+2')
self.actionStop.setShortcut('Ctrl+3')
self.actionFTP.setShortcut('Ctrl+F')
self.actionStart.setEnabled(False)
self.actionPause.setEnabled(False)
self.actionStop.setEnabled(False)
self.actionStarToolbar.setEnabled(False)
self.actionPauseToolbar.setEnabled(False)
self.actionStopToolbar.setEnabled(False)
self.proName.clear()
self.proDataPath.setText('')
self.console.setReadOnly(True)
self.console.append("Welcome to Signal Chain\nOpen a project or Create a new one")
self.proStartTime.setDisplayFormat("hh:mm:ss")
self.proDataType.setEnabled(False)
self.time = QtCore.QTime()
self.hour = 0
self.min = 0
self.sec = 0
self.proEndTime.setDisplayFormat("hh:mm:ss")
startTime = "00:00:00"
endTime = "23:59:59"
starlist = startTime.split(":")
endlist = endTime.split(":")
self.time.setHMS(int(starlist[0]), int(starlist[1]), int(starlist[2]))
self.proStartTime.setTime(self.time)
self.time.setHMS(int(endlist[0]), int(endlist[1]), int(endlist[2]))
self.proEndTime.setTime(self.time)
self.proOk.setEnabled(False)
# set model Project Explorer
self.projectExplorerModel = QtGui.QStandardItemModel()
self.projectExplorerModel.setHorizontalHeaderLabels(("Project Explorer",))
layout = QtGui.QVBoxLayout()
layout.addWidget(self.projectExplorerTree)
self.projectExplorerTree.setModel(self.projectExplorerModel)
self.projectExplorerTree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.projectExplorerTree.customContextMenuRequested.connect(self.on_right_click)
self.projectExplorerTree.clicked.connect(self.on_click)
self.projectExplorerTree.expandAll()
# set model Project Properties
self.propertiesModel = TreeModel()
self.propertiesModel.initProjectView()
self.treeProjectProperties.setModel(self.propertiesModel)
self.treeProjectProperties.expandAll()
self.treeProjectProperties.allColumnsShowFocus()
self.treeProjectProperties.resizeColumnToContents(1)
# set Project
self.proDelay.setEnabled(False)
self.proSet.setEnabled(False)
self.proDataType.setReadOnly(True)
# set Operation Voltage
self.volOpComChannels.setEnabled(False)
self.volOpComHeights.setEnabled(False)
self.volOpFilter.setEnabled(False)
self.volOpComProfile.setEnabled(False)
self.volOpComCode.setEnabled(False)
self.volOpFlip.setEnabled(False)
self.volOpCohInt.setEnabled(False)
self.volOpRadarfrequency.setEnabled(False)
self.volOpChannel.setEnabled(False)
self.volOpHeights.setEnabled(False)
self.volOpProfile.setEnabled(False)
self.volOpComMode.setEnabled(False)
self.volGraphPath.setEnabled(False)
self.volGraphPrefix.setEnabled(False)
self.volGraphToolPath.setEnabled(False)
# set Graph Voltage
self.volGraphChannelList.setEnabled(False)
self.volGraphfreqrange.setEnabled(False)
self.volGraphHeightrange.setEnabled(False)
# set Operation Spectra
self.specOpnFFTpoints.setEnabled(False)
self.specOpProfiles.setEnabled(False)
self.specOpippFactor.setEnabled(False)
self.specOppairsList.setEnabled(False)
self.specOpComChannel.setEnabled(False)
self.specOpComHeights.setEnabled(False)
self.specOpIncoherent.setEnabled(False)
self.specOpgetNoise.setEnabled(False)
self.specOpRadarfrequency.setEnabled(False)
self.specOpChannel.setEnabled(False)
self.specOpHeights.setEnabled(False)
# set Graph Spectra
self.specGgraphChannelList.setEnabled(False)
self.specGgraphFreq.setEnabled(False)
self.specGgraphHeight.setEnabled(False)
self.specGgraphDbsrange.setEnabled(False)
self.specGgraphmagnitud.setEnabled(False)
self.specGgraphTminTmax.setEnabled(False)
self.specGgraphTimeRange.setEnabled(False)
self.specGraphPath.setEnabled(False)
self.specGraphToolPath.setEnabled(False)
self.specGraphPrefix.setEnabled(False)
self.specGgraphftpratio.setEnabled(False)
# set Operation SpectraHeis
self.specHeisOpIncoherent.setEnabled(False)
self.specHeisOpCobIncInt.setEnabled(False)
# set Graph SpectraHeis
self.specHeisGgraphChannelList.setEnabled(False)
self.specHeisGgraphXminXmax.setEnabled(False)
self.specHeisGgraphYminYmax.setEnabled(False)
self.specHeisGgraphTminTmax.setEnabled(False)
self.specHeisGgraphTimeRange.setEnabled(False)
self.specHeisGgraphftpratio.setEnabled(False)
self.specHeisGraphPath.setEnabled(False)
self.specHeisGraphPrefix.setEnabled(False)
self.specHeisGraphToolPath.setEnabled(False)
# tool tip gui
QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
self.projectExplorerTree.setToolTip('Right clik to add Project or Unit Process')
# tool tip gui project
self.proComWalk.setToolTip('On Files:Search file in format .r or pdata On Folders:Search file in a directory DYYYYDOY')
self.proComWalk.setCurrentIndex(0)
# tool tip gui volOp
self.volOpChannel.setToolTip('Example: 1,2,3,4,5')
self.volOpHeights.setToolTip('Example: 90,180')
self.volOpFilter.setToolTip('Example: 2')
self.volOpProfile.setToolTip('Example:0,127')
self.volOpCohInt.setToolTip('Example: 128')
self.volOpFlip.setToolTip('ChannelList where flip will be applied. Example: 0,2,3')
self.volOpOk.setToolTip('If you have finished, please Ok ')
# tool tip gui volGraph
self.volGraphfreqrange.setToolTip('Example: -30,30')
self.volGraphHeightrange.setToolTip('Example: 20,180')
# tool tip gui specOp
self.specOpnFFTpoints.setToolTip('Example: 128')
self.specOpProfiles.setToolTip('Example: 128')
self.specOpippFactor.setToolTip('Example:1.0')
self.specOpIncoherent.setToolTip('Example: 10')
self.specOpgetNoise.setToolTip('Example:20,180,30,120 (minHei,maxHei,minVel,maxVel)')
self.specOpChannel.setToolTip('Example: 0,1,2,3')
self.specOpHeights.setToolTip('Example: 90,180')
self.specOppairsList.setToolTip('Example: (0,1),(2,3)')
# tool tip gui specGraph
self.specGgraphChannelList.setToolTip('Example: 0,3,4')
self.specGgraphFreq.setToolTip('Example: -20,20')
self.specGgraphHeight.setToolTip('Example: 100,400')
self.specGgraphDbsrange.setToolTip('Example: 30,170')
self.specGraphPrefix.setToolTip('Example: EXPERIMENT_NAME')
sys.stdout = ShowMeConsole(textWritten=self.normalOutputWritten)
# sys.stderr = ShowMeConsole(textWritten=self.errorOutputWritten)
class UnitProcessWindow(QMainWindow, Ui_UnitProcess):
"""
Class documentation goes here.
"""
closed = pyqtSignal()
create = False
def __init__(self, parent=None):
"""
Constructor
"""
QMainWindow.__init__(self, parent)
self.setupUi(self)
self.getFromWindow = None
self.getfromWindowList = []
self.dataTypeProject = None
self.listUP = None
@pyqtSignature("")
def on_unitPokbut_clicked(self):
"""
Slot documentation goes here.
"""
self.create = True
self.getFromWindow = self.getfromWindowList[int(self.comboInputBox.currentIndex())]
# self.nameofUP= str(self.nameUptxt.text())
self.typeofUP = str(self.comboTypeBox.currentText())
self.close()
@pyqtSignature("")
def on_unitPcancelbut_clicked(self):
"""
Slot documentation goes here.
"""
self.create = False
self.close()
def loadTotalList(self):
self.comboInputBox.clear()
for i in self.getfromWindowList:
name = i.getElementName()
if name == 'Project':
id = i.id
name = i.name
if self.dataTypeProject == 'Voltage':
self.comboTypeBox.clear()
self.comboTypeBox.addItem("Voltage")
if self.dataTypeProject == 'Spectra':
self.comboTypeBox.clear()
self.comboTypeBox.addItem("Spectra")
self.comboTypeBox.addItem("Correlation")
if self.dataTypeProject == 'Fits':
self.comboTypeBox.clear()
self.comboTypeBox.addItem("SpectraHeis")
if name == 'ProcUnit':
id = int(i.id) - 1
name = i.datatype
if name == 'Voltage':
self.comboTypeBox.clear()
self.comboTypeBox.addItem("Spectra")
self.comboTypeBox.addItem("SpectraHeis")
self.comboTypeBox.addItem("Correlation")
if name == 'Spectra':
self.comboTypeBox.clear()
self.comboTypeBox.addItem("Spectra")
self.comboTypeBox.addItem("SpectraHeis")
self.comboTypeBox.addItem("Correlation")
if name == 'SpectraHeis':
self.comboTypeBox.clear()
self.comboTypeBox.addItem("SpectraHeis")
self.comboInputBox.addItem(str(name))
# self.comboInputBox.addItem(str(name)+str(id))
def closeEvent(self, event):
self.closed.emit()
event.accept()
class Ftp(QMainWindow, Ui_Ftp):
"""
Class documentation goes here.
"""
create = False
closed = pyqtSignal()
server = None
folder = None
username = None
password = None
ftp_wei = None
exp_code = None
sub_exp_code = None
plot_pos = None
def __init__(self, parent=None):
"""
Constructor
"""
QMainWindow.__init__(self, parent)
self.setupUi(self)
self.setParameter()
def setParameter(self):
self.setWindowTitle("ROJ-Signal Chain")
self.serverFTP.setToolTip('Example: jro-app.igp.gob.pe')
self.folderFTP.setToolTip('Example: /home/wmaster/graficos')
self.usernameFTP.setToolTip('Example: myusername')
self.passwordFTP.setToolTip('Example: mypass ')
self.weightFTP.setToolTip('Example: 0')
self.expcodeFTP.setToolTip('Example: 0')
self.subexpFTP.setToolTip('Example: 0')
self.plotposFTP.setToolTip('Example: 0')
def setParmsfromTemporal(self, server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos):
self.serverFTP.setText(str(server))
self.folderFTP.setText(str(folder))
self.usernameFTP.setText(str(username))
self.passwordFTP.setText(str(password))
self.weightFTP.setText(str(ftp_wei))
self.expcodeFTP.setText(str(exp_code))
self.subexpFTP.setText(str(sub_exp_code))
self.plotposFTP.setText(str(plot_pos))
def getParmsFromFtpWindow(self):
"""
Return Inputs Project:
- server
- folder
- username
- password
- ftp_wei
- exp_code
- sub_exp_code
- plot_pos
"""
name_server_ftp = str(self.serverFTP.text())
try:
name = str(self.serverFTP.text())
except:
self.console.clear()
self.console.append("Please Write a FTP Server")
return 0
folder_server_ftp = str(self.folderFTP.text())
try:
folder = str(self.folderFTP.text())
except:
self.console.clear()
self.console.append("Please Write a Folder")
return 0
username_ftp = str(self.usernameFTP.text())
try:
username = str(self.usernameFTP.text())
except:
self.console.clear()
self.console.append("Please Write a User Name")
return 0
password_ftp = str(self.passwordFTP.text())
try:
password = str(self.passwordFTP.text())
except:
self.console.clear()
self.console.append("Please Write a passwordFTP")
return 0
ftp_wei = self.weightFTP.text()
if not ftp_wei == "":
try:
ftp_wei = int(self.weightFTP.text())
except:
self.console.clear()
self.console.append("Please Write a ftp_wei number")
return 0
exp_code = self.expcodeFTP.text()
if not exp_code == "":
try:
exp_code = int(self.expcodeFTP.text())
except:
self.console.clear()
self.console.append("Please Write a exp_code number")
return 0
sub_exp_code = self.subexpFTP.text()
if not sub_exp_code == "":
try:
sub_exp_code = int(self.subexpFTP.text())
except:
self.console.clear()
self.console.append("Please Write a sub_exp_code number")
return 0
plot_pos = self.plotposFTP.text()
if not plot_pos == "":
try:
plot_pos = int(self.plotposFTP.text())
except:
self.console.clear()
self.console.append("Please Write a plot_pos number")
return 0
return name_server_ftp, folder_server_ftp, username_ftp, password_ftp, ftp_wei, exp_code, sub_exp_code, plot_pos
@pyqtSignature("")
def on_ftpOkButton_clicked(self):
server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos = self.getParmsFromFtpWindow()
self.create = True
self.close()
@pyqtSignature("")
def on_ftpCancelButton_clicked(self):
self.create = False
self.close()
def closeEvent(self, event):
self.closed.emit()
event.accept()
class ftpBuffer():
server = None
folder = None
username = None
password = None
ftp_wei = None
exp_code = None
sub_exp_code = None
plot_pos = None
create = False
withoutconfig = False
createforView = False
localfolder = None
extension = None
period = None
protocol = None
def __init__(self):
self.create = False
self.server = None
self.folder = None
self.username = None
self.password = None
self.ftp_wei = None
self.exp_code = None
self.sub_exp_code = None
self.plot_pos = None
# self.create = False
self.localfolder = None
self.extension = None
self.period = None
self.protocol = None
def setwithoutconfiguration(self):
self.create = False
self.server = "jro-app.igp.gob.pe"
self.folder = "/home/wmaster/graficos"
self.username = "wmaster"
self.password = "mst2010vhf"
self.ftp_wei = "0"
self.exp_code = "0"
self.sub_exp_code = "0"
self.plot_pos = "0"
self.withoutconfig = True
self.localfolder = './'
self.extension = '.png'
self.period = '60'
self.protocol = 'ftp'
self.createforView = True
def save(self, server, folder, username, password, ftp_wei, exp_code, sub_exp_code, plot_pos, localfolder='./', extension='.png', period='60', protocol='ftp'):
self.server = server
self.folder = folder
self.username = username
self.password = password
self.ftp_wei = ftp_wei
self.exp_code = exp_code
self.sub_exp_code = sub_exp_code
self.plot_pos = plot_pos
self.create = True
self.withoutconfig = False
self.createforView = True
self.localfolder = localfolder
def recover(self):
return self.server, self.folder, self.username, self.password, self.ftp_wei, self.exp_code, self.sub_exp_code, self.plot_pos
class ShowMeConsole(QtCore.QObject):
textWritten = QtCore.pyqtSignal(str)
def write (self, text):
self.textWritten.emit(str(text))
class PlotManager():
def __init__(self, queue):
self.queue = queue
self.objPlotDict = {}
def processIncoming(self):
while self.queue.qsize():
try:
dataFromQueue = self.queue.get(True)
if dataFromQueue == None:
continue
dataPlot = dataFromQueue['data']
kwargs = dataFromQueue['kwargs']
id = kwargs['id']
if 'channelList' in kwargs.keys():
channelList = kwargs['channelList']
else:
channelList = None
plotname = kwargs.pop('type')
if not(id in self.objPlotDict.keys()):
className = eval(plotname)
self.objPlotDict[id] = className(id, channelList, dataPlot)
self.objPlotDict[id].show()
self.objPlotDict[id].run(dataPlot , **kwargs)
except Queue.Empty:
pass