コード例 #1
0
    def save_to_hdf5(self, file_name=None):

        d_obj = DO.DataObjectHDF5()
        d_obj.save_object_to_file (self, file_name)
        print("File saved")
コード例 #2
0
ファイル: ScanGUI.py プロジェクト: diamond2nv/measurements
    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)