def getDatasetTwoToPlot(self, widget): temp = r"\\" temp = Patrick.getDatasetPath(pathname) +temp Patrick.datasetForPlot[1] = temp + widget.get_active_text() self.label_status.set_text("%s chosen" % Patrick.datasetForPlot[1]) if Patrick.debug: print("Selected: %s " % Patrick.datasetForPlot[1])
def getDatasetOneToPlot(self, widget): if self.dataTypesToPlotLast != "errors_automatically": temp = r"\\" temp = Patrick.getDatasetPath(pathname) +temp Patrick.datasetForPlot[0] = temp + widget.get_active_text() self.label_status.set_text("%s chosen" % Patrick.datasetForPlot[0]) if Patrick.debug: print("Selected: %s " % Patrick.datasetForPlot[0])
def callPlotFunctions(self,widget): Patrick.debug if self.dataTypesToPlot == "errors_automatically": # get all files with "errors" at the beginning in the pathname folder self.list_data_for_plot = [] self.list_data_for_plot = Patrick.getAllDatasetFileNames(pathname, "errors") temp = "\\" temp = Patrick.getDatasetPath(pathname) +temp # add to all filenames the path currentListElement = 0 while currentListElement < len(self.list_data_for_plot): self.list_data_for_plot[currentListElement] = temp + self.list_data_for_plot[currentListElement] if Patrick.debug: print "Debug MainWindow.callPlotFunctions: ", self.list_data_for_plot[currentListElement] currentListElement+= 1 # debug output: if Patrick.debug: print "Debug MainWindow.callPlotFunctions: ", self.list_data_for_plot #start plotting Patrick.plotData(self.list_data_for_plot, self.entry_X.get_text(), self.entry_Y.get_text(), self.entry_Z.get_text(), self.entry_T.get_text(), self.plotmode, self.printInNewPlot) else: Patrick.plotData(Patrick.datasetForPlot, self.entry_X.get_text(), self.entry_Y.get_text(), self.entry_Z.get_text(), self.entry_T.get_text(), self.plotmode, self.printInNewPlot)
def main(): errors = 0 #goal 1: collect and prepare the dataset to be processed datasetCollected = 1 if Pedro.collectDataset() != 0: datasetCollected = 0 errors += 1 #goal 2: plot the dataset datasetPlotted = 1 if Patrick.plotData(0) != 0: datasetPlotted = 0 errors += 1 datasetTought = 1 if Pedro.teach() != 0: datasetTought = 0 errors += 1 # prints for status of goals if datasetCollected: print "\nDataset collected!" if not datasetCollected: print "\nDataset NOT collected!" if datasetPlotted: print "\nDataset plotted!" if not datasetPlotted: print "\nDataset NOT plotted!" if datasetTought: print "\nDataset Tought!" if not datasetTought: print "\nDataset NOT Tought!" if not errors: print "\nEveryting works fine!" return 0 if errors: print "\n%d errors were found!" % errors return 1
def __init__(self): # setting windows properties starts here self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.set_title("Space debris GUI") self.window.set_default_size(1280,720) self.window.connect("destroy",self.destroyOurWindow) # Buttons creation starts here self.Button_Training = gtk.Button("Train me") self.Button_Training.connect("clicked", self.plot) self.Button_PlotData = gtk.Button("Plot Data ") self.Button_PlotData.connect("clicked", self.plot) self.Button_PlotData.connect("clicked", self.callPlotFunctions) self.Button_Exit = gtk.Button("Exit") self.Button_Exit.connect("clicked", self.destroyOurWindow) # Checkbutton creating starts here self.NewPlotButton = gtk.CheckButton("New Plot Window") self.NewPlotButton.connect("toggled",self.changeOfNewPlot) # label creating starts here # distance labels are between buttons, and enumerated from top to down (1 is uppest one) self.label_distance_1 = gtk.Label(" ") self.label_distance_2 = gtk.Label(" ") self.label_distance_4 = gtk.Label(" ") self.label_distance_5 = gtk.Label(" ") self.label_distance_6 = gtk.Label(" ") self.label_distance_7 = gtk.Label(" ") self.label_Accuracy_of_plot = gtk.Label(" Accuracy between 1 to 100 ") self.label_status = gtk.Label("ready") self.label_warning= gtk.Label("Warning! All old plots will be deleted! ") distance_label_value = 20 #switch button creating starts here self.combo_between_2D_and_3D_Plot = gtk.combo_box_new_text() self.combo_between_2D_and_3D_Plot.set_entry_text_column(0) self.combo_between_2D_and_3D_Plot.connect("changed", self.getPlotmode) self.combo_dataset_one = gtk.combo_box_new_text() self.combo_dataset_one.connect("changed", self.getDatasetOneToPlot) self.combo_dataset_two = gtk.combo_box_new_text() self.combo_dataset_two.connect("changed", self.getDatasetTwoToPlot) self.combo_datatype_to_plot = gtk.combo_box_new_text() self.combo_datatype_to_plot.connect("changed", self.getDataSets) # entry fields creating starts here self.entry_X = gtk.Entry() self.entry_Y = gtk.Entry() self.entry_Z = gtk.Entry() self.entry_T = gtk.Entry() self.entry_accuracy = gtk.Entry() self.entry_X.set_text("X-Axes Name") self.entry_Y.set_text("Y-Axes Name") self.entry_Z.set_text("Z-Axes Name") self.entry_T.set_text("T-Axes Name") self.entry_accuracy.set_text("100") # populate the comboboxes self.combo_between_2D_and_3D_Plot.append_text("2D Plot") self.combo_between_2D_and_3D_Plot.append_text("3D Plot") self.combo_between_2D_and_3D_Plot.set_active(0) self.combo_datatype_to_plot.append_text ("All Datafiles, choose up to 2 files") self.combo_datatype_to_plot.append_text ("Only Errors, choose up to 2 files") self.combo_datatype_to_plot.append_text ("Only Errors, automatically chosen") self.combo_datatype_to_plot.append_text ("Only Satellites, choose up to 2 files") #get data files in write them into a combobox List_data_for_combo_box = Patrick.getAllDatasetFileNames(pathname) # write all files into the combobox currentListElement = 0 while currentListElement <len(List_data_for_combo_box): # add to combobox self.combo_dataset_one.append_text(List_data_for_combo_box[currentListElement]) self.combo_dataset_two.append_text(List_data_for_combo_box[currentListElement]) currentListElement+=1 #set combobox active self.combo_dataset_one.set_active(0) self.combo_dataset_two.set_active(0) # container creating starts here self.box_container_horizontal = gtk.HBox() self.box_container_vertical_left = gtk.VBox() self.box_container_vertical_left.set_border_width(7) self.box_container_vertical_right = gtk.VBox() # containter alignment starts here self.box_container_vertical_left.set_size_request(250, 500) self.box_container_horizontal.pack_start(self.box_container_vertical_left,expand=False, fill=False, padding=False) self.box_container_horizontal.pack_start(self.box_container_vertical_right,expand=True, fill=True, padding=False) self.box_container_vertical_left.pack_start(self.Button_Training, expand=False, fill=False) self.Button_Training.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.label_distance_1,expand=False, fill=False, padding=False) self.label_distance_1.set_size_request(200, distance_label_value) self.box_container_vertical_left.pack_start(self.NewPlotButton,expand=True, fill=False, padding=False) self.NewPlotButton.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.label_warning,expand=False, fill=False, padding=False) self.label_warning.set_size_request(200, distance_label_value) self.box_container_vertical_left.pack_start(self.combo_datatype_to_plot,expand=False, fill=False, padding=False) self.combo_datatype_to_plot.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.label_distance_2,expand=False, fill=False, padding=False) self.label_distance_2.set_size_request(200, distance_label_value) self.box_container_vertical_left.pack_start(self.combo_between_2D_and_3D_Plot,expand=False, fill=False, padding=False) self.combo_between_2D_and_3D_Plot.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.combo_dataset_one,expand=True, fill=False, padding=False) self.combo_dataset_one.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.combo_dataset_two,expand=True, fill=False, padding=False) self.combo_dataset_two.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.entry_X,expand=True, fill=False, padding=False) self.entry_X.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.entry_Y,expand=True, fill=False, padding=False) self.entry_Y.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.entry_Z,expand=True, fill=False, padding=False) self.entry_Z.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.entry_T,expand=True, fill=False, padding=False) self.entry_T.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.label_Accuracy_of_plot,expand=False, fill=False, padding=False) self.label_Accuracy_of_plot.set_size_request(200, distance_label_value) self.box_container_vertical_left.pack_start(self.entry_accuracy,expand=True, fill=False, padding=False) self.entry_accuracy.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.Button_PlotData, expand=False, fill=False) self.Button_PlotData.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.label_distance_6,expand=False, fill=False, padding=False) self.label_distance_5.set_size_request(200, distance_label_value) self.box_container_vertical_left.pack_start(self.Button_Exit, expand = False, fill = False) self.Button_Exit.set_size_request(200, 40) self.box_container_vertical_left.pack_start(self.label_distance_7,expand=True, fill=False, padding=False) self.label_distance_6.set_size_request(200, distance_label_value) self.box_container_vertical_left.pack_start(self.label_status,expand=True, fill=False, padding=False) self.label_status.set_size_request(200, distance_label_value) # aligning properties of widgets self.label_status.set_alignment(0.1,0.1) # just a a debug if Patrick.debug == 0: f = plt.figure() a = f.add_subplot(111) t = [1,2,3,4,5,6,7,8,9,10] s = [1,100,1,100,1,100,1,100,1,100] a.plot(t, s) self.canvas = FigureCanvas(f) self.box_container_vertical_right.pack_start(self.canvas, True, True, 0) ## add elements to our window self.window.add(self.box_container_horizontal) # has to be the last function that is called in init, because afterwards is no refresh self.window.show_all() #hide warning layer as it is only shown if you press "new plot" self.label_warning.hide()
def getDataSets(self,widget): text = widget.get_active_text() self.label_status.set_text("Last Action: %s" % text) #selection is harcoded, time issue to find a nice solution if text == "Only Satellites, choose up to 2 files": self.dataTypesToPlotLast = self.dataTypesToPlot self.dataTypesToPlot = "satellite_manually" List_data_for_combo_box = Patrick.getAllDatasetFileNames(pathname,"satellites") model = self.combo_dataset_one.get_model() self.combo_dataset_one.set_model(None) model.clear() model = self.combo_dataset_two.get_model() self.combo_dataset_two.set_model(None) model.clear() self.combo_dataset_one.set_model(model) self.combo_dataset_two.set_model(model) # if automatically choosen errors, deactivate options elif text == "Only Errors, automatically chosen": self.dataTypesToPlotLast = self.dataTypesToPlot self.dataTypesToPlot = "errors_automatically" #List_data_for_combo_box = [" automatically choosen"] model = self.combo_dataset_one.get_model() model.clear() self.combo_dataset_one.set_model(None) model = self.combo_dataset_two.get_model() model.clear() self.combo_dataset_two.set_model(None) self.combo_dataset_one.set_model(model) self.combo_dataset_two.set_model(model) elif text == "Only Errors, choose up to 2 files": self.dataTypesToPlotLast = self.dataTypesToPlot self.dataTypesToPlot = "errors_manually" List_data_for_combo_box = Patrick.getAllDatasetFileNames(pathname,"errors") model = self.combo_dataset_one.get_model() self.combo_dataset_one.set_model(None) model.clear() model = self.combo_dataset_two.get_model() self.combo_dataset_two.set_model(None) model.clear() self.combo_dataset_one.set_model(model) self.combo_dataset_two.set_model(model) # else: "All Datafiles, choose up to 2 files" else: self.dataTypesToPlotLast = self.dataTypesToPlot self.dataTypesToPlot = "all_types" List_data_for_combo_box = Patrick.getAllDatasetFileNames(pathname,"all") model = self.combo_dataset_one.get_model() self.combo_dataset_one.set_model(None) model.clear() model = self.combo_dataset_two.get_model() self.combo_dataset_two.set_model(None) model.clear() self.combo_dataset_one.set_model(model) self.combo_dataset_two.set_model(model) # however whats choosen refresh the list currentListElement = 0 while currentListElement <len(List_data_for_combo_box): self.combo_dataset_one.append_text(List_data_for_combo_box[currentListElement]) self.combo_dataset_two.append_text(List_data_for_combo_box[currentListElement]) self.combo_dataset_one.set_model(model) self.combo_dataset_two.set_model(model) currentListElement+=1 #set combobox active self.combo_dataset_one.set_active(1) self.combo_dataset_two.set_active(1) if Patrick.debug: print("Debug MainWindow.getDataSets: %s " % self.dataTypesToPlot)