class WindowConnection(QtGui.QMainWindow, DialogConnection.Ui_MainWindow): """ This class handles the connection with the data repositories and send back the data to the main interface. """ def __init__(self, parent): super(WindowConnection, self).__init__(parent) self.setupUi(self) self.requestbutton.clicked.connect(self.requestdata) self.cnt = None def select_client(self, client): """ Function that creates the client for connectivity according to user's input, and link with the users variables. Args: client: str The type of client we want to connect with. """ if client == 'Earthworm': from obspy.clients.earthworm import Client as EClient self.cnt = EClient(self.ip_address, int(self.port)) elif client == 'Seedlink': from obspy.clients.seedlink import Client as SClient self.cnt = SClient(self.ip_address, int(self.port)) elif client == 'FDSN': from obspy.clients.fdsn import Client as FClient self.cnt = FClient(self.ip_address, self.port) elif client == 'arclink': from obspy.clients.arclink import Client as AClient self.cnt = AClient(self.ip_address, int(self.port)) else: from obspy.clients.iris import Client as IClient self.cnt = IClient("IRIS") def requestdata(self): """ Native function to request data from the clients.""" self.ip_address = self.ip_c.text() self.port = int(self.port_c.text()) if self.ip_address == '' or self.port == '': gui_functions.msg_box("IP address or port seems empty", "Please, enter data correctly!") self.parent().network = str(self.network_c.text()) self.parent().station = str(self.station_c.text()) self.parent().channel = str(self.channel_c.text()) self.parent().location = str(self.location_c.text()) # self.parent().component = str(self.component_c.text()) # self.parent().trace_number = str(self.numtraceBox.value()) self.parent().start_data = UTCDateTime((self.startTime.dateTime().toPyDateTime())) self.parent().end_data = UTCDateTime((self.endTime.dateTime().toPyDateTime())) # request the data self.select_client(str(self.comboServers.currentText())) st = self.cnt.get_waveforms(self.parent().network, self.parent().station, self.parent().location, self.parent().channel, self.parent().start_data, self.parent().end_data) # a test trace below for test. Remove on final versions. # st = "9702-10-1441-50S.MVO_18_1" #this is only from test!! self.parent().trace_loaded = st self.parent().stream = st self.close() gc.collect() self.parent().plot_from_server()