예제 #1
0
def gen_samples(wdir,nsamples=100,nsize=10):

    load_config('%s/input.py'%wdir)
    conf['bootstrap']=False
    istep=core.get_istep()
    core.mod_conf(istep) #--set conf as specified in istep   

    resman=RESMAN(nworkers=5,parallel=True,datasets=True)
    parman=resman.parman
    order=parman.order

    obsres={}
    if 'idis'   in conf['datasets'] : obsres['idis']   = resman.idisres
    if 'pidis'  in conf['datasets'] : obsres['pidis']  = resman.pidisres
    if 'sidis'  in conf['datasets'] : obsres['sidis']  = resman.sidisres
    if 'psidis' in conf['datasets'] : obsres['psidis'] = resman.psidisres
    if 'dy'     in conf['datasets'] : obsres['dy']     = resman.dyres
    if 'sia'    in conf['datasets'] : obsres['sia']    = resman.siares
   

    print('\ngen ml samples using the setup as in %s\n'%wdir)

    checkdir('%s/mlsamples'%wdir)

    data=gen_dataframe(parman.order,obsres,nsize)

    for _ in range(nsamples):
        lprint('progress: %d/%d'%(_,nsamples))
        par=parman.gen_flat(setup=True)
        res,rres,nres=resman.get_residuals(par)

        #--fill dataframe
        i=data['size']
        data['params'][i]=par
        for reaction in obsres:
            for idx in data['reactions'][reaction]:
                prediction=copy.copy(obsres[reaction].tabs[idx]['prediction'])
                data['reactions'][reaction][idx][i]=prediction
        data['size']+=1

        if data['size']==nsize:
            save(data,'%s/mlsamples/%s'%(wdir,id_generator(12)))
            data=gen_dataframe(parman.order,obsres,nsize)

    print     

    #--close resman
    resman.shutdown()
예제 #2
0
파일: simulation.py 프로젝트: jc014/jam3d-1
# define datasets (kinematics) to perform the simulation

conf['datasets']={}
conf['datasets']['sidis']={}
conf['datasets']['sidis']['xlsx']={}
conf['datasets']['sidis']['xlsx'][1000]='./template.xlsx'  # |  proton   | pi+
conf['datasets']['sidis']['norm']={}
for idx in conf['datasets']['sidis']['xlsx']: conf['datasets']['sidis']['norm'][idx]={'value':1,'fixed':True,'min':0,'max':1}
conf['datasets']['sidis']['filters']={}


############################################################################
# run simulation
resman = RESMAN()
parman = conf['parman']
resman.get_residuals(parman.par)
print


############################################################################
# prepare the new pseudo data set and save it as xlsx file
simdata=pd.DataFrame(conf['sidis tabs'][1000])
simdata['value']=simdata['thy']
simdata['stat_u']=pd.Series(simdata['thy']*simdata['%stat']/100,index=simdata.index)
simdata['syst_u']=pd.Series(simdata['thy']*simdata['%syst']/100,index=simdata.index)
simdata=simdata.drop(['r-residuals','shift','alpha','residuals','yp','yh','W2','Shift','N','thy','%stat','%syst'],axis=1)
print simdata[:10]

writer = pd.ExcelWriter('simulation.xlsx')
simdata.to_excel(writer,'Sheet1',index=False)
writer.save()