def save_to_hdf5(self, file_name=None): d_obj = DO.DataObjectHDF5() d_obj.save_object_to_file (self, file_name) print("File saved")
def _save_scan(self): # save hdf5 file with scan parameters and detector maps #tstamp = time.strftime ('%Y%m%d_%H%M%S') #subf = os.path.join (self._work_folder, tstamp + '_mapper/') #if not(os.path.exists(subf)): # os.mkdir(subf) #fname = os.path.join (subf, tstamp+'_map_data.hdf5') #f = h5py.File (fname, 'w') DOobj = DO.DataObjectHDF5() f = DOobj.create_file(folder=self._work_folder, name='map_data') try: DOobj.save_object_all_vars_to_file(obj=self, f=f) except: print("Scan parameters not saved.") try: for idx, s in enumerate(self._scanner._scanner_axes): DOobj.save_object_all_vars_to_file(obj=s, f=f, group_name='scanner_' + str(idx)) except: print("Scanner axes not saved.") try: for idx, d in enumerate(self._scanner._detectors): DOobj.save_object_to_file(obj=d, f=f, group_name='detector_' + str(idx)) except: print("Detectors not saved.") # save plots of spatial maps for idx, d in enumerate(self._scanner._detectors): x = d.xValues y = d.yValues value = d.readout_values dy = 10 * len(y) / len(x) fig = plt.figure(figsize=(10, dy)) ax = fig.add_subplot(111) ax.tick_params(labelsize=18) if ((x is not None) and (y is not None)): [X, Y] = np.meshgrid(self._recalculate(x), self._recalculate(y)) ax.pcolor(X, Y, value) ax.xaxis.set_ticks(x) ax.yaxis.set_ticks(y) else: ax.pcolor(value) fig.savefig( os.path.join( subf, 'map_detector' + str(idx) + '_' + d.string_id + '.png')) fig.savefig( os.path.join( subf, 'map_detector' + str(idx) + '_' + d.string_id + '.svg')) plt.close(fig)