def export_scan_scalar( uid, x='dcm_b', y= ['xray_eye1_stats1_total'], path='/XF11ID/analysis/2016_3/commissioning/Results/exported/' ): '''export uid data to a txt file uid: unique scan id x: the x-col y: the y-cols path: save path Example: data = export_scan_scalar( uid, x='dcm_b', y= ['xray_eye1_stats1_total'], path='/XF11ID/analysis/2016_3/commissioning/Results/exported/' ) A plot for the data: d.plot(x='dcm_b', y = 'xray_eye1_stats1_total', marker='o', ls='-', color='r') ''' from databroker import DataBroker as db, get_images, get_table, get_events, get_fields #from chxanalys.chx_generic_functions import trans_data_to_pd import numpy as np hdr = db[uid] print( get_fields( hdr ) ) data = get_table( db[uid] ) xp = data[x] datap = np.zeros( [len(xp), len(y)+1]) datap[:,0] = xp for i, yi in enumerate(y): datap[:,i+1] = data[yi] datap = trans_data_to_pd( datap, label=[x] + [yi for yi in y]) fp = path + 'uid=%s.csv'%uid datap.to_csv( fp ) print( 'The data was saved in %s'%fp) return datap
def get_data(scan_id, field='ivu_gap', intensity_field='elm_sum_all', det=None, debug=False): """Get data from the scan stored in the table. from Maksim :param scan_id: scan id from bluesky. :param field: visualize the intensity vs. this field. :param intensity_field: the name of the intensity field. :param det: the name of the detector. :param debug: a debug flag. :return: a tuple of X, Y and timestamp values. """ scan, t = get_scan(scan_id) if det: imgs = get_images(scan, det) im = imgs[-1] if debug: print(im) table = get_table(scan) fields = get_fields(scan) if debug: print(table) print(fields) x = table[field] y = table[intensity_field] return x, y, t
def test_get_fields(): rs = insert_run_start(time=ttime.time(), scan_id=105, owner='stepper', beamline_id='example', uid=str(uuid.uuid4())) step_scan.run(run_start_uid=rs) h = db[rs] actual = get_fields(h) assert actual == set(['Tsam', 'point_det'])
def test_db(sid): from databroker import DataBroker as db, get_fields, get_table h = db[sid] scan = get_table(h) fld = get_fields(h) print('the scan files include %s' % fld)
def test_get_fields(): rs = insert_run_start(time=ttime.time(), scan_id=105, owner="stepper", beamline_id="example", uid=str(uuid.uuid4())) step_scan.run(run_start_uid=rs) h = db[rs] actual = get_fields(h) assert actual == set(["Tsam", "point_det"])