예제 #1
0
                                             substr_name=options['substr'])
        # Remove parameters not currently being optimized.
        dic['FF'].remove_other_params(dic['Params.'])
    else:
        logger.info('Loaded initial FF: {} ({})'.format(
            dic['FF'].substr_name, dic['FF'].filename))
    # Calculate initial FF data if necessary.
    if dic['FF'].data == []:
        logger.info('Calculating initial FF data.')
        dic['FF'].calculate_data(options['calc'].split(), backup=True)
    assert len(dic['FF'].data) == len(dic['Ref. Data']), \
        'Num. data points for ref. ({}) '.format(len(dic['Ref. Data'])) + \
        'and FF data ({}) '.format(len(dic['FF'].data)) + \
        'is unequal.'
    # Determine X2 if necessary.
    if dic['FF'].x2 is None:
        logger.info('Calculating initial X2.')
        dic['FF'].calculate_x2(dic['Ref. Data'])
    return dic


if __name__ == '__main__':
    # Setup logs.
    remove_logs()
    sys.excepthook = log_uncaught_exceptions
    with open('options/logging.yaml', 'r') as f:
        log_config = yaml.load(f)
    logging.config.dictConfig(log_config)
    # Process arguments.
    run(sys.argv[1:])
예제 #2
0
파일: evaluate.py 프로젝트: sophic1016/q2mm
    if options['output']:
        lines = ['X2: {}'.format(x2), '']
        head = '{0:^20}{1:^20}{2:^10}{3:^22}{4:^22}'.format(
            'Ref. Name', 'Calc. Name', 'Ref. Weight', 'Ref. Value',
            'Calc. Value')
        lines.append(head)
        lines.append('-' * len(head))
        
        for r_d, c_d in zip(
            sorted(dic['Ref. Data'], key=calculate.sort_datum),
            sorted(dic['Calc. Data'], key=calculate.sort_datum)):
            lines.append('{0:<20}{1:<20}{2:>10.4f}{3:>22.6f}{4:>22.6f}'.format(
                    r_d.name, c_d.name, r_d.weight, r_d.value, c_d.value))
        if options['output'] == 'print':
            for line in lines:
                print line
        else:
            with open(options['output'], 'w') as f:
                for line in lines:
                    f.write(line + '\n')

if __name__ == '__main__':
    # Setup logs.
    remove_logs()
    sys.excepthook = log_uncaught_exceptions
    with open('options/logging.yaml', 'r') as f:
        config = yaml.load(f)
    logging.config.dictConfig(config)
    # Execute.
    process_args(sys.argv[1:])