def send_to_plot(dataset,plot,add=False,change_title=True,add_timestamp=True): """This routine appends a timestamp to the dataset title in order to keep uniqueness of the title for later identification purposes. It also maintains plot consistency in terms of displaying d-spacing.""" from datetime import datetime from Reduction import reduction if add_timestamp: timestamp = datetime.now().strftime("%H:%M:%S") dataset.title = dataset.title + timestamp # Check d-spacing status if plot.ds: if plot.ds[0].axes[0].name == 'd-spacing': reduction.convert_to_dspacing(dataset) elif plot.ds[0].axes[0].name == 'Two theta': reduction.convert_to_twotheta(dataset) if add: plot.add_dataset(dataset) else: plot.set_dataset(dataset) if change_title: plot.title = dataset.title #Update any widgets that keep a track of the plots if plot == Plot3: #Delete only operates on plot 3 curves = ['All'] + map(lambda a:a.title,plot.ds) plh_dataset.options = curves plh_dataset.value = 'All'
def dspacing_change(): """Toggle the display of d spacing on the horizontal axis""" global Plot2, Plot3 from Reduction import reduction plot_table = {'Plot 2': Plot2, 'Plot 3': Plot3} target_plot = plot_table[str(ps_plotname.value)] if target_plot.ds is None: return # Preliminary check we are not displaying something # irrelevant, e.g. monitor counts for ds in target_plot.ds: if ds.axes[0].name not in ['Two theta', 'd-spacing']: print 'Not converting, have axis = %s' % ds.axes[0].name return change_dss = copy(target_plot.ds) # Check to see what change is required need_d_spacing = ps_dspacing.value # target_plot.clear() causes problems; use 'remove' instead # need to set the xlabel by hand due to gplot bug if need_d_spacing: target_plot.x_label = 'd-spacing (Angstroms)' elif not need_d_spacing: target_plot.x_label = 'Two theta (Degrees)' target_plot.y_label = 'Intensity' for ds in change_dss: current_axis = ds.axes[0].name print '%s has axis %s' % (ds.title, current_axis) if need_d_spacing: result = reduction.convert_to_dspacing(ds) elif not need_d_spacing: result = reduction.convert_to_twotheta(ds) if result == 'Changed': target_plot.remove_dataset(ds) target_plot.add_dataset(ds)
def dspacing_change(): """Toggle the display of d spacing on the horizontal axis""" global Plot2,Plot3 from Reduction import reduction plot_table = {'Plot 2':Plot2, 'Plot 3':Plot3} target_plot = plot_table[str(ps_plotname.value)] if target_plot.ds is None: return # Preliminary check we are not displaying something # irrelevant, e.g. monitor counts for ds in target_plot.ds: if ds.axes[0].name not in ['Two theta','d-spacing']: return change_dss = copy(target_plot.ds) # Check to see what change is required need_d_spacing = ps_dspacing.value # target_plot.clear() causes problems; use 'remove' instead # need to set the xlabel by hand due to gplot bug if need_d_spacing: target_plot.x_label = 'd-spacing (Angstroms)' elif not need_d_spacing: target_plot.x_label = 'Two theta (Degrees)' target_plot.y_label = 'Intensity' for ds in change_dss: current_axis = ds.axes[0].name print '%s has axis %s' % (ds.title,current_axis) if need_d_spacing: result = reduction.convert_to_dspacing(ds) elif not need_d_spacing: result = reduction.convert_to_twotheta(ds) if result == 'Changed': target_plot.remove_dataset(ds) target_plot.add_dataset(ds)
def send_to_plot(dataset, plot, add=False, change_title=True, add_timestamp=True): """This routine appends a timestamp to the dataset title in order to keep uniqueness of the title for later identification purposes. It also maintains plot consistency in terms of displaying d-spacing.""" from datetime import datetime from Reduction import reduction if add_timestamp: timestamp = datetime.now().strftime("%H:%M:%S") dataset.title = dataset.title + timestamp # Check d-spacing status if plot.ds: axis_name = '' try: axis_name = plot.ds[0].axes[0].name except IndexError: pass if axis_name == 'd-spacing': reduction.convert_to_dspacing(dataset) elif axis_name == 'Two theta': reduction.convert_to_twotheta(dataset) if add: plot.add_dataset(dataset) else: plot.set_dataset(dataset) if change_title: plot.title = dataset.title #Update any widgets that keep a track of the plots if plot == Plot3: #Delete only operates on plot 3 curves = ['All'] + map(lambda a: a.title, plot.ds) plh_dataset.options = curves plh_dataset.value = 'All'