Example #1
0
def add_calib_file_to_cdb(exp, dircalib, calibvers, detname, cftype, fname,
                          cfdir, listdicts, **kwargs):
    """
    """
    d = history_dict_for_file(listdicts, fname)

    resp = parse_calib_file_name(fname)
    begin, end, ext = resp if resp is not None else (None, None, None)
    if begin is not None: begin = int(begin)

    if None in (begin, end, ext): return

    fpath = '%s/%s' % (cfdir, fname)

    verbose = kwargs.get('verbose', False)

    data = gu.load_textfile(fpath, verbose) if cftype in ('geometry','code_geometry') else\
           load_xtcav_calib_file(fpath) if is_xtcav(calibvers, cftype) else\
           load_txt(fpath) # using NDArrIO

    if isinstance(data, dict):
        serialize_dict(data)
        logger.debug(info_dict(data))
        #print_dict(data)
        #data = json.dumps(data) # (data,ensure_ascii=True) json.dumps converts dict -> str # .replace("'", '"') for json
        data = str(data)

    if isinstance(data, np.ndarray):
        check_data_shape(data, detname, cftype)

    begin_time, end_time = run_begin_end_time(exp, int(begin))

    if verbose:
        ndu.print_ndarr(data, 'scan calib: data')
        msg = 'scan calib: %s %s %s %s %s %s %s %s %s' % (
            exp, cfdir, fname, begin, end, ext, calibvers, detname, cftype)
        logger.info(msg)
        logger.info('begin_time: %s end_time: %s' % (begin_time, end_time))

    if data is None:
        msg = 'data is None, conversion is dropped for for file: %s' % fpath
        logger.warning(msg)
        return

    kwargs['run'] = begin
    kwargs['run_end'] = end
    kwargs['detector'] = detname
    kwargs['ctype'] = cftype
    kwargs['time_sec'] = begin_time
    kwargs['end_time'] = end_time
    kwargs['time_stamp'] = dbu._timestamp(begin_time)
    kwargs['extpars'] = d if d is not None else {
    }  # just in case save entire history dict
    #kwargs['comment']    = 'HISTORY: %s' % d.get('comment', '')

    dbu.insert_calib_data(data, **kwargs)
Example #2
0
  def test_add_data_and_two_docs(exp=TEST_EXPNAME, det=TEST_DETNAME):
    from psana.pyalgos.generic.Utils import get_login
    t0_sec = time()
    kwa = {'user'      : get_login(),
           'experiment': exp,
           'detector'  : det,
           'ctype'     : 'testnda',
           'run'       : 123,
           'time_sec'  : t0_sec,
           'time_stamp': mu._timestamp(int(t0_sec)),
          }
    data = mu.get_test_nda()
    id_data_exp, id_data_det, id_doc_exp, id_doc_det =\
      add_data_and_two_docs(data, exp, det, url=cc.URL_KRB, krbheaders=cc.KRBHEADERS, **kwa)

    print('time to insert data and two docs: %.6f sec' % (time()-t0_sec))
Example #3
0
def add_calib_file_to_cdb(exp, dircalib, calibvers, detname, cftype, fname, cfdir, listdicts, **kwargs) :
    """
    """
    d = history_dict_for_file(listdicts, fname)

    resp = parse_calib_file_name(fname)
    begin, end, ext = resp if resp is not None else (None, None, None)

    if None in (begin, end, ext) : return

    fpath = '%s/%s' % (cfdir, fname)

    verbose = kwargs.get('verbose', False)

    data = gu.load_textfile(fpath, verbose) if cftype in ('geometry','code_geometry') else\
           load_xtcav_calib_file(fpath) if is_xtcav(calibvers, cftype) else\
           load_txt(fpath) # using NDArrIO

    begin_time, end_time = run_begin_end_time(exp, int(begin))

    if verbose :
        ndu.print_ndarr(data, 'scan calib: data')
        msg = 'scan calib: %s %s %s %s %s %s %s %s %s' % (exp, cfdir, fname, begin, end, ext, calibvers, detname, cftype)
        logger.info(msg)
        logger.info('begin_time: %s end_time: %s' % (begin_time, end_time))

    if data is None :
        msg = 'data is None, conversion is dropped for for file: %s' % fpath
        logger.warning(msg)        
        return

    kwargs['run']        = begin
    kwargs['run_end']    = end
    kwargs['detector']   = detname
    kwargs['ctype']      = cftype
    kwargs['time_sec']   = begin_time
    kwargs['end_time']   = end_time
    kwargs['time_stamp'] = dbu._timestamp(begin_time)
    kwargs['extpars']    = d # just in case save entire history dict
    #kwargs['comment']    = 'HISTORY: %s' % d.get('comment', '')

    dbu.insert_calib_data(data, **kwargs)