def onSave(self, event): """ Method to handle dialogue window and saving data to file """ dialog = wx.FileDialog( None, 'Save measurement data and metadata', self.dirname, '', r'DAT and INF files (*.dat;*.inf)|*.inf;*.dat', wx.FD_SAVE ) if dialog.ShowModal() == wx.ID_OK: dialog_path = dialog.GetPath() self.dirname = os.path.dirname(dialog_path) self.SaveName = os.path.splitext(os.path.basename(dialog_path))[0] experiment_settings = self.metadata.get_settings_as_dict() waveform_settings = self.light_pulse.get_settings_as_dict() metadata_dict = experiment_settings.copy() utils.save_data(self.Data.Data, self.SaveName, self.dirname) utils.save_metadata( metadata_dict, self.SaveName, self.dirname ) else: print('Canceled save') dialog.Destroy() event.Skip()
def test_write_data_to_file(self): save_data( LoadSaveTest.test_data, LoadSaveTest.fname, LoadSaveTest.fpath ) self.assertTrue(os.path.isfile(LoadSaveTest.check_dat_path))
def perform_measurement(self, event): """ Perform the queued measurements """ try: if not self.uploaded: # try to retrieve settings from the various forms config_dict = {} config_dict["temperature_settings"] = ( self.view1.get_temperature_form()) config_dict["wafer_settings"] = self.view1.get_wafer_form() # gets the measurement settings config_dict["experiment_settings"] = ( self.view1.get_experiment_form()) try: settings = self._parse_config(config_dict) except KeyError as e: self.view1.show_error_modal(str(e)) # create the wave forms for each run for setting in settings["experiment_settings"]: self.measurement_handler.add_to_queue(setting) self.wafer_settings = settings["wafer_settings"] self.temperature_settings = settings["temp_settings"] if self.data_dir is not None: save_metadata(self.wafer_settings.as_dict(), self.data_dir, self.wafer_settings.id) if self.measurement_handler.is_queue_empty(): raise (PVInputError("No measurements loaded.")) # Do the actual measurements # TODO: refactor in separate method dataset_list = [] total_measurements = 0 self.PlotModal = PlotModal(self.app) self.PlotModal.Show() # while there things to measure while not self.measurement_handler.is_queue_empty(): single_dataset = self.measurement_handler.single_measurement() dataset_list.append(single_dataset) total_measurements = total_measurements + 1 ts = int(time.time()) dataset_name = (str(total_measurements) + self.wafer_settings.id + str(ts)) save_data(single_dataset, dataset_name, self.data_dir) # print single_dataset.shape self.PlotModal.plot_data(single_dataset[:, 0], [x for x in single_dataset[:, 1:].T]) except PVInputError as e: self.view1.show_error_modal(str(e))
def onSaveData(self, event): print("onSaveData") if self.askUserForFilename(style=wx.SAVE, **self.defaultFileDialogOptions()): utils.save_data(self.Data.Data, self.data_file, self.dirname)
def test_write_data_to_file(self): save_data(LoadSaveTest.test_data, LoadSaveTest.fname, LoadSaveTest.fpath) self.assertTrue(os.path.isfile(LoadSaveTest.check_dat_path))
def perform_measurement(self, event): """ Perform the queued measurements """ try: if not self.uploaded: # try to retrieve settings from the various forms config_dict = {} config_dict["temperature_settings"] = ( self.view1.get_temperature_form() ) config_dict["wafer_settings"] = self.view1.get_wafer_form() config_dict["experiment_settings"] = ( self.view1.get_experiment_form() ) try: settings = self._parse_config(config_dict) except KeyError as e: self.view1.show_error_modal(str(e)) for setting in settings["experiment_settings"]: self.measurement_handler.add_to_queue( LightPulse(setting).create_waveform(), setting ) self.wafer_settings = settings["wafer_settings"] self.temperature_settings = settings["temp_settings"] if self.data_dir is not None: save_metadata( self.wafer_settings.as_dict(), self.data_dir, self.wafer_settings.id ) if self.measurement_handler.is_queue_empty(): raise(PVInputError("No measurements loaded.")) # Do the actual measurements # TODO: refactor in separate method dataset_list = [] total_measurements = 0 self.PlotModal = PlotModal(self.app) self.PlotModal.Show() while not self.measurement_handler.is_queue_empty(): single_dataset = self.measurement_handler.single_measurement() dataset_list.append(single_dataset) total_measurements = total_measurements + 1 ts = int(time.time()) dataset_name = ( str(total_measurements) + self.wafer_settings.id + str(ts) ) save_data(single_dataset, dataset_name, self.data_dir) # print single_dataset.shape self.PlotModal.plot_data([x for x in single_dataset[:,1:].T]) except PVInputError as e: self.view1.show_error_modal(str(e))