def mvp_for_peter(master_sink,args): #write MVP data to file for Peter rate=master_sink.mdot/mdotB() time=(master_sink.mdotTime-master_sink.mdotTime[0])/get_tBH() fout=open(os.path.join(os.path.dirname(args.master_sink),'%s.pickle' % args.str_beta),'w') master_sink=dump((rate,time),fout) fout.close()
def get_nmad(time,mdot,str_beta): '''str_beta is a string, options: bInf,b100,b10,b1,b01,b001''' min_tBH= dict(bInf=5.,b100=5.,b10=3.,b1=2.,b01=2.,b001=2.) t= (time-time[0])/get_tBH() imin=np.where(t >= min_tBH[str_beta])[0][0] nmad= np.zeros(64)-1 med=np.median(mdot[:,imin:],axis=1) for i in range(mdot.shape[0]): nmad[i]= np.median(np.absolute(mdot[i,imin:]-med[i])) return nmad,med
import os from modules.sink.rates_and_tscales import get_tBH def make_dir(name): if os.path.exists(name): raise ValueError else: os.makedirs(name) parser = argparse.ArgumentParser(description="test") parser.add_argument("-hdf5_dir",action="store",help='path to hdf5 file(s)') parser.add_argument("-freq",type=float,action="store",help='ex) 0.1, fraction of tBH to grab hdf5 files for') args = parser.parse_args() outdir= os.path.join(args.hdf5_dir,'hdf5_every_10th_tBH/') make_dir(outdir) freq=args.freq*get_tBH() #fraction of tBH fnames= glob.glob(os.path.join(args.hdf5_dir,'data*.hdf5')) fnames= np.sort(fnames) print 'first 5 sorted fnames' for fn in fnames: print fn cp_list=[] for cnt,fname in enumerate(fnames): print 'reading %d of %d files' % (cnt+1,len(fnames)) ds=yt.load(fname) new_time= float(ds.current_time) if cnt == 0: cp_list.append(fname) prev_time= new_time else: if new_time-prev_time >= freq:
def tnorm(self): '''return normalized time''' return (self.mdotTime-self.mdotTime[0])/get_tBH()
#correlated sinks master={} for sink_dir,str_beta in zip(args.dirs,args.labels): fin=open(os.path.join(sink_dir,'master_sink.pickle'),'r') master[str_beta]=pickle.load(fin) master[str_beta].sink_xyz(args.init_sink) fin.close() sizes=range(len(args.labels)) for i,str_beta in enumerate(args.labels): sizes[i]= master[str_beta].mdotTime.shape[0] junk=args.labels[0] x= np.empty( (master[junk].mdot.shape[0],)+(max(sizes),)+(len(args.labels),))*np.nan y=x.copy() for i,str_beta in enumerate(args.labels): time=(master[str_beta].mdotTime-master[str_beta].mdotTime[0])/get_tBH() x[:,:sizes[i],i]= np.transpose(np.repeat(time[:,np.newaxis], x.shape[0], axis=1)) #(npts,) array to (64,npts,) y[:,:sizes[i],i]= master[str_beta].mdot/mdotB() titles= np.core.defchararray.add(np.array(['sid ']*len(master[str_beta].init.sid)),master[str_beta].init.sid.astype(str)) nrow,ncol=8,8 multi_plot(nrow,ncol,x,y,titles=titles,logy=True,ylim=args.ylim) print 'exiting after correlated sinks' sys.exit(0) #nmad plot print 'plotting nmad' for sink_dir,label in zip(args.dirs,args.labels): fin=open(os.path.join(sink_dir,'master_sink.pickle'),'r') master=pickle.load(fin) fin.close()